ModAST-MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| workspace_openA | Open a C++ workspace and start one persistent module-aware clangd process. |
| workspace_statusA | Return clangd readiness, warmup progress, module counts, PCM/modmap coverage, and recent errors. |
| workspace_refreshB | Reload compile commands and rebuilt PCM/modmap artifacts, restarting clangd without rewriting unchanged cache files. |
| workspace_warmA | Start non-blocking AST warmup. Poll workspace_status; other MCP tools remain available. |
| module_searchA | Search named C++ modules and partitions, including entities clangd does not expose as symbols. |
| module_graphC | Resolve a module to interface units, imports, dependencies, and importing translation units. |
| module_qualityA | Use clangd AST to find non-trivial definitions in module interfaces and verify matching .cpp implementation units. |
| formatA | Format C++/module source with clangd. Preview is the default; apply=true explicitly writes the file and updates clangd. |
| astA | Return clangd's detailed AST plus synthetic module context for module declarations/imports. |
| document_symbolsB | List declarations in a C++ source or module unit using clangd's hierarchical symbol view. |
| workspace_symbolsB | Search clangd symbols and named C++ modules in one request. |
| definitionB | Find a declaration/definition across module BMIs. Position values are 1-based; needle is often easier for agents. |
| referencesB | Find indexed references to a declaration across module units and translation units. |
| diagnosticsB | Parse a file and return clangd diagnostics after module resolution. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 14 tools
The tools sort into recognizable groups: workspace lifecycle, module graph/quality, AST/symbol queries, navigation, and diagnostics. There is some boundary overlap between module_search and workspace_symbols, and between ast and document_symbols, but the descriptions are usually enough to steer an agent to the right tool.
The naming is readable and uniformly snake_case, but is not strongly consistent: workspace_open and workspace_refresh are verb-focused, while ast, definition, references, diagnostics, module_quality, and document_symbols follow different naming styles. The workspace_* and module_* prefixes help, but there is no single predictable verb_noun pattern across the surface.
14 tools is reasonable for a C++ module-aware clangd server covering workspace lifecycle, module graph analysis, AST inspection, formatting, navigation, and diagnostics. It is on the larger side, but each tool addresses a meaningful aspect of the domain rather than introducing pure redundancy.
The tool surface covers workspace readiness, module discovery and dependency resolution, AST/symbol queries, formatting, cross-file navigation, and diagnostics. Minor gaps include a way to close/discard a workspace and any MCP-level operation to modify module units, but these do not block core read/build/analyze workflows.