Servidor Aider MCP - Experimental
Servidor de protocolo de contexto de modelo para descargar el trabajo de codificación de IA a Aider, mejorando la eficiencia y la flexibilidad del desarrollo.
Descripción general
Este servidor permite a Claude Code delegar las 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, controlar nuestro modelo de codificación y operar Claude Code de forma más orquestada para revisar y corregir el código.
Related MCP server: MCP Unified Server
Configuración
Clonar el repositorio:
git clone https://github.com/disler/aider-mcp-server.gitInstalar dependencias:
uv syncCrea tu archivo de entorno:
cp .env.sample .envConfigure sus claves API en el archivo
.env(o use la sección "env" de mcpServers) para tener la clave API necesaria para el modelo que desea 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 moreCopie y complete el
.mcp.jsonen la raíz de su proyecto y actualice--directorypara apuntar al directorio raíz de este proyecto y--current-working-dirpara apuntar a la raíz de su 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
Pruebas realizadas con gemini-2.5-pro-exp-03-25
Para ejecutar todas las pruebas:
uv run pytestPara 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.pyNota: Las pruebas de codificación de IA requieren una clave API válida para el modelo Gemini. Asegúrese de configurarla en su archivo .env antes de ejecutar las pruebas.
Agregue 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>"Añadir 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>"Añadir 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 aviso y rutas de archivos
Utiliza Aider para implementar los cambios solicitados
Devuelve el éxito o el fracaso
Lista de 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 le permite ejecutar Aider para realizar tareas de codificación de IA según una solicitud proporcionada y archivos específicos.
Parámetros:
ai_coding_prompt(cadena, obligatoria): la instrucción en lenguaje natural para la tarea de codificación de IA.relative_editable_files(lista de cadenas, obligatoria): Una lista de rutas de archivo (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 archivo (relativas alcurrent_working_dir) que Aider puede leer para contexto, pero no 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". Puede usar la herramientalist_modelspara encontrar otros modelos disponibles.editor_model(cadena, opcional): El modelo de IA que Aider debe usar para editar/refinar el código, especialmente al usar el modo arquitecto. Si no se proporciona, se podría usar elmodelprincipal según la lógica interna de Aider. El valor predeterminado esNone.
Ejemplo de uso (dentro de una solicitud MCP):
Indicación 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"
}
}Devoluciones:
Un diccionario simple: {éxito, diferencia}
success: booleano - Si la operación fue exitosa.diff: string - La diferencia de los cambios realizados en el archivo.
2. list_models
Esta herramienta enumera los modelos de IA disponibles compatibles con Aider que coinciden con una subcadena determinada.
Parámetros:
substring(cadena, obligatoria): la subcadena que se buscará dentro de los nombres de los modelos disponibles.
Ejemplo de uso (dentro de una solicitud MCP):
Indicación de Claude Code:
Use the Aider List Models tool to: List models that contain the substring "gemini".Resultado:
{
"name": "list_models",
"parameters": {
"substring": "gemini"
}
}Devoluciones:
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, modelos de listado)
Utilidades : Constantes y funciones auxiliares
Tipos de datos : definiciones de tipos utilizando Pydantic
Todos los componentes se prueban exhaustivamente para garantizar su confiabilidad.
Estructura del código base
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 toolsrc/aider_mcp_server: contiene el código de la aplicación principal.atoms: Contienen los componentes fundamentales. Están diseñados para ser funciones puras o clases simples con mínimas dependencias.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, lo que garantiza la validación de datos.logging.py: configura un formato de registro consistente para la consola y la salida de archivo.
server.py: Orquesta el servidor MCP. Inicializa el servidor, registra las herramientas definidas en el directorioatoms/tools, gestiona las solicitudes entrantes, las enruta a la lógica de herramientas adecuada 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), analiza argumentos como--editor-modele inicia el servidor definido enserver.py.tests: contiene pruebas que reflejan la estructura del directoriosrc, lo que garantiza que cada componente (especialmente los átomos) funcione como se espera.