Skip to main content
Glama
Xayan

ast-outline-mcp

by Xayan

ast-outline-mcp

An MCP (Model Context Protocol) server for ast-outline — a tree-sitter-based CLI that lets AI coding agents pull exactly what they need from a codebase: structural outlines, module digests, symbol bodies, and AST-aware grep.

Why

LLM coding agents explore codebases by reading files directly. A 1200-line file costs 1200 lines of context just to answer "what methods are in here?" — ast-outline provides the file's shape in 60–100 lines, and this MCP server exposes that functionality to any MCP-compatible client.

Related MCP server: Lore MCP Server

Prerequisites

uv tool install ast-outline

Installation

Run via npx (no install needed)

npx ast-outline-mcp

Install globally

npm install -g ast-outline-mcp
ast-outline-mcp

MCP Client Configuration

Add to your MCP client config (e.g., Claude Desktop):

{
  "mcpServers": {
    "ast-outline": {
      "command": "npx",
      "args": ["ast-outline-mcp"]
    }
  }
}

Tools

digest

Get a compact one-page module map of a directory. Each file gets a size label and token estimate. Recommended for initial overview of a codebase.

Parameters:

  • path (string, required) — Directory path to digest

outline

Get a structural outline of one or more files or directories. Returns signatures with line ranges (no bodies).

Parameters:

  • path (string, required) — File or directory path to outline

  • imports (boolean) — Include import/use/using statements

  • noPrivate (boolean) — Exclude private members

  • noFields (boolean) — Exclude fields/properties

  • noDocs (boolean) — Exclude documentation comments

  • noAttrs (boolean) — Exclude attributes/decorators

show

Extract the full source body of one or more symbols from a file.

Parameters:

  • file (string, required) — File path to extract symbols from

  • symbols (string[], required) — Symbol names to extract

  • signature (boolean) — Return header/signature only, no body

grep

AST-aware structural search across files. Matches grouped by enclosing class/function.

Parameters:

  • pattern (string, required) — Search pattern (literal or regex, auto-detected)

  • path (string, required) — File or directory path to search

  • kind (enum: def|call|ref|import) — Narrow results by classification kind

  • wordMatch (boolean) — Match whole words only

  • caseInsensitive (boolean) — Case-insensitive matching

  • filesOnly (boolean) — List matching files only

  • count (boolean) — Show match counts per file

  • maxCount (number) — Maximum number of matches per file

Prompts

explore-codebase

A prompt that guides an LLM to efficiently explore a codebase using ast-outline tools.

Development

npm install
npm test
npm run build

Supported Languages

ast-outline supports 20+ languages including TypeScript, Python, Go, Rust, C#, Java, Kotlin, Ruby, PHP, and more. See the full list.

License

MIT

Available Tools

4 tools
digestA

Get a compact one-page module map of a directory. Each file gets a size label and token estimate. Type headers carry inheritance and decorators.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesAbsolute path to directory

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It describes the output convincingly but does not disclose any behavioral traits such as read-only nature, side effects, performance implications, or required permissions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, no superfluous words, front-loaded with purpose. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter tool with no output schema, the description adequately covers what the tool does and what the output contains. Slightly lacking in behavioral context but complete for its simplicity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% (one parameter 'path' with description). The description adds no extra meaning beyond the schema's own description, meeting the baseline but not exceeding it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Get') and concrete resource ('compact one-page module map of a directory'), details output elements (size label, token estimate, inheritance and decorators), and clearly distinguishes from siblings (grep, outline, show) by focusing on a summarized overview with metrics.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for obtaining a directory summary but does not explicitly state when to use or avoid this tool versus siblings, nor provide prerequisites or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

grepA

AST-aware structural search across a file or directory. Matches are grouped by enclosing class/function, with kind tags [def]/[import]. Comment/string noise is filtered by default. Regex is auto-detected.

ParametersJSON Schema
NameRequiredDescriptionDefault
kindNoNarrow results by classification kind
pathYesAbsolute path to search
countNoShow match counts per file (-c)
patternYesSearch pattern (literal or regex, auto-detected)
maxCountNoMaximum number of matches per file (-m)
filesOnlyNoList matching files only (-l)
wordMatchNoMatch whole words only (-w)
caseInsensitiveNoCase-insensitive matching (-i)

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It discloses AST-awareness, grouping, kind tags, noise filtering, and regex auto-detection. However, it omits return format, permissions, or side effects, which are important for a search tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no fluff. Front-loaded with key functionality. Every word adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 8 parameters and no output schema, description covers essential behavioral traits (AST, grouping, filtering) and pattern detection. Missing return format, but otherwise adequate for a search tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. Description adds context (AST-awareness, grouping, noise filtering) that enhances understanding but does not elaborate on individual parameters beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states 'AST-aware structural search across a file or directory', specifying verb (search) and resource (file/directory). It distinguishes from siblings (digest, outline, show) by emphasizing AST-awareness and structural grouping.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Description implies when to use (structural search, with filtering) but does not explicitly state when not to use or alternatives. It provides context but lacks exclusion criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

outlineA

Get a structural outline of a file or directory. Returns signatures with line ranges (no bodies).

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesAbsolute path
noDocsNoExclude documentation comments
importsNoInclude import/use/using statements
noAttrsNoExclude attributes/decorators
noFieldsNoExclude fields/properties
noPrivateNoExclude private members

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It discloses that the tool returns signatures with line ranges and excludes bodies. However, it does not mention read-only behavior, error handling, or performance implications. Acceptable but minimal.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One sentence that front-loads the purpose ('Get a structural outline of a file or directory') followed by a brief behavioral note. No wasted words; every part is informative.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description explains the return format (signatures with line ranges, no bodies). For a tool with 6 boolean filters, it provides a clear output concept. Lacks details like whether the outline is flat or nested, but sufficient for typical use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All 6 parameters have schema descriptions (100% coverage), so the schema already explains their meanings. The description adds no additional parameter details beyond restating 'no bodies' in the output context. Baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool gets a 'structural outline' (verb+resource) and specifies it returns 'signatures with line ranges (no bodies)'. This is distinct from siblings like 'grep' (search), 'show' (display content), and 'digest' (summary).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool vs alternatives like 'digest', 'grep', or 'show'. The description does not mention when to prefer outline over other tools or what prerequisites exist.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

showA

Extract the full source body of one or more symbols from a file. Supports suffix matching (e.g., 'Foo.Bar' matches '*.Foo.Bar'). Use --signature to get header only.

ParametersJSON Schema
NameRequiredDescriptionDefault
fileYesAbsolute path to the file
symbolsYesSymbol names to extract
signatureNoReturn header/signature only, no body

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions suffix matching and the --signature option, but does not disclose whether the operation is read-only, permission requirements, or other side effects. Adequate but not rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the main purpose. Every sentence adds value without unnecessary words. Excellent conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the main behavior, parameter semantics, and a usage tip. It does not explain the return format, but given the tool's simplicity and lack of output schema, it is fairly complete for an agent to use correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. The description adds value by explaining suffix matching behavior (e.g., 'Foo.Bar' matches '*.Foo.Bar') and the function of the --signature flag, which goes beyond the schema's basic descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('extract') and the resource ('full source body of one or more symbols from a file'). It effectively distinguishes from sibling tools like grep (text search) and outline (structure) by specifying symbol extraction.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for extracting symbol bodies and mentions suffix matching and the --signature flag, but does not explicitly state when to use this tool over alternatives or when not to use it. Usage context is implied rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

A4/5.0
Disambiguation5/5

Each tool has a clear and distinct purpose: digest for module overview, grep for structured search, outline for structural listing, and show for code extraction. No overlap in functionality.

Naming Consistency5/5

All tool names are single-word lowercase verbs (digest, grep, outline, show), following a consistent and predictable pattern.

Tool Count5/5

With 4 tools, the set is well-scoped for an AST server. Each tool covers a core operation without redundancy or excess.

Completeness4/5

The tools cover key AST reading operations: overview, search, structure, and extraction. Minor gaps like documentation retrieval are acceptable for the domain.

Maintenance

ActivityStale
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    C
    maintenance
    Provides structural code intelligence via 26 MCP tools, enabling AI assistants to query code symbols, dependencies, and call graphs accurately without file-pasting.
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables LLM agents to query a codebase's structural knowledge (symbols, imports, call graphs, etc.) via MCP, reducing tokens and improving correctness compared to raw file access.
    26
    6
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    MCP server for semantic codebase navigation that builds an AST index of symbols, imports, and exports, providing AI agents with tools to search, explore, and understand code.
    MIT
  • F
    license
    Not graded
    quality
    A
    maintenance
    Provides a local-first code indexing and search engine for coding agents via MCP, enabling precise codebase queries, symbol lookup, and freshness-aware retrieval.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Xayan/ast-outline-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server