{"id":47733731,"url":"https://github.com/eresende/pitlane-mcp","last_synced_at":"2026-04-25T23:11:08.155Z","repository":{"id":347427695,"uuid":"1194046086","full_name":"eresende/pitlane-mcp","owner":"eresende","description":"Token-efficient navigation substrate for AI coding agents. Index code once and retrieve only the symbols you need.","archived":false,"fork":false,"pushed_at":"2026-04-20T23:29:11.000Z","size":37404,"stargazers_count":57,"open_issues_count":0,"forks_count":9,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-04-21T01:29:55.173Z","etag":null,"topics":["ai","code-navigation","coding-agent","developer-tools","llm","mcp","model-context-protocol","rust","semantic-search","tree-sitter"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/eresende.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE-APACHE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-03-27T21:27:41.000Z","updated_at":"2026-04-20T23:29:14.000Z","dependencies_parsed_at":"2026-03-28T04:05:38.974Z","dependency_job_id":null,"html_url":"https://github.com/eresende/pitlane-mcp","commit_stats":null,"previous_names":["eresende/pitlane-mcp"],"tags_count":14,"template":false,"template_full_name":null,"purl":"pkg:github/eresende/pitlane-mcp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eresende%2Fpitlane-mcp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eresende%2Fpitlane-mcp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eresende%2Fpitlane-mcp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eresende%2Fpitlane-mcp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/eresende","download_url":"https://codeload.github.com/eresende/pitlane-mcp/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eresende%2Fpitlane-mcp/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32278249,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-25T18:29:39.964Z","status":"ssl_error","status_checked_at":"2026-04-25T18:29:32.149Z","response_time":59,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","code-navigation","coding-agent","developer-tools","llm","mcp","model-context-protocol","rust","semantic-search","tree-sitter"],"created_at":"2026-04-02T22:06:24.050Z","updated_at":"2026-04-25T23:11:08.150Z","avatar_url":"https://github.com/eresende.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# pitlane-mcp\n\n[![CI](https://github.com/eresende/pitlane-mcp/actions/workflows/ci.yml/badge.svg)](https://github.com/eresende/pitlane-mcp/actions/workflows/ci.yml)\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"docs/branding/pitlane-mcp-logo.png\" alt=\"Pitlane MCP logo\" width=\"720\"\u003e\n\u003c/p\u003e\n\nToken-efficient code intelligence MCP server for AI coding agents.\n\n`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.\n\n## Project Status\n\n`pitlane-mcp` is feature-complete and currently in maintenance mode. New major features are not actively planned. Bug fixes, compatibility updates, documentation improvements, and focused contributions are still welcome.\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"docs/demo/pitlane-demo.webm\"\u003e\n    \u003cimg src=\"docs/demo/pitlane-demo.gif\" alt=\"pitlane-mcp demo\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n## Why\n\nAI coding agents tend to over-read. `pitlane-mcp` gives them a smaller navigation surface and symbol-level reads so they can:\n\n- index code once\n- discover the right symbol or file\n- read the smallest useful unit\n- trace execution paths and change impact\n\nOn 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.\n\n## What It Does\n\n- 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\n- BM25 symbol search plus optional semantic search\n- Small default MCP surface for agents\n- Composite navigation tools for discovery, reading, path tracing, and impact analysis\n- Incremental re-indexing and disk-persisted indexes\n- Fully local operation with no required external service\n\n## Installation\n\nDownload a pre-built binary from [GitHub Releases](https://github.com/eresende/pitlane-mcp/releases/latest) for Linux, macOS, and Windows.\n\nOr install via Homebrew:\n\n```bash\nbrew tap eresende/pitlane-mcp\nbrew install pitlane-mcp\n```\n\nOr install via `cargo-binstall`:\n\n```bash\ncargo binstall pitlane-mcp\n```\n\nOr install from crates.io:\n\n```bash\ncargo install pitlane-mcp\n```\n\nOr build from source:\n\n```bash\ncargo build --release\ncp target/release/pitlane-mcp ~/.local/bin/\ncp target/release/pitlane ~/.local/bin/\n```\n\n## Quickstart\n\n### Claude Code\n\n```bash\nclaude mcp add pitlane-mcp -- pitlane-mcp\n```\n\n### OpenCode\n\nAdd to `opencode.json` or `opencode.jsonc`:\n\n```json\n{\n  \"mcp\": {\n    \"pitlane-mcp\": {\n      \"type\": \"local\",\n      \"command\": [\"pitlane-mcp\"]\n    }\n  }\n}\n```\n\n### VS Code\n\nAdd to `.vscode/mcp.json`:\n\nOptional semantic-search variables go under `env`.\n\n```json\n{\n  \"mcp\": {\n    \"servers\": {\n      \"pitlane-mcp\": {\n        \"type\": \"stdio\",\n        \"command\": \"pitlane-mcp\",\n        \"args\": [],\n        \"env\": {}\n      }\n    }\n  }\n}\n```\n\n### Cursor / Kiro IDE\n\nAdd to `.cursor/mcp.json` or `.kiro/settings/mcp.json`:\n\nOptional semantic-search variables go under `env`.\n\n```json\n{\n  \"mcpServers\": {\n    \"pitlane-mcp\": {\n      \"type\": \"stdio\",\n      \"command\": \"pitlane-mcp\",\n      \"args\": [],\n      \"env\": {}\n    }\n  }\n}\n```\n\n## Default Workflow\n\nMost users should stay on the default tool tier:\n\n1. Call `ensure_project_ready` once at startup. It ensures the index exists and reports whether embeddings are still running, but it does not block on embeddings.\n2. Use `investigate` first for broad code questions such as subsystem, behavior, and execution-path questions.\n3. Use `locate_code` when you need discovery without full source.\n4. Use `read_code_unit` once you know the target.\n5. Use `trace_path` for explicit source-to-sink or config-to-effect questions.\n6. Use `analyze_impact` before edits or refactors.\n7. Use `search_content` only when you know a text fragment but not the owning symbol.\n\nDefault public tier:\n\n- `ensure_project_ready`\n- `investigate`\n- `locate_code`\n- `read_code_unit`\n- `trace_path`\n- `analyze_impact`\n- `get_index_stats`\n- `search_content`\n\nAdvanced primitives are hidden from `tools/list` by default. Set `PITLANE_MCP_TOOL_TIER=all` to expose the full surface.\n\n## Documentation\n\n- [Docs Index](docs/README.md)\n- [Tool Reference](docs/tools.md)\n- [Agent Guidance](docs/agent-guidance.md)\n- [Languages and Symbol Kinds](docs/languages.md)\n- [Benchmarks](docs/benchmarks.md)\n- [Security](docs/security.md)\n- [Semantic Search](SEMANTIC_SEARCH.md)\n- [Benchmark Harness](bench/harness/README.md)\n\n## CLI\n\nThe `pitlane` binary exposes the same code intelligence outside MCP.\n\nExamples:\n\n```bash\npitlane index /your/project\npitlane investigate /your/project \"How does ignore handling work?\"\npitlane search /your/project authenticate --kind method\npitlane symbol /your/project src/auth.rs::Auth::login[method]\npitlane usages /your/project src/auth.rs::Auth::login[method]\n```\n\nAll commands output JSON to stdout. Logs go to stderr and are controlled with `RUST_LOG`.\n\n## Supported Languages\n\n`pitlane-mcp` supports Rust, Python, JavaScript, TypeScript, Svelte, C, C++, Go, Java, C#, Bash, Ruby, Swift, Objective-C, PHP, Zig, Lua, Kotlin, and Solidity.\n\nFor the full extension matrix and symbol-kind coverage, see [Languages and Symbol Kinds](docs/languages.md).\n\n## Notes\n\n- `pitlane-mcp` is feature-complete and maintained as an OSS navigation tool.\n- Benchmark numbers in this repo are release-specific snapshots, not guarantees for every agent harness or model.\n\n## License\n\nLicensed under either of [MIT License](LICENSE-MIT) or [Apache License, Version 2.0](LICENSE-APACHE), at your option.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feresende%2Fpitlane-mcp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Feresende%2Fpitlane-mcp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feresende%2Fpitlane-mcp/lists"}