Sélectionne le minimum de code nécessaire à un LLM pour réviser un git diff en identifiant les appelants, les tests et les contrats affectés par un changement.
Aussi connu sous nikolay-e/diffctx
- Étoiles
- 6
- Outils
- —
- Téléchargements, 30 jours
- 3 869
- Dernière version
- 1.20.0
- Dernier commit
- 14 nov. 2026
- Licence
- Apache-2.0
Qu'est-ce que diffctx MCP ?
diffctx est un serveur MCP. Sélectionne le minimum de code nécessaire à un LLM pour réviser un git diff en identifiant les appelants, les tests et les contrats affectés par un changement.
Résumé généré à partir du README du projet
À propos du MCP server diffctx
diffctx aide les développeurs et les agents IA à comprendre l'impact global des modifications de code en identifiant le contexte pertinent en dehors d'un git diff. Au lieu de fournir un dépôt entier, il sélectionne les appelants, les tests et les contrats spécifiques affectés par une modification. Cet outil est conçu pour respecter un budget de tokens précis, ce qui est utile pour les révisions de code basées sur des LLM lorsque les limites de la fenêtre de contexte sont une préoccupation.
Le serveur s'exécute localement et fonctionne de manière déterministe sans nécessiter d'index maintenu ni d'appels de modèle externes. Il peut être intégré dans divers clients MCP comme Claude Desktop, Cursor ou Zed. Les utilisateurs peuvent spécifier une plage git, des changements indexés (staged) ou même une durée telle que 24h pour définir la portée de l'analyse. Il prend en charge différents modes comme l'analyse d'impact ou la localisation de changements, et permet aux utilisateurs de définir un budget de tokens personnalisé via le flag --budget.
Ce que vous pouvez faire avec
- 1Analyser l'impact d'un changement de codeIdentifier les appelants et les tests affectés par un git diff spécifique pour comprendre la portée d'une modification.
- 2Optimiser le contexte de révision pour un LLMFournir à un agent IA le minimum de code nécessaire pour réviser une branche tout en respectant une limite de tokens.
- 3Localiser les travaux récentsRécupérer une liste JSON classée des changements de code effectués dans une fenêtre de temps spécifique.
- 4Réviser des symboles spécifiquesTrouver l'impact et le contexte environnant d'une fonction ou d'un nom spécifique sans nécessiter de changement de code.
Extrait du README du projet. Chaque cas d'utilisation est vérifié par rapport à une citation du document.
Comment installer diffctx MCP
Formats vérifiés le 10 nov. 2026Ajouter à CursorAjouter à GooseInstaller diffctx MCP dans Claude Code
$ claude mcp add diffctx -- uvx diffctxInstaller diffctx MCP dans Cursor
~/.cursor/mcp.json
{
"mcpServers": {
"diffctx": {
"command": "uvx",
"args": [
"diffctx"
]
}
}
}Installer diffctx MCP dans VS Code
.vscode/mcp.json
{
"servers": {
"diffctx": {
"type": "stdio",
"command": "uvx",
"args": [
"diffctx"
]
}
}
}Installer diffctx MCP dans VS Code CLI
$ code --add-mcp '{"name":"diffctx","type":"stdio","command":"uvx","args":["diffctx"]}'Installer diffctx MCP dans Claude Desktop
claude_desktop_config.json
{
"mcpServers": {
"diffctx": {
"command": "uvx",
"args": [
"diffctx"
]
}
}
}Installer diffctx MCP dans Codex
$ codex mcp add diffctx -- uvx diffctxInstaller diffctx MCP dans Codex config.toml
~/.codex/config.toml
[mcp_servers.diffctx] command = "uvx" args = ["diffctx"]
Installer diffctx MCP dans Gemini CLI
$ gemini mcp add -s user diffctx uvx -- diffctxInstaller diffctx MCP dans Gemini settings.json
~/.gemini/settings.json
{
"mcpServers": {
"diffctx": {
"command": "uvx",
"args": [
"diffctx"
]
}
}
}Vérifications automatisées
Exécuté le 14 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 accessiblenikolay-e/diffctx is public and reachablegithub.com/nikolay-e/diffctx ↗Réussi
- Le nom du package correspond au dépôt sourcediffctx names nikolay-e/diffctx as sourcepypi.org/project/diffctx/ ↗Réussi
- Provenance du build (attestation Sigstore)Sigstore attestation for diffctxpypi.org/project/diffctx/ ↗Réussi
- Licence open source (OSI)Apache-2.0spdx.org/licenses/Apache-2.0.html ↗Réussi
- Commit ou version publiée au cours de l'année écouléeLast commit or release 2026-11-12github.com/nikolay-e/diffctx ↗Réussi
- OpenSSF ScorecardNon vérifié
- Nom du package non proche d'un package populaireNo popular package one edit away from diffctxRéussi
- Aucun avis critique dans le package ou ses dépendances2 resolved dependencies checked; no critical advisoryosv.dev ↗Réussi
- Aucune instruction cachée destinée au modèle0 tool descriptions and the README read; no override phrases, credential paths or hidden charactersRéussi
- Les outils destructifs sont étiquetésNon vérifié
- Le point de terminaison distant répond à la poignée de main MCPNon vérifié
README
Voir sur GitHubdiffctx — what a git change reaches, and the code to review it
diffctx tells an agent or a reviewer what a change reaches outside its diff — the callers, the tests that reach them, the contracts it crosses — and selects the code needed to understand it under a token budget. Local, deterministic, no index, no model calls. Caller resolution is static and per language; where it cannot resolve, the answer says so instead of printing a zero.
Formerly published as
treemapper— every command, flag, and API call works unchanged.
Install
diffctx is a command-line tool; the MCP server, the Claude Code plugin and the GitHub Action run the same engine.
CLI
uvx diffctx . --diff HEAD~1 # zero-install, run once via uv
pipx install diffctx # isolated CLI
pip install diffctx # into an active environment
cargo install diffctx # native binary from crates.io, no Python
npx diffctx . --diff HEAD~1 # npm wrapper over the native binary
docker run --rm -v "$PWD:/repo" ghcr.io/nikolay-e/diffctx . --diff HEAD~1
scoop bucket add diffctx https://github.com/nikolay-e/diffctx # Windows
scoop install diffctx/diffctx
The native binary — cargo, npm, Docker, Scoop and the
release archives for
Linux, macOS and Windows on x64 and ARM — answers --diff and --symbol in
every mode; whole-tree export, Markdown packs, diffctx graph and the MCP
server need the Python package.
Any MCP client
Registered as io.github.nikolay-e/diffctx.
claude mcp add diffctx -- uvx --from 'diffctx[mcp]' diffctx-mcp
codex mcp add diffctx -- uvx --from 'diffctx[mcp]' diffctx-mcp
gemini mcp add diffctx uvx -- --from 'diffctx[mcp]' diffctx-mcp
Cursor, VS Code, Claude Desktop, Windsurf, Zed, Continue and the Python API: integrations.
Claude Code plugin
The MCP server plus /diffctx:impact and hooks that run it on each commit and
push.
claude plugin marketplace add nikolay-e/diffctx
claude plugin install diffctx@diffctx
CI
The GitHub Action hands a pull request's diff context to any review step.
Usage
diffctx . --diff --mode impact # uncommitted work: callers outside the diff, their tests, contracts
diffctx . --symbol parse_config # the same for a name, no change needed
diffctx . --diff main...feature # the code to review a branch, packed under the auto budget
diffctx . --diff HEAD~1 --budget 12000 # the last commit, capped at 12k o200k tokens
diffctx . --diff 24h --mode locate # today's work as ranked JSON, no source bodies
diffctx . # whole-tree export, Markdown
--diff takes a git range, staged, or a duration window ending now (24h,
90min, 2w). Every flag, default and exit code:
command-line reference.

How it compares
Whole-repo packers export everything; code-graph servers answer queries against a maintained index. diffctx is diff-seeded: the input is a change, the output is what it touches and what explains it. Measured results, and when the other two fit better: COMPARISON.md.
More
- Documentation site — the pipeline end to end
- Command-line reference — rendered from
diffctx --help - Integrations — install, MCP clients, Python API
- FAQ — heuristic or oracle, ignore rules, monorepos, secrets
- Token counting —
--budgetfor non-GPT models - Benchmarks and the paper
- Changelog · Security
- Parameter strategy
Apache 2.0
Questions sur diffctx MCP
Comment ajouter diffctx MCP à Claude Code ?
Exécutez claude mcp add diffctx -- uvx diffctx dans votre terminal. Ajoutez --scope user pour le rendre disponible dans tous les projets.
Comment ajouter diffctx 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.
En quoi diffctx diffère-t-il des packers de dépôt complet ou des serveurs de graphe de code ?
Contrairement aux packers de dépôt complet qui exportent tout ou aux serveurs de graphe de code qui utilisent un index maintenu, diffctx est basé sur le diff, ce qui signifie que l'entrée est un changement spécifique et la sortie est ce que ce changement impacte.
diffctx nécessite-t-il un index ou des appels de modèle pour fonctionner ?
Non, il fonctionne localement et de manière déterministe sans nécessiter d'index ni effectuer d'appels de modèle.
Puis-je limiter la quantité de code envoyée au LLM ?
Oui, vous pouvez utiliser le flag --budget pour plafonner la sortie à un nombre spécifique de tokens.