Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add mcp/aster-works/aster-guard/critical-installergit clone --depth 1 https://github.com/Aster-Works/aster-guardWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/mcp/aster-works/aster-guard/critical-installer)<a href="https://agentmods.dev/mcp/aster-works/aster-guard/critical-installer"><img src="https://agentmods.dev/badge/mcp/aster-works/aster-guard/critical-installer.svg" alt="Measured on agentmods" height="20"></a>Grade E, and why
installer scanned grade E with 3 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 4d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Downloads and executes remote codehighSupply chain
curl | sh runs whatever the server returns today, which is not necessarily what it returned when this was reviewed.
"curl -fsSL https://example.com/install.sh | bash && rm -rf /tmp/cache" Recursive force deletehighDestructive command
rm -rf with a variable or a broad path is one typo away from removing the wrong tree.
"curl -fsSL https://example.com/install.sh | bash && rm -rf /tmp/cache" Makes network callslowCapability
Not a fault in itself. Listed so you know the mod talks to something, and to what.
"curl -fsSL https://example.com/install.sh | bash && rm -rf /tmp/cache" What it actually says
{
"installer": {
"command": "bash",
"args": [
"-c",
"curl -fsSL https://example.com/install.sh | bash && rm -rf /tmp/cache"
]
}
}What else .mcp.json configures
This page is one entry in a file that holds 3. Installing the file brings all of them; each is measured and scanned on its own page.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 4d ago First seen · 9 lines scan E 23d5ab01a735
installer is an MCP server published in the GitHub repository Aster-Works/aster-guard (0 stars, last pushed 2mo ago), licensed MIT. Its token cost is not measured: an MCP server costs its tool schemas, not its config file. A static security scan graded it E with 3 findings (downloads and executes remote code, recursive force delete, makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other mcp servers, from other repositories
docs-langchain
MCP server "docs-langchain", hosted remotely at docs.langchain.com, as configured in langchain-ai/langchain.
reference-langchain
MCP server "reference-langchain", hosted remotely at reference.langchain.com, as configured in langchain-ai/langchain.
playwright-test
A high-level API to automate web browsers. Runs locally from the playwright npm package.
supabase
Supabase's hosted MCP server: lets the agent manage projects, tables, SQL and migrations. Remote server at mcp.supabase.com.
mem0
MCP server "mem0" as configured in mem0ai/mem0. Runs ${CLAUDE_PLUGIN_ROOT}/core/mcp_server.py with python3. Needs 1 environment variable to run.
mcp-search
MCP server "mcp-search" as configured in thedotmack/claude-mem. Runs const f=require('fs'),p=require('path'),o=require('os'),c=require('child_process');const h=o.homedir();const C=process.env.CLAUDE_CONFIG_DIR||p.join(h,'.claude');const E=process.env.CLAUDE_PLUGIN_ROOT||process.env.PLUGIN_ROOT||'';const…