Skip to main content
Glama
Carlys17

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