AI agent safety layer for crypto transactions - blocks honeypots, blacklists, and rug pulls before they happen
CryptoGuard exposes a single tool 'cryptoguard_check' with a well-defined input schema and reasonable description. However, the tool lacks output schema documentation, error handling guidance, and tool annotations. The naming is verb_noun compliant but the description, while detailed, could better explain WHEN to use this tool vs alternative security audits. Parameter descriptions are adequate but lack explicit format/constraint guidance. No idempotent, readOnly, or destructive hints are present. The implementation shows basic competence but falls short of production-grade agent tool standards (missing ~30% of expected quality markers).
Analyze a smart contract/token for security risks before interacting with it. Checks for honeypots, blacklists, rug pull indicators, dangerous tax rates, and other scam patterns. Queries GoPlus, Honeypot.is, TokenSniffer, De.Fi, and performs bytecode analysis. Returns risk score (0-100) and detailed findings.
Output schema not documented. Callers must infer response structure from code; LLMs cannot plan downstream tool chaining or field extraction. The JSON response includes 'summary', 'risk_score', 'token_info', 'critical_findings', 'high_findings', but none of these are declared in MCP tool definition.
No tool annotations (readOnlyHint, idempotentHint) declared. This is a READ_ONLY query that produces no side effects and is fully idempotent, but MCP clients cannot infer this from the definition. Modern agents expect these hints for safety and planning.
No error handling guidance. The tool catches exceptions and returns JSON with an 'error' field, but the description does not explain error cases, recovery steps, or what errors are retryable. An LLM seeing {'error': 'some exception'} has no actionable next step.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 60 | 2026-07-28+ | v2 |
Parameter 'chain' has a default value but the description does not clearly state which blockchains are supported. The list 'ethereum, bsc, polygon, arbitrum, base, optimism, avalanche, fantom, zksync, linea, scroll' should be an enum constraint, not a free-form string, to prevent LLMs from hallucinating unsupported chains like 'solana' or 'cosmos'.
Description mentions 'Queries GoPlus, Honeypot.is, TokenSniffer, De.Fi, and performs bytecode analysis' but does not explain when those services fail, what partial results look like, or whether results are cached/real-time. Agents need to know if a call is slow, unreliable, or rate-limited.
No parameter constraints documented. The 'address' parameter expects a valid contract address (0x-prefixed hex), but the description only says 'Contract address to analyze (0x...)'. No validation rules, length constraints, or format regex are stated. Agents may pass invalid addresses and see cryptic errors from downstream APIs.