Aider MCP Server
Un servidor MCP para delegar tareas de codificación de IA a Aider, mejorando la eficiencia y flexibilidad del desarrollo.
Documentación
Aider MCP Server - Experimental
Servidor de protocolo de contexto de modelo para delegar trabajo de codificación de IA a Aider, mejorando la eficiencia y flexibilidad del desarrollo.
Descripción general
Este servidor permite que Claude Code delegue tareas de codificación de IA a Aider, el mejor asistente de codificación de IA de código abierto. Al delegar ciertas tareas de codificación a Aider, podemos reducir costos, obtener control sobre nuestro modelo de codificación y operar Claude Code de una manera más orquestadora para revisar y modificar código.
Configuración
- Clona el repositorio:
git clone https://github.com/disler/aider-mcp-server.git
- Instala las dependencias:
uv sync
- Crea tu archivo de entorno:
cp .env.sample .env
- Configura tus claves de API en el archivo
.env(o usa la sección "env" de mcpServers) para tener la clave de API necesaria para el modelo que quieras usar en 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
- Copia y completa el
.mcp.jsonen la raíz de tu proyecto y actualiza el--directorypara que apunte al directorio raíz de este proyecto y el--current-working-dirpara que apunte a la raíz de tu proyecto.
{
"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
}
}
}
}
Pruebas
Las pruebas se ejecutan con gemini-2.5-pro-exp-03-25
Para ejecutar todas las pruebas:
uv run pytest
Para ejecutar pruebas específicas:
# 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: Las pruebas de codificación de IA requieren una clave de API válida para el modelo Gemini. Asegúrate de configurarla en tu archivo .env antes de ejecutar las pruebas.
Agregar este servidor MCP a Claude Code
Agregar con 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>"
Agregar con 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>"
Agregar con 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>"
Agregar con 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 proporciona las siguientes funcionalidades:
-
Delegar tareas de codificación de IA a Aider:
- Toma un prompt y rutas de archivos
- Usa Aider para implementar los cambios solicitados
- Devuelve éxito o fracaso
-
Listar modelos disponibles:
- Proporciona una lista de modelos que coinciden con una subcadena
- Útil para descubrir modelos compatibles
Herramientas disponibles
Este servidor MCP expone las siguientes herramientas:
1. aider_ai_code
Esta herramienta te permite ejecutar Aider para realizar tareas de codificación de IA basadas en un prompt proporcionado y archivos especificados.
Parámetros:
ai_coding_prompt(cadena, obligatorio): La instrucción en lenguaje natural para la tarea de codificación de IA.relative_editable_files(lista de cadenas, obligatorio): Una lista de rutas de archivos (relativas alcurrent_working_dir) que Aider puede modificar. Si un archivo no existe, se creará.relative_readonly_files(lista de cadenas, opcional): Una lista de rutas de archivos (relativas alcurrent_working_dir) que Aider puede leer para contexto pero no puede modificar. El valor predeterminado es una lista vacía[].model(cadena, opcional): El modelo de IA principal que Aider debe usar para generar código. El valor predeterminado es"gemini/gemini-2.5-pro-exp-03-25". Puedes usar la herramientalist_modelspara encontrar otros modelos disponibles.editor_model(cadena, opcional): El modelo de IA que Aider debe usar para editar/refinar código, particularmente cuando se usa el modo arquitecto. Si no se proporciona, elmodelprincipal podría usarse dependiendo de la lógica interna de Aider. El valor predeterminado esNone.
Ejemplo de uso (dentro de una solicitud MCP):
Prompt de 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"
}
}
Devuelve:
- Un dict simple: {success, diff}
success: booleano - Si la operación fue exitosa.diff: cadena - El diff de los cambios realizados en el archivo.
2. list_models
Esta herramienta lista los modelos de IA disponibles compatibles con Aider que coinciden con una subcadena dada.
Parámetros:
substring(cadena, obligatorio): La subcadena para buscar dentro de los nombres de los modelos disponibles.
Ejemplo de uso (dentro de una solicitud MCP):
Prompt de Claude Code:
Use the Aider List Models tool to: List models that contain the substring "gemini".
Resultado:
{
"name": "list_models",
"parameters": {
"substring": "gemini"
}
}
Devuelve:
- Una lista de cadenas de nombres de modelos que coinciden con la subcadena proporcionada. Ejemplo:
["gemini/gemini-1.5-flash", "gemini/gemini-1.5-pro", "gemini/gemini-pro"]
Arquitectura
El servidor está estructurado de la siguiente manera:
- Capa de servidor: Maneja la comunicación del protocolo MCP
- Capa de átomos: Componentes funcionales individuales y puros
- Herramientas: Capacidades específicas (codificación de IA, listado de modelos)
- Utilidades: Constantes y funciones auxiliares
- Tipos de datos: Definiciones de tipos usando Pydantic
Todos los componentes están completamente probados para garantizar su confiabilidad.
Estructura del código
El proyecto está organizado en los siguientes directorios y archivos principales:
.
├── 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: Contiene el código principal de la aplicación.atoms: Contiene los bloques fundamentales. Están diseñados para ser funciones puras o clases simples con dependencias mínimas.tools: Cada archivo aquí implementa la lógica central para una herramienta MCP específica (aider_ai_code,list_models).utils.py: Contiene constantes compartidas como nombres de modelos predeterminados.data_types.py: Define modelos de Pydantic para estructuras de solicitud/respuesta, asegurando la validación de datos.logging.py: Configura un formato de registro consistente para salida de consola y archivo.
server.py: Orquesta el servidor MCP. Inicializa el servidor, registra las herramientas definidas en el directorioatoms/tools, maneja las solicitudes entrantes, las enruta a la lógica de herramienta apropiada y envía respuestas según el protocolo MCP.__main__.py: Proporciona el punto de entrada de la interfaz de línea de comandos (aider-mcp-server), analizando argumentos como--editor-modele iniciando el servidor definido enserver.py.tests: Contiene pruebas que reflejan la estructura del directoriosrc, asegurando que cada componente (especialmente los átomos) funcione como se espera.