Git
Ferramentas para ler, pesquisar e manipular repositórios Git
Documentação
mcp-server-git: Um servidor MCP para Git
Visão Geral
Um servidor Model Context Protocol para interação e automação de repositórios Git. Este servidor fornece ferramentas para ler, pesquisar e manipular repositórios Git por meio de Modelos de Linguagem de Grande Porte.
Fonte: https://github.com/modelcontextprotocol/servers/tree/main/src/git
Requer MCP Python SDK 1.x (mcp>=1.29.0,<2). O SDK 2.0 renomeou APIs que este servidor utiliza. A migração para a v2 está em andamento.
Observe que o mcp-server-git está atualmente em desenvolvimento inicial. A funcionalidade e as ferramentas disponíveis estão sujeitas a alterações e expansões à medida que continuamos a desenvolver e melhorar o servidor.
Ferramentas
-
git_status- Mostra o status da árvore de trabalho
- Entrada:
repo_path(string): Caminho para o repositório Git
- Retorna: Status atual do diretório de trabalho como saída de texto
-
git_diff_unstaged- Mostra alterações no diretório de trabalho ainda não preparadas (staged)
- Entradas:
repo_path(string): Caminho para o repositório Gitcontext_lines(number, opcional): Número de linhas de contexto para exibir (padrão: 3)
- Retorna: Saída de diff das alterações não preparadas
-
git_diff_staged- Mostra alterações que estão preparadas (staged) para commit
- Entradas:
repo_path(string): Caminho para o repositório Gitcontext_lines(number, opcional): Número de linhas de contexto para exibir (padrão: 3)
- Retorna: Saída de diff das alterações preparadas
-
git_diff- Mostra diferenças entre branches ou commits
- Entradas:
repo_path(string): Caminho para o repositório Gittarget(string): Branch ou commit de destino para compararcontext_lines(number, opcional): Número de linhas de contexto para exibir (padrão: 3)
- Retorna: Saída de diff comparando o estado atual com o destino
-
git_commit- Registra alterações no repositório
- Entradas:
repo_path(string): Caminho para o repositório Gitmessage(string): Mensagem de commit
- Retorna: Confirmação com o novo hash do commit
-
git_add- Adiciona conteúdos de arquivos à área de staging
- Entradas:
repo_path(string): Caminho para o repositório Gitfiles(string[]): Matriz de caminhos de arquivos para preparar (stage)
- Retorna: Confirmação dos arquivos preparados
-
git_reset- Remove todas as alterações preparadas (unstaged)
- Entrada:
repo_path(string): Caminho para o repositório Git
- Retorna: Confirmação da operação de reset
-
git_log- Mostra os logs de commit com filtro de data opcional
- Entradas:
repo_path(string): Caminho para o repositório Gitmax_count(number, opcional): Número máximo de commits para exibir (padrão: 10)start_timestamp(string, opcional): Timestamp de início para filtrar commits. Aceita formato ISO 8601 (ex.: '2024-01-15T14:30:25'), datas relativas (ex.: '2 semanas atrás', 'ontem') ou datas absolutas (ex.: '2024-01-15', '15 de jan de 2024')end_timestamp(string, opcional): Timestamp de fim para filtrar commits. Aceita formato ISO 8601 (ex.: '2024-01-15T14:30:25'), datas relativas (ex.: '2 semanas atrás', 'ontem') ou datas absolutas (ex.: '2024-01-15', '15 de jan de 2024')
- Retorna: Matriz de entradas de commit com hash, autor, data e mensagem
-
git_create_branch- Cria um novo branch
- Entradas:
repo_path(string): Caminho para o repositório Gitbranch_name(string): Nome do novo branchbase_branch(string, opcional): Branch base para criar a partir (padrão: branch atual)
- Retorna: Confirmação da criação do branch
-
git_checkout
- Alterna entre branches
- Entradas:
repo_path(string): Caminho para o repositório Gitbranch_name(string): Nome do branch para checkout
- Retorna: Confirmação da troca de branch
git_show
- Mostra o conteúdo de um commit
- Entradas:
repo_path(string): Caminho para o repositório Gitrevision(string): A revisão (hash do commit, nome do branch, tag) para exibir
- Retorna: Conteúdo do commit especificado
git_branch
- Lista branches do Git
- Entradas:
repo_path(string): Caminho para o repositório Git.branch_type(string): Se deve listar branches locais ('local'), branches remotos ('remote') ou todos os branches ('all').contains(string, opcional): O sha do commit que o branch deve conter. Não passe nada para este parâmetro se nenhum sha de commit for especificadonot_contains(string, opcional): O sha do commit que o branch NÃO deve conter. Não passe nada para este parâmetro se nenhum sha de commit for especificado
- Retorna: Lista de branches
Instalação
Usando uv (recomendado)
Ao usar uv nenhuma instalação específica é necessária. Usaremos uvx para executar diretamente o mcp-server-git.
Usando PIP
Alternativamente, você pode instalar mcp-server-git via pip:
pip install mcp-server-git
Após a instalação, você pode executá-lo como um script usando:
python -m mcp_server_git
Configuração
Uso com Claude Desktop
Adicione isso ao seu claude_desktop_config.json:
Usando uvx
"mcpServers": {
"git": {
"command": "uvx",
"args": ["mcp-server-git", "--repository", "path/to/git/repo"]
}
}
Usando docker
- Nota: substitua '/Users/username' por um caminho que você deseja que seja acessível por esta ferramenta
"mcpServers": {
"git": {
"command": "docker",
"args": ["run", "--rm", "-i", "--mount", "type=bind,src=/Users/username,dst=/Users/username", "mcp/git"]
}
}
Usando instalação via pip
"mcpServers": {
"git": {
"command": "python",
"args": ["-m", "mcp_server_git", "--repository", "path/to/git/repo"]
}
}
Uso com VS Code
Para instalação rápida, use um dos botões de instalação com um clique abaixo...
Para instalação manual, você pode configurar o servidor MCP usando um destes métodos:
Método 1: Configuração do Usuário (Recomendado)
Adicione a configuração ao seu arquivo de configuração MCP no nível do usuário. Abra a Paleta de Comandos (Ctrl + Shift + P) e execute MCP: Open User Configuration. Isso abrirá seu arquivo mcp.json de usuário onde você pode adicionar a configuração do servidor.
Método 2: Configuração do Workspace
Alternativamente, você pode adicionar a configuração a um arquivo chamado .vscode/mcp.json no seu workspace. Isso permitirá que você compartilhe a configuração com outras pessoas.
Para mais detalhes sobre a configuração do MCP no VS Code, consulte a documentação oficial do MCP do VS Code.
{
"servers": {
"git": {
"command": "uvx",
"args": ["mcp-server-git"]
}
}
}
Para instalação via Docker:
{
"mcp": {
"servers": {
"git": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"--mount", "type=bind,src=${workspaceFolder},dst=/workspace",
"mcp/git"
]
}
}
}
}
Uso com Zed
Adicione ao seu settings.json do Zed:
Usando uvx
"context_servers": [
"mcp-server-git": {
"command": {
"path": "uvx",
"args": ["mcp-server-git"]
}
}
],
Usando instalação via pip
"context_servers": {
"mcp-server-git": {
"command": {
"path": "python",
"args": ["-m", "mcp_server_git"]
}
}
},
Uso com Zencoder
- Vá ao menu do Zencoder (...)
- No menu suspenso, selecione
Agent Tools - Clique em
Add Custom MCP - Adicione o nome (ex.: git) e a configuração do servidor abaixo, e certifique-se de clicar no botão
Install
Usando uvx
{
"command": "uvx",
"args": ["mcp-server-git", "--repository", "path/to/git/repo"]
}
Depuração
Você pode usar o inspetor MCP para depurar o servidor. Para instalações via uvx:
npx @modelcontextprotocol/inspector uvx mcp-server-git
Ou se você instalou o pacote em um diretório específico ou está desenvolvendo nele:
cd path/to/servers/src/git
npx @modelcontextprotocol/inspector uv run mcp-server-git
Executar tail -n 20 -f ~/Library/Logs/Claude/mcp*.log mostrará os logs do servidor e pode ajudar a depurar quaisquer problemas.
Desenvolvimento
Se você está fazendo desenvolvimento local, há duas maneiras de testar suas alterações:
-
Execute o inspetor MCP para testar suas alterações. Consulte Depuração para instruções de execução.
-
Teste usando o aplicativo de desktop Claude. Adicione o seguinte ao seu
claude_desktop_config.json:
Docker
{
"mcpServers": {
"git": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"--mount", "type=bind,src=/Users/username/Desktop,dst=/projects/Desktop",
"--mount", "type=bind,src=/path/to/other/allowed/dir,dst=/projects/other/allowed/dir,ro",
"--mount", "type=bind,src=/path/to/file.txt,dst=/projects/path/to/file.txt",
"mcp/git"
]
}
}
}
UVX
{
"mcpServers": {
"git": {
"command": "uv",
"args": [
"--directory",
"/<path to mcp-servers>/mcp-servers/src/git",
"run",
"mcp-server-git"
]
}
}
}
Compilação
Build Docker:
cd src/git
docker build -t mcp/git .
Licença
Este servidor MCP é licenciado sob a Licença MIT. Isso significa que você é livre para usar, modificar e distribuir o software, sujeito aos termos e condições da Licença MIT. Para mais detalhes, consulte o arquivo LICENSE no repositório do projeto.