angr-api-mcp
PyPI
v0.1.0
Published by taardisaa — no publish provenance and no vendor-owned scope, so the publisher could not be verified. The repository link below is self-declared.
Every server starts at 100. These are the exact deductions the deterministic engine applied — each one reproducible, none of it an opinion or an LLM's guess:
| Points | What was found | Category |
|---|---|---|
| −37.7 | Dynamic evaluation of a non-literal value ×10 MTC-SRC-010 | injection |
| −23.1 | Obfuscated / encoded payload in server code ×2 MTC-SRC-004 | injection |
| −6.3 | Unsafe deserialization MTC-SRC-007 | permissions |
| −2.1 | Package has no source repository MTC-SUP-011 | supply-chain |
Capability observations and info notes are shown under Findings but never scored.
Open any row's finding below for the file, line and evidence behind the deduction.
In the server's implementation (`data/angr_doc_source/examples/grub/solve.py:77`): Decoding an encoded blob and executing it is how malicious logic is hidden from human review of the source. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.
Evidence: \x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08
Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.
Location: server data/angr_doc_source/examples/grub/solve.py
In the server's implementation (`data/angr_source/angr/analyses/cfg/cfg_fast.py:1704`): Decoding an encoded blob and executing it is how malicious logic is hidden from human review of the source. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.
Evidence: \x00\x10\x00\x00\x85\x00\xeb\xe9
Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.
Location: server data/angr_source/angr/analyses/cfg/cfg_fast.py
In the server's implementation (`data/angr_source/angr/analyses/cfg/cfg_base.py:632`): Evaluating a runtime value as code (rather than a fixed literal) executes whatever reaches it — a direct RCE primitive, and almost never necessary in legitimate code. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.
Evidence: eval(
Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.
Location: server data/angr_source/angr/analyses/cfg/cfg_base.py
In the server's implementation (`data/angr_source/angr/analyses/cfg/cfg_emulated.py:1414`): Evaluating a runtime value as code (rather than a fixed literal) executes whatever reaches it — a direct RCE primitive, and almost never necessary in legitimate code. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.
Evidence: eval(
Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.
Location: server data/angr_source/angr/analyses/cfg/cfg_emulated.py
In the server's implementation (`data/angr_source/angr/analyses/cfg/indirect_jump_resolvers/jumptable.py:637`): Evaluating a runtime value as code (rather than a fixed literal) executes whatever reaches it — a direct RCE primitive, and almost never necessary in legitimate code. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.
Evidence: eval(
Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.
Location: server data/angr_source/angr/analyses/cfg/indirect_jump_resolvers/jumptable.py
In the server's implementation (`data/angr_source/angr/analyses/data_dep/data_dependency_analysis.py:219`): Evaluating a runtime value as code (rather than a fixed literal) executes whatever reaches it — a direct RCE primitive, and almost never necessary in legitimate code. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.
Evidence: eval(
Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.
Location: server data/angr_source/angr/analyses/data_dep/data_dependency_analysis.py
In the server's implementation (`data/angr_source/angr/analyses/ddg.py:752`): Evaluating a runtime value as code (rather than a fixed literal) executes whatever reaches it — a direct RCE primitive, and almost never necessary in legitimate code. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.
Evidence: eval(
Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.
Location: server data/angr_source/angr/analyses/ddg.py
In the server's implementation (`data/angr_source/angr/analyses/decompiler/optimization_passes/const_prop_reverter.py:235`): Evaluating a runtime value as code (rather than a fixed literal) executes whatever reaches it — a direct RCE primitive, and almost never necessary in legitimate code. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.
Evidence: eval(
Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.
Location: server data/angr_source/angr/analyses/decompiler/optimization_passes/const_prop_reverter.py
In the server's implementation (`data/angr_source/angr/analyses/deobfuscator/data_transformation_embedder.py:271`): Evaluating a runtime value as code (rather than a fixed literal) executes whatever reaches it — a direct RCE primitive, and almost never necessary in legitimate code. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.
Evidence: eval(
Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.
Location: server data/angr_source/angr/analyses/deobfuscator/data_transformation_embedder.py
In the server's implementation (`data/angr_source/angr/analyses/deobfuscator/string_obf_finder.py:295`): Evaluating a runtime value as code (rather than a fixed literal) executes whatever reaches it — a direct RCE primitive, and almost never necessary in legitimate code. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.
Evidence: eval(
Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.
Location: server data/angr_source/angr/analyses/deobfuscator/string_obf_finder.py
In the server's implementation (`data/angr_source/angr/analyses/smc.py:42`): Evaluating a runtime value as code (rather than a fixed literal) executes whatever reaches it — a direct RCE primitive, and almost never necessary in legitimate code. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.
Evidence: eval(
Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.
Location: server data/angr_source/angr/analyses/smc.py
In the server's implementation (`data/angr_source/angr/analyses/vfg.py:694`): Evaluating a runtime value as code (rather than a fixed literal) executes whatever reaches it — a direct RCE primitive, and almost never necessary in legitimate code. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.
Evidence: eval(
Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.
Location: server data/angr_source/angr/analyses/vfg.py
In the server's implementation (`data/angr_doc_source/examples/0ctf_trace/solve.py:96`): Evaluating strings as code is the most direct RCE primitive; if any tool input reaches it, the server executes attacker-chosen code. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.
Evidence: eval(
Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.
Location: server data/angr_doc_source/examples/0ctf_trace/solve.py
In the server's implementation (`data/angr_doc_source/examples/9447_nobranch/solve.py:63`): Evaluating strings as code is the most direct RCE primitive; if any tool input reaches it, the server executes attacker-chosen code. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.
Evidence: eval(
Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.
Location: server data/angr_doc_source/examples/9447_nobranch/solve.py
In the server's implementation (`data/angr_doc_source/examples/ais3_crackme/solve.py:29`): Evaluating strings as code is the most direct RCE primitive; if any tool input reaches it, the server executes attacker-chosen code. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.
Evidence: eval(
Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.
Location: server data/angr_doc_source/examples/ais3_crackme/solve.py
In the server's implementation (`data/angr_doc_source/examples/android_arm_license_validation/solve.py:43`): Evaluating strings as code is the most direct RCE primitive; if any tool input reaches it, the server executes attacker-chosen code. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.
Evidence: eval(
Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.
Location: server data/angr_doc_source/examples/android_arm_license_validation/solve.py
In the server's implementation (`data/angr_doc_source/examples/asisctffinals2015_fake/solve.py:38`): Evaluating strings as code is the most direct RCE primitive; if any tool input reaches it, the server executes attacker-chosen code. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.
Evidence: eval(
Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.
Location: server data/angr_doc_source/examples/asisctffinals2015_fake/solve.py
In the server's implementation (`data/angr_doc_source/examples/asisctffinals2015_license/solve.py:56`): Evaluating strings as code is the most direct RCE primitive; if any tool input reaches it, the server executes attacker-chosen code. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.
Evidence: eval(
Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.
Location: server data/angr_doc_source/examples/asisctffinals2015_license/solve.py
In the server's implementation (`data/angr_doc_source/examples/cmu_binary_bomb/solve.py:52`): Evaluating strings as code is the most direct RCE primitive; if any tool input reaches it, the server executes attacker-chosen code. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.
Evidence: eval(
Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.
Location: server data/angr_doc_source/examples/cmu_binary_bomb/solve.py
In the server's implementation (`data/angr_doc_source/examples/defcon2016quals_baby-re/solve.py:36`): Evaluating strings as code is the most direct RCE primitive; if any tool input reaches it, the server executes attacker-chosen code. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.
Evidence: eval(
Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.
Location: server data/angr_doc_source/examples/defcon2016quals_baby-re/solve.py
In the server's implementation (`data/angr_doc_source/examples/defcon2017quals_crackme2000/witchcraft.py:66`): Evaluating strings as code is the most direct RCE primitive; if any tool input reaches it, the server executes attacker-chosen code. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.
Evidence: eval(
Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.
Location: server data/angr_doc_source/examples/defcon2017quals_crackme2000/witchcraft.py
In the server's implementation (`data/angr_doc_source/examples/ekopartyctf2016_sokohashv2/solve.py:159`): Evaluating strings as code is the most direct RCE primitive; if any tool input reaches it, the server executes attacker-chosen code. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.
Evidence: eval(
Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.
Location: server data/angr_doc_source/examples/ekopartyctf2016_sokohashv2/solve.py
In the server's implementation (`data/angr_doc_source/examples/CSCI-4968-MBE/challenges/crackme0x04/solve.py:33`): Spawning a shell/process is command-execution capability; with unsanitized tool input it is command injection / RCE. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.
Evidence: subprocess.check_output(
Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.
Location: server data/angr_doc_source/examples/CSCI-4968-MBE/challenges/crackme0x04/solve.py
In the server's implementation (`data/angr_doc_source/examples/CSCI-4968-MBE/challenges/crackme0x05/solve.py:38`): Spawning a shell/process is command-execution capability; with unsanitized tool input it is command injection / RCE. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.
Evidence: subprocess.check_output(
Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.
Location: server data/angr_doc_source/examples/CSCI-4968-MBE/challenges/crackme0x05/solve.py
In the server's implementation (`data/angr_doc_source/examples/defcon2017quals_crackme2000/enlightenment/classify.py:15`): Spawning a shell/process is command-execution capability; with unsanitized tool input it is command injection / RCE. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.
Evidence: subprocess.check_output(
Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.
Location: server data/angr_doc_source/examples/defcon2017quals_crackme2000/enlightenment/classify.py
In the server's implementation (`data/angr_doc_source/examples/ekopartyctf2016_rev250/solve.py:56`): Spawning a shell/process is command-execution capability; with unsanitized tool input it is command injection / RCE. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.
Evidence: subprocess.Popen(
Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.
Location: server data/angr_doc_source/examples/ekopartyctf2016_rev250/solve.py
In the server's implementation (`data/angr_doc_source/examples/insomnihack_aeg/solve.py:114`): Spawning a shell/process is command-execution capability; with unsanitized tool input it is command injection / RCE. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.
Evidence: subprocess.check_output(
Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.
Location: server data/angr_doc_source/examples/insomnihack_aeg/solve.py
In the server's implementation (`data/angr_doc_source/examples/java_crackme1/solve.py:29`): Spawning a shell/process is command-execution capability; with unsanitized tool input it is command injection / RCE. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.
Evidence: subprocess.Popen(
Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.
Location: server data/angr_doc_source/examples/java_crackme1/solve.py
In the server's implementation (`data/angr_doc_source/examples/mma_simplehash/solve.py:103`): Spawning a shell/process is command-execution capability; with unsanitized tool input it is command injection / RCE. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.
Evidence: subprocess.Popen(
Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.
Location: server data/angr_doc_source/examples/mma_simplehash/solve.py
In the server's implementation (`data/angr_doc_source/examples/secconquals2016_ropsynth/solve.py:184`): Spawning a shell/process is command-execution capability; with unsanitized tool input it is command injection / RCE. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.
Evidence: subprocess.Popen(
Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.
Location: server data/angr_doc_source/examples/secconquals2016_ropsynth/solve.py
In the server's implementation (`data/angr_doc_source/examples/secuinside2016mbrainfuzz/solve.py:145`): Spawning a shell/process is command-execution capability; with unsanitized tool input it is command injection / RCE. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.
Evidence: subprocess.check_output(
Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.
Location: server data/angr_doc_source/examples/secuinside2016mbrainfuzz/solve.py
In the server's implementation (`data/angr_doc_source/examples/simple_heap_overflow/solve.py:70`): Spawning a shell/process is command-execution capability; with unsanitized tool input it is command injection / RCE. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.
Evidence: subprocess.check_output(
Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.
Location: server data/angr_doc_source/examples/simple_heap_overflow/solve.py
In the server's implementation (`data/angr_source/angr/project.py:871`): Deserializing untrusted data with these APIs can execute arbitrary code (a well-known RCE gadget class). This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.
Evidence: pickle.load(
Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.
Location: server data/angr_source/angr/project.py
"angr-api-mcp" declares no repository URL, so its published artifact cannot be compared against reviewable source.
Fix: Prefer packages that link to public, reviewable source.
Location: package angr-api-mcp
Scan history per published version. The engine is deterministic — the same version always yields the same score, so a changed score means the package itself changed.
| Version | Score | Findings | Engine | Scanned |
|---|---|---|---|---|
v0.1.0 latest |
F 42/100 | 34 | 1.5.0 | 2026-07-22 |
Show this server's live Trust Score in your README, docs or website. The badge is served straight from the registry and updates automatically after every rescan — no API key needed. It links back to this page, so anyone who sees the grade can also read the findings behind it instead of taking a number on faith.
The score above is reproducible: the same package version always yields the same result. Run it locally or over the free API — no account, no LLM, fully deterministic.
npx mcptrustchecker scan angr-api-mcp --online --registry pypi
Security scan results for the 199bio Mcp Limitless MCP server.
Security scan results for the 1mcp MCP server.
Security scan results for the 1stay MCP server.
Generates production-ready UI components from natural language, inspired by v0.
Security scan results for the 2slides MCP server.
Security scan results for the 3d MCP server.