MCP Contract Auditor
by Carlys17
README.md
# š MCP Contract Auditor
**Smart Contract Security Audit MCP Server** ā Fetch, analyze, and generate audit reports for EVM smart contracts.
Built for [CyOps Arena Hackathon](https://arena.cysic.xyz/) by [Carlys17](https://github.com/Carlys17).
## Features
| Tool | Description |
|------|-------------|
| `audit_contract` | š **Full audit** ā fetch source, scan vulns, analyze holders, generate report |
| `fetch_contract` | Fetch verified contract source code & ABI from Blockscout |
| `scan_vulns` | Scan Solidity source for 15+ vulnerability patterns |
| `check_holders` | Analyze token holder distribution & centralization risk |
| `list_chains` | List all supported EVM chains |
## Supported Chains
Ethereum, Base, Arbitrum, Optimism, Polygon, BNB Chain, Gnosis, Avalanche, zkSync Era, Celo ā all via [Blockscout](https://www.blockscout.com/) API (no API key required).
## Vulnerability Detection
| Category | Patterns Detected |
|----------|-------------------|
| š“ Reentrancy | Classic reentrancy, cross-function reentrancy |
| š Access Control | Missing modifiers, tx.origin auth |
| š External Calls | Unchecked low-level calls, delegatecall, selfdestruct |
| š” Integer | Overflow/underflow (pre-0.8), unchecked arithmetic |
| š” Denial of Service | Unbounded loops, forced ether |
| š” ERC-20 | Missing return values, approve race condition |
| šµ Informational | Floating pragma, inline assembly, timestamp dependence |
## Installation
```bash
# Clone
git clone https://github.com/Carlys17/mcp-contract-auditor.git
cd mcp-contract-auditor
# Install dependencies
npm install
# Build
npm run build
# Run
npm start
```
## Usage with Claude Desktop
Add to your Claude Desktop config (`claude_desktop_config.json`):
```json
{
"mcpServers": {
"contract-auditor": {
"command": "node",
"args": ["/path/to/mcp-contract-auditor/dist/index.js"]
}
}
}
```
## Example Usage
### Full Audit
```
audit_contract(
address: "0x1234...abcd",
chain: "ethereum",
include_holder_analysis: true
)
```
### Quick Vulnerability Scan
```
scan_vulns(
source_code: "pragma solidity ^0.8.0; contract Foo { ... }",
contract_name: "Foo"
)
```
### Check Token Holders
```
check_holders(
address: "0x1234...abcd",
chain: "base"
)
```
## Architecture
```
mcp-contract-auditor/
āāā src/
ā āāā index.ts # MCP server entry (5 tools)
ā āāā types.ts # Type definitions
ā āāā tools/
ā ā āāā analyze-vulnerabilities.ts # 15+ vuln detectors
ā ā āāā holder-analysis.ts # Token holder analysis
ā ā āāā generate-report.ts # Markdown report generator
ā āāā utils/
ā āāā blockscout.ts # Blockscout API client
ā āāā chains.ts # EVM chain configs
āāā package.json
āāā tsconfig.json
```
## How It Works
1. **Fetch** ā Retrieves verified contract source code from Blockscout API
2. **Analyze** ā Runs 15+ pattern-based vulnerability detectors on the source
3. **Holder Check** ā Fetches token holder data and calculates Gini coefficient
4. **Report** ā Generates a structured markdown audit report with severity ratings
## Disclaimer
This is an automated static analysis tool. It uses pattern matching and heuristics ā it is **NOT** a substitute for a professional manual security audit. Always conduct thorough manual review before deploying contracts with real funds.
## License
MIT
---
*Built with ā¤ļø for CyOps Arena Ć MiniMax M3 Hackathon*
TDQS
A3.7/5.0
Scored across 5 tools
Disambiguation4/5
Tools are largely distinct with clear purposes. However, `audit_contract` is a composite that includes functionality of `scan_vulns` and `check_holders`, which could cause some confusion, but descriptions clarify the difference.
Naming Consistency5/5
All tools follow a consistent verb_noun pattern using snake_case (e.g., audit_contract, list_chains), making it easy for an agent to predict tool names.
Tool Count5/5
Five tools is well-scoped for a contract auditor server, covering the essential operations without being overwhelming or insufficient.
Completeness4/5
The tool set covers fetching, scanning, holder analysis, and full auditing with chain listing. Missing features like audit history or detailed chain info are minor gaps.
Maintenance
ActivityStale
ResponsivenessNo issues