Elytra Security as a Model Context Protocol server — give your AI agent the ability to scan smart contracts and code, check 12 famous-hack patterns, and return public Elytra security receipts.
Four well-named tools with strong, action-oriented descriptions (avg 180 chars, well above 10-char minimum). All tools have complete input schemas with type definitions and parameter descriptions. Tool names follow verb_noun pattern (elytra_scan, elytra_scan_address, elytra_replay_hacks, elytra_agent_identity). Descriptions are LLM-optimized and include WHEN to use each tool. However, output schemas are not documented in the source, the code formats results but does not expose the schema structure to the MCP client. Error handling is present (RestError type, network error messages) but lacks recovery guidance and error categorization. No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite all tools being read-only. Parameter descriptions are clear but could benefit from explicit format constraints (e.g., address regex pattern, chain enum values).
Return Elytra's onchain agent identity card — ERC-8004 registry data, capabilities, pricing on Base and Solana, attestation count, and discovery endpoints. Use this when the user wants to verify or learn about the Elytra agent itself, integrate it programmatically, or compare it to other agents.
Run the 12 famous-exploit pattern detectors against submitted source code. Encodes patterns from $3.04B in losses: Bybit ($1.46B), Ronin ($625M), Wormhole ($325M), Euler ($197M), Nomad ($190M), Beanstalk ($182M), Cream ($130M), Multichain ($126M), Mango ($114M), Curve ($73M), Radiant ($53M), zkSync ($5M). Returns only matches against these specific historic attack vectors. Use this when you want to check 'have I made any of the famous mistakes?'
Scan a code snippet for security vulnerabilities. Supports Solidity, Vyper, JS/TS, Python, Go, Rust, Java, Ruby, PHP, plus IaC (Terraform, Kubernetes, Dockerfile, GitHub Actions). Returns findings with severity, fix suggestions, and a 0-100 score. Use this for security-focused code review.
Scan a DEPLOYED smart contract by its onchain address. Elytra fetches the verified source from the block explorer (Etherscan / Basescan / etc.) and scans every source file. Use this when the user gives you a 0x... address and asks about its security.
Output schemas not documented. Code formats ScanResult and Finding objects but MCP tool definitions do not expose return type schemas. LLMs cannot plan downstream operations or extract fields without seeing the response structure.
No tool annotations. All four tools are read-only (no side effects), but inputSchema lacks readOnlyHint annotation. This prevents MCP clients from optimizing caching and retry logic.
Error responses lack recovery guidance. Network errors and HTTP failures return raw error strings ('Network error reaching Elytra', 'HTTP 401') without actionable next steps for the LLM (e.g., 'Check ELYTRA_API_KEY' or 'Retry in 30s').
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 67 | 2026-07-28+ | v2 |
Parameter constraints not formalized. 'address' parameter description says '0x... 40 hex chars' but no regex pattern in schema. 'chain' enum values listed in description but not as JSON Schema enum. LLMs may pass invalid values.
No pagination or result limits documented. elytra_scan and elytra_replay_hacks return arrays of findings but no limit, offset, or total_count fields. Large result sets could exhaust context window.