SlitherMCP has 7 tools with reasonable naming (verb_noun pattern) and descriptions, but critical gaps in schema completeness, parameter documentation, and error handling. All tools have descriptions (10-200 chars, within baseline), but input schemas lack proper type definitions for optional parameters. No output schemas documented. Error handling is minimal, tools return raw strings without guidance for recovery. Parameter descriptions exist but lack constraints (enums, ranges, formats). The codebase shows incomplete implementations (e.g., slither_analyze_dependencies cuts off mid-function), suggesting unfinished work.
Perform a complete Slither analysis on a Solidity contract or project. This tool is equivalent to running 'slither .' on the command line, providing a full security analysis of the smart contract(s). It detects common vulnerabilities like reentrancy, unchecked return values, uninitialized variables, and many more issues.
Analyze data dependencies for a specific variable in a contract.
Check ERC conformance of a contract using Slither.
Perform upgradeability checks on a contract using Slither.
Find all paths that reach a given target function in a contract using Slither.
Generate Slither's intermediate representation (IR) for a specific function.
No output schemas documented. Tools return unstructured strings; LLMs cannot parse results or chain downstream calls. Baseline: 100% of A+ tools document return types.
Optional parameters lack type definitions in schema. slither_check_upgradeability has proxy_name and new_contract_name marked optional but no type specified. Baseline: parameters must have explicit types.
No error handling or recovery guidance. Tools return raw strings on failure (e.g., 'No paths found') without actionable next steps. Baseline: errors must tell LLM what to do next.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 49 | 2026-07-28+ | v2 |
Print a detailed summary of a contract using Slither.
Parameter descriptions lack constraints. erc_standard accepts free-form strings (e.g., 'ERC20', 'ERC721') but no enum defined. LLMs will hallucinate invalid values.
Source code incomplete. slither_analyze_dependencies function cuts off mid-implementation (line ends with 'if var in'). Tool is non-functional.