Aider MCP Server
Um servidor MCP para delegar tarefas de codificação de IA ao Aider, aumentando a eficiência e flexibilidade do desenvolvimento.
Documentação
Aider MCP Server - Experimental
Servidor de protocolo de contexto de modelo para descarregar trabalho de codificação de IA para o Aider, melhorando a eficiência e flexibilidade do desenvolvimento.
Visão Geral
Este servidor permite que o Claude Code descarregue tarefas de codificação de IA para o Aider, o melhor assistente de codificação de IA de código aberto. Ao delegar certas tarefas de codificação para o Aider, podemos reduzir custos, ganhar controle sobre nosso modelo de codificação e operar o Claude Code de uma forma mais orquestrada para revisar e revisar código.
Configuração
- Clone o repositório:
git clone https://github.com/disler/aider-mcp-server.git
- Instale as dependências:
uv sync
- Crie seu arquivo de ambiente:
cp .env.sample .env
- Configure suas chaves de API no arquivo
.env(ou use a seção "env" do mcpServers) para ter a chave de API necessária para o modelo que você deseja usar no aider:
GEMINI_API_KEY=your_gemini_api_key_here
OPENAI_API_KEY=your_openai_api_key_here
ANTHROPIC_API_KEY=your_anthropic_api_key_here
...see .env.sample for more
- Copie e preencha o
.mcp.jsonpara a raiz do seu projeto e atualize o--directorypara apontar para o diretório raiz deste projeto e o--current-working-dirpara apontar para a raiz do seu projeto.
{
"mcpServers": {
"aider-mcp-server": {
"type": "stdio",
"command": "uv",
"args": [
"--directory",
"<path to this project>",
"run",
"aider-mcp-server",
"--editor-model",
"gpt-4o",
"--current-working-dir",
"<path to your project>"
],
"env": {
"GEMINI_API_KEY": "<your gemini api key>",
"OPENAI_API_KEY": "<your openai api key>",
"ANTHROPIC_API_KEY": "<your anthropic api key>",
...see .env.sample for more
}
}
}
}
Testes
Testes executados com gemini-2.5-pro-exp-03-25
Para executar todos os testes:
uv run pytest
Para executar testes específicos:
# Test listing models
uv run pytest src/aider_mcp_server/tests/atoms/tools/test_aider_list_models.py
# Test AI coding
uv run pytest src/aider_mcp_server/tests/atoms/tools/test_aider_ai_code.py
Nota: Os testes de codificação de IA requerem uma chave de API válida para o modelo Gemini. Certifique-se de defini-la no seu arquivo .env antes de executar os testes.
Adicionar este servidor MCP ao Claude Code
Adicionar com gemini-2.5-pro-exp-03-25
claude mcp add aider-mcp-server -s local \
-- \
uv --directory "<path to the aider mcp server project>" \
run aider-mcp-server \
--editor-model "gemini/gemini-2.5-pro-exp-03-25" \
--current-working-dir "<path to your project>"
Adicionar com gemini-2.5-pro-preview-03-25
claude mcp add aider-mcp-server -s local \
-- \
uv --directory "<path to the aider mcp server project>" \
run aider-mcp-server \
--editor-model "gemini/gemini-2.5-pro-preview-03-25" \
--current-working-dir "<path to your project>"
Adicionar com quasar-alpha
claude mcp add aider-mcp-server -s local \
-- \
uv --directory "<path to the aider mcp server project>" \
run aider-mcp-server \
--editor-model "openrouter/openrouter/quasar-alpha" \
--current-working-dir "<path to your project>"
Adicionar com llama4-maverick-instruct-basic
claude mcp add aider-mcp-server -s local \
-- \
uv --directory "<path to the aider mcp server project>" \
run aider-mcp-server \
--editor-model "fireworks_ai/accounts/fireworks/models/llama4-maverick-instruct-basic" \
--current-working-dir "<path to your project>"
Uso
Este servidor MCP fornece as seguintes funcionalidades:
-
Descarregar tarefas de codificação de IA para o Aider:
- Recebe um prompt e caminhos de arquivos
- Usa o Aider para implementar as alterações solicitadas
- Retorna sucesso ou falha
-
Listar modelos disponíveis:
- Fornece uma lista de modelos que correspondem a uma substring
- Útil para descobrir modelos suportados
Ferramentas Disponíveis
Este servidor MCP expõe as seguintes ferramentas:
1. aider_ai_code
Esta ferramenta permite executar o Aider para realizar tarefas de codificação de IA com base em um prompt fornecido e arquivos especificados.
Parâmetros:
ai_coding_prompt(string, obrigatório): A instrução em linguagem natural para a tarefa de codificação de IA.relative_editable_files(lista de strings, obrigatório): Uma lista de caminhos de arquivos (relativos aocurrent_working_dir) que o Aider pode modificar. Se um arquivo não existir, ele será criado.relative_readonly_files(lista de strings, opcional): Uma lista de caminhos de arquivos (relativos aocurrent_working_dir) que o Aider pode ler para contexto, mas não pode modificar. O padrão é uma lista vazia[].model(string, opcional): O modelo de IA principal que o Aider deve usar para gerar código. O padrão é"gemini/gemini-2.5-pro-exp-03-25". Você pode usar a ferramentalist_modelspara encontrar outros modelos disponíveis.editor_model(string, opcional): O modelo de IA que o Aider deve usar para editar/refinar código, particularmente ao usar o modo arquiteto. Se não for fornecido, omodelprincipal pode ser usado dependendo da lógica interna do Aider. O padrão éNone.
Exemplo de Uso (dentro de uma solicitação MCP):
Prompt do Claude Code:
Use the Aider AI Code tool to: Refactor the calculate_sum function in calculator.py to handle potential TypeError exceptions.
Resultado:
{
"name": "aider_ai_code",
"parameters": {
"ai_coding_prompt": "Refactor the calculate_sum function in calculator.py to handle potential TypeError exceptions.",
"relative_editable_files": ["src/calculator.py"],
"relative_readonly_files": ["docs/requirements.txt"],
"model": "openai/gpt-4o"
}
}
Retorna:
- Um dict simples: {success, diff}
success: booleano - Se a operação foi bem-sucedida.diff: string - O diff das alterações feitas no arquivo.
2. list_models
Esta ferramenta lista modelos de IA disponíveis suportados pelo Aider que correspondem a uma determinada substring.
Parâmetros:
substring(string, obrigatório): A substring para pesquisar dentro dos nomes dos modelos disponíveis.
Exemplo de Uso (dentro de uma solicitação MCP):
Prompt do Claude Code:
Use the Aider List Models tool to: List models that contain the substring "gemini".
Resultado:
{
"name": "list_models",
"parameters": {
"substring": "gemini"
}
}
Retorna:
- Uma lista de strings de nomes de modelos que correspondem à substring fornecida. Exemplo:
["gemini/gemini-1.5-flash", "gemini/gemini-1.5-pro", "gemini/gemini-pro"]
Arquitetura
O servidor está estruturado da seguinte forma:
- Camada de servidor: Lida com a comunicação do protocolo MCP
- Camada de átomos: Componentes funcionais individuais e puros
- Ferramentas: Capacidades específicas (codificação de IA, listagem de modelos)
- Utilitários: Constantes e funções auxiliares
- Tipos de dados: Definições de tipos usando Pydantic
Todos os componentes são minuciosamente testados para garantir confiabilidade.
Estrutura do Código
O projeto está organizado nos seguintes diretórios e arquivos principais:
.
├── ai_docs # Documentation related to AI models and examples
│ ├── just-prompt-example-mcp-server.xml
│ └── programmable-aider-documentation.md
├── pyproject.toml # Project metadata and dependencies
├── README.md # This file
├── specs # Specification documents
│ └── init-aider-mcp-exp.md
├── src # Source code directory
│ └── aider_mcp_server # Main package for the server
│ ├── __init__.py # Package initializer
│ ├── __main__.py # Main entry point for the server executable
│ ├── atoms # Core, reusable components (pure functions)
│ │ ├── __init__.py
│ │ ├── data_types.py # Pydantic models for data structures
│ │ ├── logging.py # Custom logging setup
│ │ ├── tools # Individual tool implementations
│ │ │ ├── __init__.py
│ │ │ ├── aider_ai_code.py # Logic for the aider_ai_code tool
│ │ │ └── aider_list_models.py # Logic for the list_models tool
│ │ └── utils.py # Utility functions and constants (like default models)
│ ├── server.py # MCP server logic, tool registration, request handling
│ └── tests # Unit and integration tests
│ ├── __init__.py
│ └── atoms # Tests for the atoms layer
│ ├── __init__.py
│ ├── test_logging.py # Tests for logging
│ └── tools # Tests for the tools
│ ├── __init__.py
│ ├── test_aider_ai_code.py # Tests for AI coding tool
│ └── test_aider_list_models.py # Tests for model listing tool
src/aider_mcp_server: Contém o código principal da aplicação.atoms: Contém os blocos de construção fundamentais. Eles são projetados para serem funções puras ou classes simples com dependências mínimas.tools: Cada arquivo aqui implementa a lógica central para uma ferramenta MCP específica (aider_ai_code,list_models).utils.py: Contém constantes compartilhadas como nomes de modelos padrão.data_types.py: Define modelos Pydantic para estruturas de solicitação/resposta, garantindo validação de dados.logging.py: Configura um formato de registro consistente para saída em console e arquivo.
server.py: Orquestra o servidor MCP. Ele inicializa o servidor, registra as ferramentas definidas no diretórioatoms/tools, lida com solicitações recebidas, roteia-as para a lógica de ferramenta apropriada e envia respostas de acordo com o protocolo MCP.__main__.py: Fornece o ponto de entrada da interface de linha de comando (aider-mcp-server), analisando argumentos como--editor-modele iniciando o servidor definido emserver.py.tests: Contém testes que espelham a estrutura do diretóriosrc, garantindo que cada componente (especialmente átomos) funcione como esperado.