clangaroo
π¦ Clangaroo: Fast C++ code intelligence for LLMs via MCP
Documentation

π¦ Clangaroo: Fast C++ code intelligence for LLMs via MCP
β¨ About
NOTE (January 2026): Claude Code now has built-in support for LSPs, making this unnecessary. Since it may still be useful in other agentic harnesses I'll leave the project here for now.
Clangaroo enables Claude Code, Gemini CLI, and other coding agents to jump around your C++ codebase with ease. Clangaroo provides fast, direct lookup of C/C++ symbols, functions, definitions, call hierarchies, type hierarchies, and more by your bestest LLM pals.
Clangaroo combines the speed of Tree-sitter parsing with the accuracy of clangd LSP, optionally enhanced by Google Gemini Flash AI for deeper insights. Let your AI buddies spend more time coding and less time stumbling around.
But WHY did you make this? I β€οΈ using Claude Code, but every time it auto-compacts and then starts grepping around for the function we've been working on for forever, I die a little bit inside. But aren't there already a few MCPs that do this - why do we need another? I spent some time searching and found both MCP-language-server and Serena, which both look perfectly nice! Unfortunately, neither worked for me π
Clangaroo is meant to be super simple and is intended to 'just work'.
π Table of Contents
- π Quick Start
- π― Features
- π¬ Usage Examples
- π οΈ Available Tools
- π€ AI Features (Optional)
- βοΈ Configuration Reference
- π Requirements
- π§ Troubleshooting
- π License
- π Acknowledgments
π Quick Start
1. Install Clangaroo
git clone https://github.com/jasondk/clangaroo
cd clangaroo
pip install -e .2. Special compilation step for your C++ project
The clang LSP needs you to do this once:
# For Makefile-based projects
make clean
compiledb make
# (Some people prefer using π»)
bear -- make# For CMake projects
cmake -B build -DCMAKE_EXPORT_COMPILE_COMMANDS=ON
cp build/compile_commands.json .This will create a special `compile_commands.json` file in your project root.
3. Configure Claude Desktop or other MCP client
Did you know you can now add MCP servers to LM Studio?
π― Recommended configuration with AI:
N.B.: Use of `--ai-enabled` will use Google Gemini and will incur a small cost via your Gemini API key, if provided. This is usually very minor as long as you use Gemini Flash or Flash Lite.
Note: Please replace 'command' and 'project' with correct paths for your system, and replace `your-google-ai-api-key` with your API key (if using one). If you don't wish to use the AI enhanced services, simply leave out all the `--ai` options and the API key.
{
"mcpServers": {
"clangaroo": {
"command": "/usr/local/bin/clangaroo",
"args": [
"--project", "/path/to/your/cpp/project",
"--warmup",
"--warmup-limit", "10",
"--log-level", "info",
"--ai-enabled",
"--ai-provider", "gemini-2.5-flash",
"--ai-cache-days", "14",
"--ai-cost-limit", "15.0",
"--call-hierarchy-depth", "10",
"--ai-analysis-level", "summary",
"--ai-context-level", "minimal"
],
"env": {
"CLANGAROO_AI_API_KEY": "your-google-ai-api-key"
}
}
}
}π Claude Desktop config file locations
- macOS: `~/Library/Application Support/Claude/claude_desktop_config.json`
- Windows: `%APPDATA%\Claude\claude_desktop_config.json`
Default depth of AI analysis (`--ai-analysis-level`, default: `summary`).
Default depth of context (`--ai-context-level`, default: `minimal`).
4. Restart Claude Desktop
Quit and restart Claude. You're ready to explore your C++ code! π
5. Add MCP server to Claude Code
**OR**π― Features
- β‘ Ultra-Fast Navigation: Fast response times for code structure queries
- π Smart Symbol Search: Hybrid Tree-sitter + clangd search with automatic fallback
- π Deep Code Analysis: Call hierarchies, type hierarchies, and reference tracking
- π€ AI-Powered Insights: Documentation summarization, pattern detection, and architectural analysis
- πͺ Robust: Works even with compilation errors thanks to Tree-sitter fallback
- π Zero Configuration: Just point to a project with `compile_commands.json`
π¬ Usage Examples
This is really meant for coding agents like Claude Code more than you, but if you want to use it, you can just talk to your LLM naturally about your code once the MCP server is hooked up:
"Uncover the cryptic lair where the `UserManager` class is conjured from the void."
"Reveal every shadowy corner that invokes the dreaded `summonSoulPayment()` ritual."
"Expose the unholy powers inherited by the `DatabaseConnection` class from its ancient ancestors."
"Dissect the twisted call hierarchy of `unleashChaos()` and narrate the program's descent into madness."
#YMMVπ οΈ Available Tools
| Tool Category | Tools | Description |
|---|---|---|
| π Discovery | `cpp_list_files``cpp_search_symbols` | Find files and symbols in your codebase |
| π Navigation | `cpp_definition``cpp_references``cpp_hover` | Jump to definitions, find references, get type info |
| π Call Analysis | `cpp_incoming_calls``cpp_outgoing_calls` | Trace function relationships |
| ποΈ Type Hierarchy | `cpp_prepare_type_hierarchy``cpp_supertypes``cpp_subtypes` | Analyze inheritance |
| β‘ Structure | `cpp_list_functions``cpp_list_classes``cpp_get_outline``cpp_extract_signatures` | Fast structural analysis |
π€ AI Features (Optional)
Setup
1. Get your API key from Google AI Studio
2. Add to your environment (`bash`):
export CLANGAROO_AI_API_KEY="your-api-key"What You Get
- π Smart Documentation: Complex C++ docs explained clearly
- π Pattern Analysis: Understand why and how functions are called
- ποΈ Architecture Insights: Identify design patterns automatically
- π‘ Refactoring Tips: Get improvement recommendations
- π° Cost Effective: $3-7/month typical usage with smart caching
βοΈ Configuration Reference
View all configuration options
Basic Options
- `--project PATH` - Path to C++ project root (required)
- `--log-level LEVEL` - Logging verbosity: debug, info, warning, error
- `--timeout SECONDS` - LSP request timeout (default: 5.0)
Performance Options
- `--warmup` - Pre-warm the index by opening key files
- `--warmup-limit N` - Number of files to warm up (default: 10)
- `--wait-for-index` - Wait for clangd indexing to complete
- `--index-timeout SECONDS` - Timeout for index wait (default: 300)
- `--index-path PATH` - Custom clangd index location
AI Options
- `--ai-enabled` - Enable AI features
- `--ai-provider PROVIDER` - AI provider: gemini-2.5-flash or gemini-2.5-flash-lite
- `--ai-api-key KEY` - Google AI API key
- `--ai-cache-days DAYS` - Cache AI summaries for N days (default: 7)
- `--ai-cost-limit AMOUNT` - Monthly cost limit in USD (default: 10.0)
- `--ai-analysis-level LEVEL` - Default analysis depth: summary or detailed
- `--ai-context-level LEVEL` - Code context depth: minimal, local, or full
Call Hierarchy Options
- `--call-hierarchy-depth DEPTH` - Maximum depth (1-10, default: 3)
- `--call-hierarchy-max-calls NUM` - Total call limit (default: 100)
- `--call-hierarchy-per-level NUM` - Calls per depth level (default: 25)
π Requirements
- Python 3.10+
- clangd 16+ (`brew install llvm` or `apt install clangd`)
- C++ project with `compile_commands.json`
- (Optional) Google AI API key for AI features
π§ Troubleshooting
Claude doesn't see the tools
1. Check the config file location and JSON syntax
2. Use absolute paths in the configuration
3. Restart Claude Desktop completely
4. Check logs with `--log-level debug`
No results from queries
1. Verify `compile_commands.json` includes the files
2. Wait for indexing: add `--wait-for-index` flag
3. Test clangd directly: `clangd --check=file.cpp`
Performance issues
- Enable warmup: `--warmup --warmup-limit 30`
- Use shared index: `--index-path /shared/clangd-index`
- Reduce call hierarchy depth for large codebases
π License
MIT License - see the file for details.
π Acknowledgments
- clangd for C++ language server
- Tree-sitter for syntax parsing
- MCP for the protocol specification
- Google Gemini for AI capabilities
Frequently asked questions
What is clangaroo?
clangaroo is π¦ Clangaroo: Fast C++ code intelligence for LLMs via MCP
How do I install clangaroo?
Open the GitHub repository and follow its README. Most MCP servers are added to your client's MCP config, then called by your agent.
Is clangaroo open source?
Yes β it is hosted on GitHub at https://github.com/jasondk/clangaroo and has 6 stars.
Related MCP tools
A powerful coding agent toolkit providing semantic retrieval and editing capabilities (MCP server & other integrations) Python-based implementation.
An LLM agent that conducts deep research (local and web) on any given topic and generates a long report with citations. Built for the Model Context Protocol to
Shell and coding agent on claude desktop app for the Model Context Protocol. Enhance AI assistants with powerful integrations. Python-based implementation.
π₯ MaxKB is an open-source platform for building enterprise-grade agents. MaxKB ζ―εΌΊε€§ζη¨ηεΌζΊδΌδΈηΊ§ζΊθ½δ½εΉ³ε°γ for the Model Context Protocol. Enhance AI assistants with po
Agent Framework For Fintech for the Model Context Protocol. Enhance AI assistants with powerful integrations. Python-based implementation.
Chat with your Kubernetes Cluster using AI tools and IDEs like Claude and Cursor! for the Model Context Protocol. Enhance AI assistants with powerful integratio
Run your own MCP server? See who uses it and what to fix.
Measure it with TrackMCP