ast-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| AST_MCP_ROOT | No | Root path for indexing and serving. Resolved via --root, else AST_MCP_ROOT, else the working directory. | current working directory |
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": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| file_outlineA | Outline one file: definitions, key paths or headings, bodies elided. Use this instead of reading a file to find out what is in it. mode: "full" (default) or "names" — names, lines and counts only, for
enumerating what a file defines.
On a data file this answers record count and field types without returning
any value from inside a collection: each collection carries
|
| get_symbolB | Fetch definitions by name, key path, or heading slug. mode: "source" (default) returns the body, "signature" and "doc" omit it. A name matching several different symbols returns candidates rather than guessing. A name matching several definitions of the same thing — many Lua listeners on one event — returns all of them in "symbols". line: pick one definition by the start_line a candidate reported. |
| search_symbolsC | Find definitions, key paths and headings by name across the repository. group is one of core, web, scripting, data, devops, docs. |
| get_docstringsB | Documentation without bodies. Pass exactly one of path or symbols. |
| list_importsC | Dependency edges out of one file, plus exports where the language has them. |
| ast_queryA | Run a raw tree-sitter S-expression query against one file. The escape hatch for anything the five typed tools flatten away. |
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 6 tools
Most tools target clearly distinct operations: repository search, single-file outline, raw AST query, imports/exports, and symbol lookup. The main ambiguity is between get_docstrings and get_symbol with mode 'doc', which could serve similar documentation-retrieval purposes.
All names are readable snake_case, but the pattern is mixed: get_docstrings and get_symbol use 'get_', while file_outline, ast_query, list_imports, and search_symbols each start with a different noun or verb. There is no single consistent verb_noun convention, though the names are still predictable enough to navigate.
Six tools is a well-scoped size for an AST/source-analysis server. Each tool covers a meaningful slice of the domain without redundancy or bloat, and ast_query exists as an intentional escape hatch rather than a loosely-scoped extra.
The set covers documentation extraction, file outlining, symbol lookup and search, imports/exports, and raw AST querying, which forms a coherent lifecycle for source exploration. The ast_query escape hatch explicitly fills any gap left by the typed tools, so agents can handle cases outside the common patterns.