Seleciona o código mínimo que um LLM precisa para revisar um git diff, identificando chamadores, testes e contratos afetados por uma alteração.
Também conhecido como nikolay-e/diffctx
- Stars
- 6
- Ferramentas
- —
- Downloads, 30 dias
- 3.869
- Versão mais recente
- 1.20.0
- Último commit
- 14 de nov. de 2026
- Licença
- Apache-2.0
O que é o MCP diffctx?
diffctx é um MCP server. Seleciona o código mínimo que um LLM precisa para revisar um git diff, identificando chamadores, testes e contratos afetados por uma alteração.
Resumo gerado a partir do README do projeto
Sobre o MCP server de diffctx
O diffctx ajuda desenvolvedores e agentes de IA a entender o impacto amplo de mudanças no código, identificando o contexto relevante fora de um git diff. Em vez de fornecer um repositório inteiro, ele seleciona chamadores, testes e contratos específicos afetados por uma modificação. Esta ferramenta foi projetada para permanecer dentro de um orçamento de tokens específico, sendo útil para revisões de código baseadas em LLM onde os limites da janela de contexto são uma preocupação.
O servidor roda localmente e opera de forma determinística sem exigir um índice mantido ou chamadas de modelos externos. Ele pode ser integrado a vários clientes MCP como Claude Desktop, Cursor ou Zed. Os usuários podem especificar um intervalo de git, mudanças em stage ou até mesmo um período de tempo, como 24h, para definir o escopo da análise. Ele suporta diferentes modos, como análise de impacto ou localização de mudanças, e permite que os usuários definam um orçamento de tokens personalizado usando a flag --budget.
O que você pode fazer com ele
- 1Analisar o impacto de mudanças no códigoIdentificar os chamadores e testes que são afetados por um git diff específico para entender o escopo de uma alteração.
- 2Otimizar o contexto de revisão do LLMFornecer a um agente de IA o código mínimo necessário para revisar um branch, mantendo-se abaixo de um limite de tokens.
- 3Localizar trabalhos recentesRecuperar uma lista JSON ranqueada de mudanças de código feitas dentro de um intervalo de tempo específico.
- 4Revisar símbolos específicosEncontrar o impacto e o contexto ao redor de uma função ou nome específico sem a necessidade de uma mudança no código.
Escrito a partir do README do projeto. Cada caso de uso é verificado com uma citação dele.
Como instalar o MCP diffctx
Formatos verificados em 10 nov 2026Instalar o MCP diffctx no Claude Code
$ claude mcp add diffctx -- uvx diffctxInstalar o MCP diffctx no Cursor
~/.cursor/mcp.json
{
"mcpServers": {
"diffctx": {
"command": "uvx",
"args": [
"diffctx"
]
}
}
}Instalar o MCP diffctx no VS Code
.vscode/mcp.json
{
"servers": {
"diffctx": {
"type": "stdio",
"command": "uvx",
"args": [
"diffctx"
]
}
}
}Instalar o MCP diffctx no Claude Desktop
claude_desktop_config.json
{
"mcpServers": {
"diffctx": {
"command": "uvx",
"args": [
"diffctx"
]
}
}
}Instalar o MCP diffctx no Codex
~/.codex/config.toml
[mcp_servers.diffctx] command = "uvx" args = ["diffctx"]
Instalar o MCP diffctx no Gemini CLI
~/.gemini/settings.json
{
"mcpServers": {
"diffctx": {
"command": "uvx",
"args": [
"diffctx"
]
}
}
}Verificações automatizadas
Executado em 14 de nov. de 2026Relatório completo →Passou em nossas verificações automatizadas. Isso não é uma auditoria de segurança: leia o código e dê ao servidor o acesso mais restrito de que ele precisa. Como as verificações funcionam
- Repositório de origem vinculado e acessívelnikolay-e/diffctx is public and reachablegithub.com/nikolay-e/diffctx ↗Passou
- O pacote cita este repositório como fontediffctx names nikolay-e/diffctx as sourcepypi.org/project/diffctx/ ↗Passou
- Proveniência da build (atestação Sigstore)Sigstore attestation for diffctxpypi.org/project/diffctx/ ↗Passou
- Licença de código aberto (OSI)Apache-2.0spdx.org/licenses/Apache-2.0.html ↗Passou
- Commit ou release no último anoLast commit or release 2026-11-12github.com/nikolay-e/diffctx ↗Passou
- OpenSSF ScorecardNão verificado
- Nome do pacote não é próximo a um pacote popularNo popular package one edit away from diffctxPassou
- Nenhum alerta crítico no pacote ou nas dependências2 resolved dependencies checked; no critical advisoryosv.dev ↗Passou
- Sem instruções ocultas para o modelo0 tool descriptions and the README read; no override phrases, credential paths or hidden charactersPassou
- Ferramentas destrutivas estão rotuladasNão verificado
- O endpoint remoto responde ao handshake MCPNão verificado
README
Ver no 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
Perguntas sobre o MCP diffctx
Como adiciono o MCP diffctx ao Claude Code?
Execute claude mcp add diffctx -- uvx diffctx no seu terminal. Adicione --scope user para torná-lo disponível em todos os projetos.
Como adiciono o MCP diffctx ao Cursor?
Abra ~/.cursor/mcp.json e adicione o servidor em mcpServers, usando a configuração do Cursor mostrada na seção de instalação acima.
Como o diffctx se diferencia de packers de repositório completo ou servidores de code-graph?
Diferente de packers de repositório completo que exportam tudo ou servidores de code-graph que utilizam um índice mantido, o diffctx é baseado em diff, o que significa que a entrada é uma alteração específica e a saída é o que essa alteração toca.
O diffctx requer um índice ou chamadas de modelo para funcionar?
Não, ele opera localmente e de forma determinística sem exigir um índice ou realizar chamadas de modelo.
Posso limitar a quantidade de código enviada para o LLM?
Sim, você pode usar a flag --budget para limitar a saída a uma contagem específica de tokens.