Cartographie votre base de code sous la forme d'un graphe de symboles compact pour aider les agents de codage IA à naviguer dans les dépôts sans avoir à relire chaque fichier.
Aussi connu sous glincker/stacklit
- Étoiles
- 131
- Outils
- —
- Téléchargements, 30 jours
- —
- Dernière version
- —
- Dernier commit
- 9 nov. 2026
- Licence
- MIT
Qu'est-ce que stacklit MCP ?
stacklit est un serveur MCP. Cartographie votre base de code sous la forme d'un graphe de symboles compact pour aider les agents de codage IA à naviguer dans les dépôts sans avoir à relire chaque fichier.
Résumé généré à partir du README du projet
À propos du MCP server stacklit
Stacklit offre un moyen de cartographier des bases de code sous forme de graphes de symboles compacts, permettant aux agents de codage IA de naviguer dans de grands dépôts sans lire chaque fichier. En analysant le code avec tree-sitter, il génère un fichier stacklit.json contenant les modules, les exports et les arêtes de dépendance. Cette approche réduit la consommation de tokens des LLM, comme le montre un dépôt Go de 19 500 lignes ne nécessitant que 137 tokens pour une carte.
Les développeurs peuvent l'exécuter localement en tant que binaire Go ou via npm et brew. Il fonctionne sans LLM et n'effectue aucun appel réseau, garantissant ainsi la confidentialité et le déterminisme. L'outil inclut un CLI avec des commandes telles que query, slice et impact pour aider les agents à trouver des emplacements de code spécifiques. Pour ceux qui utilisent MCP, la commande stacklit serve fournit 15 outils pour une intégration directe avec les assistants IA.
Il prend en charge 48 langages et formats, avec un graphe de symboles et des arêtes d'appel disponibles pour 20 langages spécifiques, dont Python, Rust et TypeScript. Le système est conçu pour être intégré au contrôle de version afin que l'index reste à jour en même temps que le code.
Ce que vous pouvez faire avec
- 1Réduire la consommation de tokens LLMUn agent IA peut utiliser une carte compacte au lieu de parcourir des fichiers entiers pour comprendre un dépôt.
- 2Naviguer dans des structures de dépendances complexesUn développeur peut demander à une IA de trouver des définitions de fonctions spécifiques ou des chemins de code en utilisant le graphe de symboles.
Extrait du README du projet. Chaque cas d'utilisation est vérifié par rapport à une citation du document.
Comment installer stacklit MCP
Formats vérifiés le 10 nov. 2026Ajouter à CursorAjouter à GooseInstaller stacklit MCP dans Claude Code
$ claude mcp add stacklit -- npx -y stacklitInstaller stacklit MCP dans Cursor
~/.cursor/mcp.json
{
"mcpServers": {
"stacklit": {
"command": "npx",
"args": [
"-y",
"stacklit"
]
}
}
}Installer stacklit MCP dans VS Code
.vscode/mcp.json
{
"servers": {
"stacklit": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"stacklit"
]
}
}
}Installer stacklit MCP dans VS Code CLI
$ code --add-mcp '{"name":"stacklit","type":"stdio","command":"npx","args":["-y","stacklit"]}'Installer stacklit MCP dans Claude Desktop
claude_desktop_config.json
{
"mcpServers": {
"stacklit": {
"command": "npx",
"args": [
"-y",
"stacklit"
]
}
}
}Installer stacklit MCP dans Codex
$ codex mcp add stacklit -- npx -y stacklitInstaller stacklit MCP dans Codex config.toml
~/.codex/config.toml
[mcp_servers.stacklit] command = "npx" args = ["-y", "stacklit"]
Installer stacklit MCP dans Gemini CLI
$ gemini mcp add -s user stacklit npx -- -y stacklitInstaller stacklit MCP dans Gemini settings.json
~/.gemini/settings.json
{
"mcpServers": {
"stacklit": {
"command": "npx",
"args": [
"-y",
"stacklit"
]
}
}
}Vérifications automatisées
Exécuté le 12 nov. 2026Rapport complet →A passé nos vérifications automatisées. Il ne s'agit pas d'un audit de sécurité : lisez le code et donnez au serveur l'accès le plus restreint dont il a besoin. Fonctionnement des vérifications
- Dépôt source lié et accessibleRéussi
- Licence open source (OSI)Réussi
- Commit ou version publiée au cours de l'année écouléeRéussi
- Nom du package non proche d'un package populaireRéussi
- L'endpoint distant utilise HTTPSNon vérifié
- Les outils destructifs sont étiquetésNon vérifié
- Aucune instruction cachée destinée au modèleRéussi
- Aucun avis critique dans le package ou ses dépendancesNon vérifié
README
Voir sur GitHubStacklit maps your codebase once and keeps the map fresh. It parses your repo with tree-sitter and writes stacklit.json: modules, exports, dependency edges and hints. Commit it, and your coding agent reads a few hundred tokens instead of crawling your files, then uses a few commands (query, slice, impact) to go straight to the right file.
Free and MIT, no paid tier. One Go binary, local and deterministic, no LLM, and the CLI makes no network calls. (The map page can load language icons from thesvg.org; STACKLIT_MAP_ICONS=off removes that.)
Install
npx stacklit init # scan, write the index, open the map
stacklit setup # wire up the assistants it detects
git add stacklit.json && git commit -m "add stacklit index"
Also: brew install glincker/tap/stacklit, npm install -g stacklit, go install github.com/glincker/stacklit/cmd/stacklit@latest, or a binary from Releases.
See it
Output
stacklit derive prints a compact map for a prompt (gin v1.10.0, 137 tokens, module list trimmed here):
gin | go | 8 modules | 19,537 lines | Gin, GitHub Actions, net/http
test: go test ./... | env: PORT
modules:
binding binding | depends: bytesconv, json
internal/bytesconv bytesconv | depended-by: binding, render, root
render render | depends: bytesconv, json
root root package | depends: binding, bytesconv, json, render
do-not-touch: .github/
stacklit query returns a token-budgeted slice of the symbol graph (output trimmed here):
$ stacklit query "how is the symbol graph built" --budget 600
internal/cli/graphcmds.go
50-63 func buildSymbolGraph(root string, includeTests ...bool) (*graph.SymGraph, error)
calls BuildSymbols E0.95
internal/graph/resolve.go
955-961 func BuildSymbols(root string, files []string, eo ExtractOptions) *SymGraph
What you get
| Index | stacklit.json, a Mermaid diagram (DEPENDENCIES.md by default, set with output.mermaid) and an interactive stacklit.html map |
| Languages | 48 languages and formats indexed; symbol graph for 20 (list) |
| Queries | query, explain, impact, path, hubs, slice, each with a hard --budget |
| MCP | stacklit serve: 15 tools, or --profile minimal for 4 (about 230 tokens of schema) |
| Hooks | git post-commit refresh; optional Claude Code hook that points a grepped identifier to its definition |
| CI | export (graphml, cypher, dot, mermaid and more), check architecture rules, status freshness, merge-graphs, a GitHub Action |
| Deterministic | same repo, same bytes. A committed index only changes when the code does |
| Privacy | no telemetry, no upload. The map loads language logos from thesvg.org unless STACKLIT_MAP_ICONS=off (details) |
Assistants
stacklit setup sets up 25 assistants, including Aider, Cline, Continue, OpenCode, Roo Code and Kiro, plus a generic AGENTS.md (stacklit setup --list shows all 26 targets). Anything else can read stacklit.json directly.
Languages
Stacklit indexes 48 languages and formats (full table). Symbol graph and call edges (query, slice, impact) cover 20 of them.
Symbol graph and call edges (20)
Index only (modules, exports and imports, no call edges)
Anything else gets line counts and language detection.
Benchmark
Two tests, with different answers. The first, with no model in the loop: six pinned repos in six languages, 58 tasks, tokens as bytes / 4. The derived map is 137 to 1,351 tokens. On 47 where-is-X questions one stacklit query with a 1,000 token budget put the right file first on 81% (95% interval 70 to 91) and in the top five on 96%. Grep with a hand written pattern did better, 89% first and 100% in the top five. The 81% was tuned after looking at failures, so treat it as an upper bound. Method and limits: bench/RESULTS.md.
The second is a real agent test, run twice. Round 1: 450 Claude Code sessions (Sonnet, 30 questions, three public repos, plan written before the first run). Stacklit changed how the agent works but did not lower cost overall: pooled cost ratio 1.00 [0.93, 1.07], tokens 1.01 [0.92, 1.10]. It used about a third fewer tool calls (0.68 [0.61, 0.77]), a quarter fewer turns (0.77) and over four fifths fewer grep and glob calls (0.18). Answers were right slightly less often (94.0% to 88.0% on the pre-registered grader, 98.0% to 95.3% audited). Cost ratio by repo (below 1 is cheaper, 50 paired sessions each; full tables, method, limits and the claims we do not make are in bench/agent-ab/RESULTS.md):
| Repo | Size | Cost ratio [95% CI] |
|---|---|---|
| levelrail | about 16,000 files | 0.78 [0.70, 0.86] |
| theauth-go | about 1,300 files | 1.10 [0.98, 1.25] |
| featuredrop | about 400 files | 1.23 [1.14, 1.33] |
Round 2 (650 more sessions, 40 new questions, four repos, bench/agent-ab/RESULTS-round2.md) pointed the same way. The 16,000 file repo was cheaper again (0.89 [0.84, 0.96] with the default wording, 0.87 [0.81, 0.93] with the routed wording). The smaller repos cost more: theauth-go 1.10 and 1.05, featuredrop 1.37 and 1.21, theauth (about 2,900 files) 1.61 and 1.42. Pooled over all four repos a session cost more, not less: 1.17 [1.11, 1.24] and 1.09 [1.04, 1.14]. Tool calls were 0.76 of the no Stacklit count and Grep and Glob calls 0.22 and 0.53. Right answers were equal (97.5%, 97.0%, 97.5%). The model had partly memorised featuredrop, which favours the side without Stacklit. So today Stacklit is for very large repos and "where is it" questions, not for small repos.
When it helps. Locate and add-feature questions ("where is it", "where does a new thing go") were 12 to 22 percent cheaper, mostly on the large repo. Trace questions cost the same and were right less often. "Who imports X" cost 1.59x [1.47, 1.72] because one exact grep already answers it. Small repos cost more, since the map is overhead there. The strict setup (crawl guard plus strict rules) measured worse and is off by default.
Docs
Usage | Languages | FAQ | Privacy | Architecture | Comparison | Roadmap | Changelog | Agent skill | Brand kit
Contributing: .github/CONTRIBUTING.md. Security reports: .github/SECURITY.md. Questions: Discussions.
MIT. See LICENSE.
Questions sur stacklit MCP
Comment ajouter stacklit MCP à Claude Code ?
Exécutez claude mcp add stacklit -- npx -y stacklit dans votre terminal. Ajoutez --scope user pour le rendre disponible dans tous les projets.
Comment ajouter stacklit MCP à Cursor ?
Ouvrez ~/.cursor/mcp.json et ajoutez le serveur sous mcpServers, avec la configuration Cursor indiquée dans la section d'installation ci-dessus.
Comment Stacklit aide-t-il les agents IA ?
Il crée une carte compacte de votre dépôt afin que les agents puissent utiliser des commandes comme query, slice et impact pour trouver des fichiers au lieu de parcourir l'intégralité de la base de code.
Stacklit nécessite-t-il une connexion Internet ou un LLM ?
Non, c'est un outil local et déterministe qui n'utilise aucun LLM et dont le CLI n'effectue aucun appel réseau.
Quels langages Stacklit prend-il en charge ?
Il indexe 48 langages et formats, avec un graphe de symboles et des arêtes d'appel disponibles pour 20 d'entre eux.
Stacklit est-il gratuit ?
Oui, il est gratuit, sous licence MIT, et ne propose pas d'offre payante.