Selecciona el código mínimo que un LLM necesita para revisar un git diff identificando los callers, tests y contratos afectados por un cambio.
También conocido como nikolay-e/diffctx
- Stars
- 6
- Herramientas
- —
- Descargas, 30 días
- 3869
- Última versión
- 1.20.0
- Último commit
- 12 nov 2026
- Licencia
- Apache-2.0
¿Qué es diffctx MCP?
diffctx es un MCP server. Selecciona el código mínimo que un LLM necesita para revisar un git diff identificando los callers, tests y contratos afectados por un cambio.
Resumen generado a partir del README del proyecto
Acerca del MCP server de diffctx
diffctx ayuda a desarrolladores y agentes de IA a comprender el impacto más amplio de los cambios de código identificando el contexto relevante fuera de un git diff. En lugar de proporcionar un repositorio completo, selecciona callers, tests y contratos específicos afectados por una modificación. Esta herramienta está diseñada para mantenerse dentro de un presupuesto de tokens específico, lo que la hace útil para revisiones de código basadas en LLM donde los límites de la ventana de contexto son un problema.
El servidor se ejecuta localmente y opera de forma determinista sin requerir un índice mantenido ni llamadas a modelos externos. Puede integrarse en varios clientes MCP como Claude Desktop, Cursor o Zed. Los usuarios pueden especificar un rango de git, cambios en el stage o incluso un periodo de tiempo como 24h para definir el alcance del análisis. Soporta diferentes modos, como análisis de impacto o localización de cambios, y permite establecer un presupuesto de tokens personalizado mediante el flag --budget.
Qué puedes hacer con él
- 1Analizar el impacto de un cambio de códigoIdentifica los callers y tests que se ven afectados por un git diff específico para entender el alcance de un cambio.
- 2Optimizar el contexto de revisión de un LLMProporciona a un agente de IA el código mínimo necesario para revisar una rama manteniéndose por debajo de un límite de tokens.
- 3Localizar trabajo recienteObtén una lista JSON clasificada de los cambios de código realizados dentro de un intervalo de tiempo específico.
- 4Revisar símbolos específicosEncuentra el impacto y el contexto circundante de una función o nombre específico sin necesidad de realizar un cambio de código.
Escrito a partir del README del proyecto. Cada caso de uso se verifica con una cita del mismo.
Cómo instalar diffctx MCP
Formatos verificados el 10 nov 2026Instalar diffctx MCP en Claude Code
$ claude mcp add diffctx -- uvx diffctxInstalar diffctx MCP en Cursor
~/.cursor/mcp.json
{
"mcpServers": {
"diffctx": {
"command": "uvx",
"args": [
"diffctx"
]
}
}
}Instalar diffctx MCP en VS Code
.vscode/mcp.json
{
"servers": {
"diffctx": {
"type": "stdio",
"command": "uvx",
"args": [
"diffctx"
]
}
}
}Instalar diffctx MCP en Claude Desktop
claude_desktop_config.json
{
"mcpServers": {
"diffctx": {
"command": "uvx",
"args": [
"diffctx"
]
}
}
}Instalar diffctx MCP en Codex
~/.codex/config.toml
[mcp_servers.diffctx] command = "uvx" args = ["diffctx"]
Instalar diffctx MCP en Gemini CLI
~/.gemini/settings.json
{
"mcpServers": {
"diffctx": {
"command": "uvx",
"args": [
"diffctx"
]
}
}
}Verificaciones automáticas
Ejecutado 14 nov 2026Informe completo →Pasó nuestras verificaciones automáticas. Esto no es una auditoría de seguridad: lee el código y dale al servidor el acceso más limitado que necesite. Cómo funcionan las verificaciones
- Repositorio de origen vinculado y accesiblenikolay-e/diffctx is public and reachablegithub.com/nikolay-e/diffctx ↗Aprobado
- El paquete cita este repositorio como fuentediffctx names nikolay-e/diffctx as sourcepypi.org/project/diffctx/ ↗Aprobado
- Procedencia de la compilación (atestación Sigstore)Sigstore attestation for diffctxpypi.org/project/diffctx/ ↗Aprobado
- Licencia de código abierto (OSI)Apache-2.0spdx.org/licenses/Apache-2.0.html ↗Aprobado
- Commit o lanzamiento en el último añoLast commit or release 2026-11-12github.com/nikolay-e/diffctx ↗Aprobado
- OpenSSF ScorecardNo verificado
- El nombre del paquete no es similar a un paquete popularNo popular package one edit away from diffctxAprobado
- Sin avisos críticos en el paquete ni en sus dependencias2 resolved dependencies checked; no critical advisoryosv.dev ↗Aprobado
- Sin instrucciones ocultas para el modelo0 tool descriptions and the README read; no override phrases, credential paths or hidden charactersAprobado
- Las herramientas destructivas están etiquetadasNo verificado
- El endpoint remoto responde al handshake MCPNo verificado
README
Ver en 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
Preguntas sobre diffctx MCP
¿Cómo agrego diffctx MCP a Claude Code?
Ejecuta claude mcp add diffctx -- uvx diffctx en tu terminal. Añade --scope user para que esté disponible en todos los proyectos.
¿Cómo agrego diffctx MCP a Cursor?
Abre ~/.cursor/mcp.json y añade el servidor en mcpServers, usando la configuración de Cursor que se muestra en la sección de instalación de arriba.
¿En qué se diferencia diffctx de los packers de todo el repositorio o de los servidores de code-graph?
A diferencia de los packers de todo el repositorio que exportan todo, o de los servidores de code-graph que usan un índice mantenido, diffctx se basa en el diff; esto significa que la entrada es un cambio específico y la salida es lo que ese cambio afecta.
¿Requiere diffctx un índice o llamadas a modelos para funcionar?
No, funciona localmente y de forma determinista sin necesidad de un índice ni de realizar llamadas a modelos.
¿Puedo limitar la cantidad de código que se envía al LLM?
Sí, puedes usar el flag --budget para limitar la salida a un recuento específico de tokens.