MCP, MCP server
io.github.azender1/safeagent
io.github.azender1/safeagent, an MCP server listed in the PlugVet directory.
Compatibility: Not stated.
Grade C
One Medium finding. Read the findings before installing.
Not a guarantee. A hygiene check of the source at the commit shown, not a security audit.
OBFUSCATION_ENCODED_BLOB
Why this grade
- OBFUSCATION_ENCODED_BLOB Medium
Contains a long base64 shaped string in a file that should be readable.
deck/SAFEAGENT_DECK_PRO_V2_FINAL.pptx, line 1
PK g��\�kÓ� . [Content_Types].xml͘�N�0��y�(7�����\l�
Any High, or two or more Medium findings, give D. One Medium gives C. Low findings or a security Note give B. Each code names a finding behind the letter.
Grades are a hygiene check of the source at the commit shown, on the date checked, not a security audit or a guarantee. The free directory grades are automated. Before release, a PlugVet engineer reviews every paid report and any grade we hold back, including all F grades, against the source code and the evidence we quote.
What was checked
Plain notes from the hygiene checks.
Permissions
Concern
can delete files.
PERMISSION_DELETE_FILES
control/v15/test_parsers_and_cli.py, line 298
result = subprocess.run(
control/v15/mutants/generate_mutants.py, line 212
shutil.rmtree(GENERATED)
evidence/crewai-retry-ab-v3/parent.py, line 15
5. subprocess.run(...) blocks until the worker fully exits. Only after
Show more
evidence/crewai-retry-ab-v3/parent.py, line 123
def start_ledger(port: int, record_token: str, control_token: str) -> subprocess.Popen:
evidence/crewai-retry-ab-v3/parent.py, line 124
proc = subprocess.Popen(
evidence/crewai-retry-ab-v3/parent.py, line 255
proc = subprocess.run(cmd, capture_output=True, text=True, timeout=WORKER_TIMEOUT_S)
evidence/crewai-retry-ab-v3/test_v3.py, line 47
proc = subprocess.Popen(
evidence/crewai-retry-ab-v3/test_v3.py, line 300
proc = subprocess.run([sys.executable, "-c", code], capture_output=True, text=True, timeout=10)
evidence/crewai-retry-ab-v3/test_v3.py, line 322
proc = subprocess.run([sys.executable, "-c", code], capture_output=True, text=True, timeout=10)
Install and update
Pass
No install-time script found, and dependencies are pinned or absent.
Network
Concern
can reach a host that is not written as a fixed address. can reach argentum.rgiskard.xyz. The description does not name that host. can reach pypi.org. The description does not name that host.
NETWORK_NO_FIXED_HOST NETWORK_UNNAMED_HOST
first_trail.py, line 38
response = requests.post(
company_agent/check_state.py, line 15
with urllib.request.urlopen(req,timeout=20) as r:
company_agent/check_state.py, line 21
with urllib.request.urlopen(req,timeout=20) as r:
Show more
evidence/crewai-retry-ab-v3/parent.py, line 101
with urllib.request.urlopen(req, timeout=10) as resp:
evidence/crewai-retry-ab-v3/test_v3.py, line 40
with urllib.request.urlopen(req, timeout=5) as resp:
evidence/crewai-retry-ab-v3/worker.py, line 85
with urllib.request.urlopen(req, timeout=10) as resp:
examples/safeagent_trading_integration.py, line 54
resp = requests.post(url, headers=headers, json=payload, timeout=20)
examples/crewai/safeagent_backend.py, line 222
resp = requests.request(
safeagent/main.py, line 535
<pre>curl -s -X POST https://safeagent-production.up.railway.app/claim/test \
safeagent_exec_guard/payment_server.py, line 366
<pre>curl -s -X POST https://safeagent-production.up.railway.app/claim/test \
Secrets
Concern
reads a credential or environment file.
SECRETS_ENV_READ SECRETS_PATH_UNCONFIRMED
safeagent_governance.py, line 166
raw = os.getenv("SAFEAGENT_GOVERNANCE_PRIVKEY", "").strip()
safeagent_governance.py, line 183
explicit = os.getenv("SAFEAGENT_GOVERNANCE_PUBKEY", "").strip()
company_agent/check_state.py, line 11
GH_TOKEN=os.getenv("GITHUB_TOKEN","")
Show more
control/v15/alpaca_api_adapter.py, line 80
api_key = os.environ.get("APCA_API_KEY_ID", "")
control/v15/alpaca_api_adapter.py, line 81
api_secret = os.environ.get("APCA_API_SECRET_KEY", "")
control/v15/alpaca_api_adapter.py, line 95
api_key = os.environ.get("APCA_API_KEY_ID")
control/v15/alpaca_api_adapter.py, line 96
api_secret = os.environ.get("APCA_API_SECRET_KEY")
examples/stripe_payment_intent_guard.py, line 25
api_key = os.environ.get("STRIPE_SECRET_KEY", "")
.dockerignore, line 10
.venv
settlement/.gitignore, line 6
venv/
Agent instructions
Pass
No instruction to ignore earlier instructions or to hide a step.
Obfuscation
Concern
contains an encoded blob in a file that should be readable.
OBFUSCATION_ENCODED_BLOB
deck/SAFEAGENT_DECK_PRO_V2_FINAL.pptx, line 1
PK g��\�kÓ� . [Content_Types].xml͘�N�0��y�(7�����\l�
evidence/crewai-retry-ab-v3/evidence.json, line 1
{
monitor/monitor.log, line 1
��2 0 2 6 - 0 5 - 3 0 0 0 : 5 3 : 5 0 = = = S a f e A g e n t M o n i t o r s t a r t i n g = = =
Show more
docs/conformance/exactly-once-v1.json, line 18
"action_ref_canonical_hex": "7b22616374696f6e5f74797065223a227061796d656e742e73656e64222c226167656e745f6964223a22736166656167656e742d70726f64222c2273636f7065223a2274726164653a65786
docs/conformance/exactly-once-v1.json, line 29
"binding_canonical_hex": "7b22616d6f756e745f757364223a35302c226368617267655f726566223a226368617267655f7265665f616263313233222c226e6f6e6365223a226e6f6e63655f78797a373839222c22737562
docs/conformance/exactly-once-v1.json, line 46
"action_ref_canonical_hex": "7b22616374696f6e5f74797065223a227061796d656e742e73656e64222c226167656e745f6964223a22736166656167656e742d70726f64222c2273636f7065223a2274726164653a65786
docs/conformance/exactly-once-v1.json, line 58
"binding_canonical_hex": "7b22616d6f756e745f757364223a35302c226368617267655f726566223a226368617267655f7265665f616263313233222c226e6f6e6365223a226e6f6e63655f78797a373839222c22737562
docs/conformance/exactly-once-v1.json, line 91
"canonical_bytes_hex": "7b22616374696f6e5f74797065223a227061796d656e742e73656e64222c226167656e745f6964223a22736166656167656e742d70726f64222c2273636f7065223a2274726164653a6578656375
docs/conformance/exactly-once-v1.json, line 98
"canonical_bytes_hex": "7b22616d6f756e745f757364223a35302c226368617267655f726566223a226368617267655f7265665f616263313233222c226e6f6e6365223a226e6f6e63655f78797a373839222c227375626a
Licence
Pass
A licence file is present (LICENSE).
Maintainer activity
Pass
The latest commit is within the last 365 days.
Note
Hygiene check of commit 2dfd69493d83. can delete files. can reach a host that is not written as a fixed address. can reach argentum.rgiskard.xyz. The description does not name that host. can reach pypi.org. The description does not name that host. reads a credential or environment file. contains an encoded blob in a file that should be readable.
Date and source
Date checked:
github.com
Commit graded: 2dfd69493d83e381868c5150aac3c3a04564ab3c
This link goes to the original host. PlugVet does not host or check what you download from there, and installing it is your own decision and risk.