Labsco
MCP SERVER

Clangaroo

by jasondk

C and C++ symbol lookup for a coding agent — definitions, references, call hierarchies and type hierarchies — from clangd, with Tree-sitter as the fallback.

Code Intelligence & Repository Indexing
Summary
Stops the agent grepping for a function it has been editing all afternoon.

The pitch in the README is a familiar frustration: after a context compaction the model goes back to searching text for a symbol it already knew. Call hierarchies and reference lists give it a real answer instead. One thing to weigh first — the author's own note says Claude Code now has built-in language-server support, so this earns its place mainly in other agent harnesses.

What it is

A code-intelligence server for a C/C++ project. It pairs clangd for accurate lookups with Tree-sitter parsing so structural queries still answer when the build is broken, and it points the agent at your project through a compile_commands.json you generate once.

What you get
  • cpp_list_files and cpp_search_symbols find where things live in the codebase
  • cpp_definition, cpp_references and cpp_hover jump to a definition, list every use, and read type information at a position
  • cpp_incoming_calls and cpp_outgoing_calls trace who calls a function and what it calls in turn
  • cpp_prepare_type_hierarchy, cpp_supertypes and cpp_subtypes walk an inheritance chain
  • cpp_list_functions, cpp_list_classes, cpp_get_outline and cpp_extract_signatures answer structural questions from the parse tree, which keeps working through compilation errors
  • With --ai-enabled, lookups can be summarised by Google Gemini; --ai-cost-limit caps the monthly spend and --ai-cache-days keeps summaries warm
Requirements

Python 3.10 or newer, clangd 16 or newer, and a compile_commands.json in the project root — generated with compiledb, bear, or CMake's CMAKE_EXPORT_COMPILE_COMMANDS. The server is version 0.2.0 and takes --project PATH as its one required flag. AI summaries are optional and need a Google AI key in CLANGAROO_AI_API_KEY.

Setup effort

One command — pip install -e .