Cerberus
БесплатноНе проверенAn MCP server that provides ultra-efficient code exploration through AST analysis, reducing LLM token usage by up to 95% while enabling instant call graph gener
Описание
An MCP server that provides ultra-efficient code exploration through AST analysis, reducing LLM token usage by up to 95% while enabling instant call graph generation and dependency analysis for massive codebases.
README
AST-based code exploration with 90%+ token reduction
OpenClaw Skill MCP Compatible License: MIT
Cerberus MCP is a Model Context Protocol server that provides ultra-efficient code exploration through AST analysis. Reduce LLM token usage by up to 95% while enabling instant call graph generation and dependency analysis for massive codebases.
✨ Why Cerberus?
Traditional code analysis sends full source files to the LLM → expensive, slow, token-limited.
Cerberus MCP pre-processes your code into an optimized AST representation:
Original codebase: 500 files, 100k LOC → ~250,000 tokens
Cerberus MCP: Same codebase → ~12,500 tokens (95% reduction!)
Benefits:
- 💰 Save $$$ on LLM API costs (95% fewer tokens)
- ⚡ Instant insights - call graphs in <100ms
- 📊 Scale to huge repos - analysis under 2 seconds for 1000+ files
- 🔌 MCP native - works with Claude Desktop, Cursor, Windsurf
🚀 Quick Start
1. Install
# From GitHub (once published)
git clone https://github.com/openclaw/skill-cerberus-mcp.git
cd skill-cerberus-mcp
npm install
npm run build
sudo ln -s $(pwd)/dist/cli.js /usr/local/bin/cerberus-mcp
2. Configure
Create cerberus-mcp.yaml:
mcp:
server:
port: 8080
transport: stdio
analysis:
languages: [python, typescript, javascript, go, rust]
max_files: 10000
cache:
enabled: true
ttl: 1h
path: ~/.cache/cerberus
reduction:
ast_compression: true
deduplicate_imports: true
inline_small_functions: true
3. Start Server
# Analyze a repository
cerberus-mcp start --repo ~/projects/myapp --language typescript
# Output: MCP server listening on stdio...
4. Connect Claude Desktop
Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS):
{
"mcpServers": {
"cerberus": {
"command": "cerberus-mcp",
"args": ["start", "--repo", "/path/to/your/repo", "--language", "typescript"]
}
}
}
Restart Claude. Now you can ask:
"Show me the call graph for
main()"
"What are all the dependencies of theutilsmodule?"
"Which files would be affected if I changeapi/auth.ts?"
🎯 Use Cases
📐 Architecture Analysis
Generate dependency graphs to understand system structure:
cerberus-mcp deps --module "src/server" --include-transitive --format dot > graph.dot
dot -Tpng graph.dot -o architecture.png
🐛 Debugging
Trace complex call chains:
cerberus-mcp callgraph --function "handleRequest" --depth 5 --format json
📝 PR Review
Before merging, check impact:
cerberus-mcp impact --files "src/auth.ts,src/middleware.ts" --max-hops 10
📚 Documentation
Auto-generate API docs from AST:
cerberus-mcp docs --module "public-api" --format markdown > API.md
🔄 Migration Planning
Evaluate refactor scope:
cerberus-mcp analyze --old "src/legacy" --new "src/modern" --report diff.html
🏗️ Architecture
┌─────────────────────────────────────────────────────────────┐
│ AI Agent │
│ (Claude, Cursor, etc.) │
└───────────────────────────┬─────────────────────────────────┘
│ MCP Request
▼
┌─────────────────────────────────────────────────────────────┐
│ Cerberus MCP Server │
│ ┌──────────────────────────────────────────────────────┐ │
│ │ Tree-sitter Parsers (per language) │ │
│ │ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ │ │
│ │ │ Python │ │ TS/JS │ │ Go │ │ Rust │ │ │
│ │ └─────────┘ └─────────┘ └─────────┘ └─────────┘ │ │
│ └──────────────────────────────────────────────────────┘ │
│ ┌──────────────────────────────────────────────────────┐ │
│ │ AST Compression Engine │ │
│ │ - Inline small functions (< 3 lines) │ │
│ │ - Deduplicate imports │ │
│ │ - Remove dead code │ │
│ │ - Abstract patterns (factory, singleton, etc.) │ │
│ └──────────────────────────────────────────────────────┘ │
│ ┌──────────────────────────────────────────────────────┐ │
│ │ Call Graph Builder │ │
│ │ - Extract references │ │
│ │ - Build dependency edges │ │
│ │ - Topological sort │ │
│ └──────────────────────────────────────────────────────┘ │
│ ┌──────────────────────────────────────────────────────┐ │
│ │ MCP Transport Layer │ │
│ │ - stdio / SSE / WebSocket │ │
│ │ - JSON-RPC 2.0 │ │
│ │ - Streaming responses │ │
│ └──────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
📊 Performance
| Codebase Size | Traditional (tokens) | Cerberus (tokens) | Reduction | Analysis Time |
|---|---|---|---|---|
| Small (~100 files) | 50k | 2.5k | 95% | <500ms |
| Medium (~1000 files) | 500k | 12.5k | 97.5% | <2s |
| Large (~10000 files) | 5M | 125k | 97.5% | <10s |
Tested on mixed-language repositories with average file size 200 LOC.
🧪 Testing
# Unit tests
npm test
# Integration tests (requires sample repos)
npm run test:integration
# Performance benchmark
npm run bench
# Expected output:
# ✅ 50 tests passed
# 🕒 1.8s average analysis time
# 📉 94.2% token reduction
📦 Package Structure
cerberus-mcp/
├── src/
│ ├── server.ts # MCP server implementation
│ ├── analyzer.ts # AST analysis engine
│ ├── compressor.ts # Token reduction algorithms
│ ├── callgraph.ts # Call graph builder
│ └── mcp/
│ ├── handlers.ts # MCP protocol handlers
│ └── types.ts # TypeScript definitions
├── tests/
│ ├── unit.test.ts # Unit tests
│ ├── integration.test.ts
│ └── fixtures/ # Sample codebases
├── examples/
│ ├── react-app/ # Example configuration
│ └── python-microservice/
├── dist/
│ └── cli.js # Executable entry point
├── package.json
├── README.md
├── LICENSE
├── SKILL.md
└── cerberus-mcp.yaml
🔧 Development
# Build
npm run build
# Watch mode
npm run dev
# Lint
npm run lint
# Format
npm run format
Adding a New Language
- Install Tree-sitter grammar:
npm install tree-sitter-<language> - Create parser in
src/analyzer.ts:
import Parser from 'tree-sitter';
import grammar from 'tree-sitter-<language>';
const parser = new Parser();
parser.setLanguage(grammar);
export function parse<Language>(source: string): Node {
return parser.parse(source).rootNode;
}
- Add language to
cerberus-mcp.yamlconfig. - Write tests in
tests/fixtures/<language>/.
🛡️ License
MIT © 2026 OpenClaw Team
🙏 Acknowledgments
- Inspired by proxikal/cerberus-mcp (original concept)
- Built on Tree-sitter for parsing
- MCP spec by Anthropic
📞 Support
- 🐛 Issues: https://github.com/openclaw/skill-cerberus-mcp/issues
- 💬 Discord:
#skill-cerberus-mcpin OpenClaw server - 📖 Docs: https://clawhub.com/skills/cerberus-mcp
Ready to slash your token costs? Install Cerberus MCP today and explore code like never before.
Установка Cerberus
У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.
▸ github.com/Undermybelt/skill-cerberus-mcpFAQ
Cerberus MCP бесплатный?
Да, Cerberus MCP бесплатный — установка в пару кликов через Unyly без оплаты.
Нужен ли API-ключ для Cerberus?
Нет, Cerberus работает без API-ключей и переменных окружения.
Cerberus — hosted или self-hosted?
Self-hosted: сервер запускается локально на твоей машине командой из раздела установки.
Как установить Cerberus в Claude Desktop, Claude Code или Cursor?
Открой Cerberus на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.
Похожие MCP
GitHub
PRs, issues, code search, CI status
автор: GitHubFilesystem
Secure file operations with configurable access controls.
Memory
Knowledge graph-based persistent memory system.
Template MCP Server
A CLI tool to create a new Model Context Protocol server project with TypeScript support, dual transport options, and an extensible structure
автор: mcpdotdirectCompare Cerberus with
Не уверен что выбрать?
Найди свой стек за 60 секунд
Автор?
Embed-бейдж для README
Похожее
Все в категории development
