Token-efficient code intelligence MCP server for AI coding agents.
pitlane-mcp indexes a codebase once with tree-sitter and lets agents retrieve the symbols they actually need instead of dumping whole files into context.
AI coding agents tend to over-read. pitlane-mcp gives them a smaller navigation surface and symbol-level reads so they can:
- index code once
- discover the right symbol or file
- read the smallest useful unit
- trace execution paths and change impact
On the benchmark corpora in this repo, that translates into large reductions in prompt footprint, often by one or two orders of magnitude, while keeping navigation grounded in the codebase.
- AST-based indexing for Rust, Python, JavaScript, TypeScript, Svelte, C, C++, Go, Java, C#, Ruby, Swift, Objective-C, PHP, Zig, Kotlin, Lua, Solidity, and Bash
- BM25 symbol search plus optional semantic search
- Small default MCP surface for agents
- Composite navigation tools for discovery, reading, path tracing, and impact analysis
- Incremental re-indexing and disk-persisted indexes
- Fully local operation with no required external service
Download a pre-built binary from GitHub Releases for Linux, macOS, and Windows.
Or install via Homebrew:
brew tap eresende/pitlane-mcp
brew install pitlane-mcpOr install via cargo-binstall:
cargo binstall pitlane-mcpOr install from crates.io:
cargo install pitlane-mcpOr build from source:
cargo build --release
cp target/release/pitlane-mcp ~/.local/bin/
cp target/release/pitlane ~/.local/bin/claude mcp add pitlane-mcp -- pitlane-mcpAdd to opencode.json or opencode.jsonc:
{
"mcp": {
"pitlane-mcp": {
"type": "local",
"command": ["pitlane-mcp"]
}
}
}Add to .vscode/mcp.json or .kiro/settings/mcp.json:
{
"mcp": {
"servers": {
"pitlane-mcp": {
"type": "stdio",
"command": "pitlane-mcp",
"args": []
}
}
}
}Most users should stay on the default tool tier:
- Call
ensure_project_readyonce at startup. It ensures the index exists and reports whether embeddings are still running, but it does not block on embeddings. - Use
investigatefirst for broad code questions such as subsystem, behavior, and execution-path questions. - Use
locate_codewhen you need discovery without full source. - Use
read_code_unitonce you know the target. - Use
trace_pathfor explicit source-to-sink or config-to-effect questions. - Use
analyze_impactbefore edits or refactors. - Use
search_contentonly when you know a text fragment but not the owning symbol.
Default public tier:
ensure_project_readyinvestigatelocate_coderead_code_unittrace_pathanalyze_impactget_index_statssearch_content
Advanced primitives are hidden from tools/list by default. Set PITLANE_MCP_TOOL_TIER=all to expose the full surface.
- Docs Index
- Tool Reference
- Agent Guidance
- Languages and Symbol Kinds
- Benchmarks
- Security
- Branding
- Semantic Search
- Benchmark Harness
The pitlane binary exposes the same code intelligence outside MCP.
Examples:
pitlane index /your/project
pitlane investigate /your/project "How does ignore handling work?"
pitlane search /your/project authenticate --kind method
pitlane symbol /your/project src/auth.rs::Auth::login[method]
pitlane usages /your/project src/auth.rs::Auth::login[method]All commands output JSON to stdout. Logs go to stderr and are controlled with RUST_LOG.
pitlane-mcp supports Rust, Python, JavaScript, TypeScript, Svelte, C, C++, Go, Java, C#, Bash, Ruby, Swift, Objective-C, PHP, Zig, Lua, Kotlin, and Solidity.
For the full extension matrix and symbol-kind coverage, see Languages and Symbol Kinds.
pitlane-mcpis feature-complete and maintained as an OSS navigation tool.- Benchmark numbers in this repo are release-specific snapshots, not guarantees for every agent harness or model.
Licensed under either of MIT License or Apache License, Version 2.0, at your option.

