Documentation
Use it

MCP Server

TryAnneal is a Model Context Protocol server, so any MCP-capable agent — Claude Desktop, Claude Code, Cursor — can call is_this_safe() before composing with unknown code. The agent-economy thesis, made literal.

Tools

ToolWhat it doesNeeds
is_this_safe(target, network)On-chain SAFE/UNSAFE verdict + 0–100 score. target = code hash OR contract address (verified source fetched + hashed). Default network is mantle-sepolia; pass "mantle" for the mainnet verdict.nothing
audit_contract(sourceCode)Full audit — Slither + Aderyn + 16 custom detectors + the cross-validating LLM cascade + 98-pattern corpus. Memoized by code hash (keccak of source) — identical source returns the identical verdict.slither; LLM keys optional
tryanneal_corpus_stats()The 98-pattern / $7.1B corpus (2020–2026, 13 chains), as a tool.nothing

Hosted — just a URL (no install)

TryAnneal runs a public MCP server over Streamable HTTP. Point any URL-based MCP client at it — Claude Desktop / Claude Code custom connectors, Cursor, n8n — no local process, no keys:

json
{
  "mcpServers": {
    "tryanneal": {
      "url": "https://mcp.tryanneal.xyz/mcp"
    }
  }
}

is_this_safe and tryanneal_corpus_stats work immediately; audit_contract runs Slither server-side. Health check: GET /.

Or run it yourself (stdio)

bash
pnpm install
pnpm --filter @tryanneal/engine build
pnpm --filter @tryanneal/mcp build

Claude Desktop / Claude Code (claude_desktop_config.json or a project .mcp.json):

json
{
  "mcpServers": {
    "tryanneal": {
      "command": "node",
      "args": ["/abs/path/to/tryanneal/packages/mcp/dist/index.js"],
      "env": {
        "CHAINGPT_API_KEY": "optional — enables the LLM cascade (Groq Llama-3.3-70B + OpenAI GPT-OSS-120B critics; Gemini 2.5 Pro optional)",
        "HUNYUAN_API_KEY": "optional — Tencent Hunyuan, translates reports into the reader's language",
        "HUNYUAN_BASE_URL": "https://tokenhub-intl.tencentcloudmaas.com/v1",
        "HUNYUAN_MODEL": "hy-mt2-plus"
      }
    }
  }
}

What an agent sees

safe: true is a SAFE verdict; any critical or high finding flips it UNSAFE. The score below (100/100) is the live verdict for the Merchant Moe LB Router (~$60M TVL), attested on-chain by agent #131.

text
agent → is_this_safe("0xfe32c438…", "mantle")
tool  → {
  "safe": true, "score": 100, "attestedByAgentId": 131,
  "registry": "0xf02C982D19184c11b86BC34672441C45fBF0f93E",
  "recommendation": "No critical/high findings on record…"
}
is_this_safe and tryanneal_corpus_stats are pure reads — no keys, no Slither, always available. Full reference: packages/mcp/README.md.