claudit
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@clauditSearch Solodit for oracle manipulation HIGH severity findings"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
claudit
Smart contract security findings for AI coding agents
Search Solodit's 20,000+ audit findings from Claude Code and Codex CLI.
Quick Start · Tools · Examples · Configuration
Quick Start
curl -fsSL https://raw.githubusercontent.com/marchev/claudit/main/install.sh | shThe installer detects Claude Code and/or Codex CLI, prompts for your Solodit API key, and registers the MCP server.
Then just ask:
> Find 5 solo findings by 0x52 at SherlockClaude Code
claude mcp add --scope user --transport stdio solodit \
--env SOLODIT_API_KEY=sk_your_key_here \
-- npx -y @marchev/claudit@latest
# (Optional) Install companion skill
mkdir -p ~/.claude/skills/solodit
curl -fsSL https://raw.githubusercontent.com/marchev/claudit/main/.claude/skills/solodit/SKILL.md \
-o ~/.claude/skills/solodit/SKILL.mdCodex CLI
codex mcp add solodit \
--env SOLODIT_API_KEY=sk_your_key_here \
-- npx -y @marchev/claudit@latestRelated MCP server: solidit-mcp-server
Tools
search_findings
Search across all findings with filters.
Parameter | Type | Description |
|
| Text search in title and content |
|
|
|
|
| Audit firm names |
|
| Vulnerability tags |
|
| Programming language |
|
| Protocol name (partial match) |
|
|
|
|
|
|
|
|
|
|
| Page number (default 1) |
|
| Results per page (default 10, max 100) |
|
| See below |
Field | Type | Description |
|
| Minimum quality score (0-5) |
|
| Minimum rarity score (0-5) |
|
| Finder/auditor handle |
|
| Minimum number of finders |
|
| Maximum number of finders |
|
| ISO date string |
|
| Protocol categories |
|
| Forked protocol names |
get_finding
Get full details for a specific finding by numeric ID, Solodit URL, or slug.
get_filter_options
List all valid filter values — firms, tags, categories, languages — with finding counts.
Examples
Search Solodit for oracle manipulation HIGH severity findings
Find all Sherlock findings about flash loans
What reentrancy issues exist in lending protocols?
Show me solo findings by 0x52
Get recent HIGH severity Solidity findings sorted by qualityConfiguration
Claude Code:
claude mcp remove solodit
claude mcp add --scope user --transport stdio solodit \
--env SOLODIT_API_KEY=sk_new_key \
-- npx -y @marchev/claudit@latestCodex CLI:
codex mcp remove solodit
codex mcp add solodit \
--env SOLODIT_API_KEY=sk_new_key \
-- npx -y @marchev/claudit@latestCursor MCP
{
"mcpServers": {
"solodit": {
"command": "npx",
"args": ["-y", "@marchev/claudit@latest"],
"env": {
"SOLODIT_API_KEY": "sk_new_key"
}
}
}
}Claude Code:
claude mcp remove solodit
rm -rf ~/.claude/skills/soloditCodex CLI:
codex mcp remove soloditgit clone https://github.com/marchev/claudit.git
cd claudit
npm install
npm run build
# Test locally
SOLODIT_API_KEY=sk_your_key node dist/index.jsSupport
Claudit is a solo-maintained public good for Ethereum security. If it saves you time or finds bugs for you, consider supporting its continued development on Giveth:
MIT License
Available Tools
4 toolsget_claudit_versionA
Returns the currently running version of the Claudit MCP server.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It accurately states the tool returns the version, implying a safe read operation with no side effects. No additional context like auth requirements or rate limits is given, but the simplicity of the tool makes this acceptable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, front-loaded with the key information. No superfluous words, every part earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has zero parameters and no output schema, the description fully covers what the tool does. It leaves no ambiguity for the agent about the purpose and result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and schema description coverage is 100%. According to guidelines, 0 parameters baseline is 4. The description adds no parameter information, but none is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns the currently running version of the Claudit MCP server, using a specific verb ('Returns') and resource ('currently running version'). It clearly distinguishes from siblings like 'get_filter_options' and 'search_findings' which deal with filtering/searching, not version info.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or when-not-to guidance is provided, but for a simple version retrieval tool the context is clear. The description implies it should be used when the agent needs to know the server version, and no alternatives are mentioned. Lacks explicit exclusions but is adequate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_filter_optionsA
List available filter values for Solodit search (firms, tags, categories, languages). Use this to discover valid values for search_findings filters.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full responsibility for behavioral disclosure. It states the tool lists values but does not describe output format, performance characteristics, or how the list is generated (static vs dynamic). For a simple list operation, the lack of detail is acceptable but not exemplary.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no redundancy. The first sentence states purpose, and the second provides usage context. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (no parameters, no output schema), the description is mostly complete. It could specify the output structure (e.g., whether it returns a list of strings or a mapping), but the current level is sufficient for an agent to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and the description adds meaning beyond the empty schema by explaining what the output represents (filter categories) and how it relates to search_findings. This exceeds the baseline of 4 for zero-parameter tools.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists available filter values for Solodit search, specifying the categories (firms, tags, categories, languages). It distinguishes from sibling tool 'search_findings' by explicitly linking the output to its filters.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'Use this to discover valid values for search_findings filters,' providing clear guidance on when and how to use the tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_findingA
Get full details for a specific Solodit finding by its numeric ID (preferred), URL, or slug. Returns complete markdown content and all metadata.
| Name | Required | Description | Default |
|---|---|---|---|
| identifier | Yes | Finding numeric ID (e.g., '64195'), Solodit URL, or finding slug. Prefer numeric ID from search results. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears the full burden. It states what it returns but does not disclose behavioral traits such as error handling (e.g., what if identifier is invalid), rate limits, authentication requirements, or side effects. This is a significant gap for a tool with no annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, concise and front-loaded. Every sentence is essential, no filler. Efficiently communicates purpose and key details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no annotations, the description provides a reasonable level of completeness for a fetch tool. It explains what it does, the input format, and what it returns. However, it lacks details on error behavior and prerequisites, which would be helpful for robust usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers the parameter fully with a description of acceptable identifier types. The description adds value by recommending numeric ID from search results, which aids correct invocation. Schema coverage is 100%, baseline 3, and the added guidance justifies a 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves full details for a specific Solodit finding, specifying three types of identifiers (numeric ID, URL, slug) and that it returns complete markdown and metadata. This distinguishes it from sibling tools like search_findings which is for searching, not fetching full details.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for obtaining full details of a specific finding and recommends preferring numeric ID from search results, but does not explicitly state when not to use it or provide alternatives. It lacks explicit when-to-use and when-not-to-use context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_findingsA
Search Solodit's 20k+ smart contract security findings from real audits. Returns severity, firm, protocol, tags, quality score, content snippet, and Solodit URL for each finding. IMPORTANT: Each result includes a Solodit URL — always include it when presenting results to the user.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number (default 1) | |
| tags | No | Vulnerability tags (e.g., ["Reentrancy", "Oracle", "Flash Loan"]) | |
| firms | No | Audit firm names (e.g., ["Sherlock", "Code4rena", "Trail of Bits"]) | |
| sort_by | No | Sort order (default: Recency) | |
| keywords | No | Text search in title and content | |
| language | No | Programming language (e.g., "Solidity", "Rust", "Cairo") | |
| protocol | No | Protocol name (partial match) | |
| reported | No | Time period filter | |
| severity | No | Filter by severity: "HIGH", "MEDIUM", "LOW", "GAS" (case-insensitive) | |
| page_size | No | Results per page (default 10, max 100). Use 'page' to paginate. | |
| sort_direction | No | Sort direction (default: Desc) | |
| advanced_filters | No | Advanced filters for niche queries |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It only lists return fields and an output instruction (URL inclusion), but omits details on side effects, permissions, rate limits, error behavior, or the fact that it's read-only. The description does not confirm safety or non-destructiveness.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two sentences plus a brief note. It front-loads the primary action and return values, and the important instruction about URLs is clearly separated. Every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (12 parameters, nested object, no output schema) and no annotations, the description is somewhat incomplete. It explains what the tool does and returns, but lacks guidance on parameter usage, pagination behavior, or how to construct effective queries. The return field list is helpful, but users may need more context for a tool with this many filters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description adds minimal value beyond the schema: it lists return fields but does not elaborate on parameter meaning, usage patterns, or how to combine filters effectively. The instruction about the URL relates to output, not parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the tool searches 'Solodit's 20k+ smart contract security findings' and lists return fields (severity, firm, etc.). It clearly differentiates from siblings like get_finding (single finding) and get_filter_options (filter options) by focusing on search over multiple audits.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use (searching findings) and an important presentation guideline ('always include the Solodit URL'). However, it does not explicitly contrast with alternatives (e.g., when to use get_finding instead), leaving some ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
4 tool updates
v0.1.19- First observed
get_claudit_version - First observed
get_filter_options - First observed
get_finding - First observed
search_findings
TDQS
Each tool targets a distinct action: version retrieval, filter discovery, single finding detail, and finding search. There is no overlap in purpose.
All tools use snake_case with a verb_noun pattern. Three use 'get_' and one uses 'search_', but the verb clearly indicates the operation type, and the naming is predictable.
With 4 tools, the server is well-scoped for its purpose of searching and retrieving audit findings, plus supporting utilities like version and filter options.
The server provides a complete surface for read-only access to findings: discover filters, search, and get full details. No missing operations for its intended use case.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Code intelligence for coding agents: semantic, AST, graph, and full-text search. 279+ languages.
AI security scanner for Solidity + free CC0 dataset of Sherlock audit-competition acceptance rates.
SOAR security playbooks for AI agents: fetch, full-text search, and count. Metered via Stripe.
CVE lookups (NVD) and dependency-manifest audits (OSV) for AI agents. No API keys.
Related MCP Servers
AlicenseAqualityDmaintenanceMCP server that provides access to Cyfrin Solodit's database of smart contract security findings, enabling search and filtering by impact, firms, tags, and more.2MIT- AlicenseAqualityDmaintenanceConnects AI assistants to Solodit's 49,000+ blockchain vulnerability database, enabling search, browse, and lookup of audit findings directly from your AI workflow.4MIT
- AlicenseNot gradedqualityBmaintenanceAI-powered smart contract security analysis for AI agents and developers, enabling scanning of Solidity repos for vulnerabilities.168MIT
- AlicenseBqualityCmaintenanceEnables read-only search over a curated, provenance-preserving corpus of EVM smart-contract security knowledge, providing tools for retrieving audit findings, document context, and source information.5MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/marchev/claudit'
If you have feedback or need assistance with the MCP directory API, please join our Discord server