Aider MCP-Server – experimentell
Modellkontextprotokollserver zum Auslagern von KI-Codierungsarbeiten an Aider, wodurch die Entwicklungseffizienz und -flexibilität verbessert wird.
Überblick
Dieser Server ermöglicht es Claude Code, KI-Programmieraufgaben an Aider, den besten Open-Source-KI-Programmierassistenten, auszulagern. Durch die Delegierung bestimmter Programmieraufgaben an Aider können wir Kosten senken, die Kontrolle über unser Programmiermodell gewinnen und Claude Code orchestrierter einsetzen, um Code zu überprüfen und zu überarbeiten.
Related MCP server: MCP Unified Server
Aufstellen
Klonen Sie das Repository:
git clone https://github.com/disler/aider-mcp-server.gitInstallieren Sie Abhängigkeiten:
uv syncErstellen Sie Ihre Umgebungsdatei:
cp .env.sample .envKonfigurieren Sie Ihre API-Schlüssel in der
.envDatei (oder verwenden Sie den Abschnitt „env“ von mcpServers), um den API-Schlüssel zu haben, der für das Modell erforderlich ist, das Sie in aider verwenden möchten:
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 moreKopieren Sie die
.mcp.json, füllen Sie sie im Stammverzeichnis Ihres Projekts aus und aktualisieren Sie--directory, sodass es auf das Stammverzeichnis dieses Projekts verweist, und--current-working-dirsodass es auf das Stammverzeichnis Ihres Projekts verweist.
{
"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
}
}
}
}Testen
Tests ausgeführt mit gemini-2.5-pro-exp-03-25
So führen Sie alle Tests aus:
uv run pytestSo führen Sie bestimmte Tests durch:
# 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.pyHinweis: Für die KI-Codierungstests ist ein gültiger API-Schlüssel für das Gemini-Modell erforderlich. Stellen Sie sicher, dass Sie ihn vor dem Ausführen der Tests in Ihrer .env Datei festlegen.
Fügen Sie diesen MCP-Server zu Claude Code hinzu
Hinzufügen mit 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>"Hinzufügen mit 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>"Hinzufügen mit 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>"Hinzufügen mit 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>"Verwendung
Dieser MCP-Server bietet die folgenden Funktionen:
Übertragen Sie KI-Codierungsaufgaben auf Aider :
Nimmt eine Eingabeaufforderung und Dateipfade entgegen
Verwendet Aider, um die gewünschten Änderungen umzusetzen
Gibt Erfolg oder Misserfolg zurück
Liste der verfügbaren Modelle :
Stellt eine Liste von Modellen bereit, die einer Teilzeichenfolge entsprechen
Nützlich zum Entdecken unterstützter Modelle
Verfügbare Tools
Dieser MCP-Server stellt die folgenden Tools bereit:
1. aider_ai_code
Mit diesem Tool können Sie Aider ausführen, um KI-Codierungsaufgaben basierend auf einer bereitgestellten Eingabeaufforderung und angegebenen Dateien durchzuführen.
Parameter:
ai_coding_prompt(Zeichenfolge, erforderlich): Die Anweisung in natürlicher Sprache für die KI-Codierungsaufgabe.relative_editable_files(Liste von Zeichenfolgen, erforderlich): Eine Liste von Dateipfaden (relativ zumcurrent_working_dir), die Aider ändern darf. Falls eine Datei nicht existiert, wird sie erstellt.relative_readonly_files(Liste von Zeichenfolgen, optional): Eine Liste von Dateipfaden (relativ zumcurrent_working_dir), die Aider zum Kontext lesen, aber nicht ändern kann. Standardmäßig ist die Liste leer[].model(Zeichenfolge, optional): Das primäre KI-Modell, das Aider zur Codegenerierung verwenden soll. Standardmäßig ist der Wert"gemini/gemini-2.5-pro-exp-03-25"eingestellt. Mit dem Toollist_modelskönnen Sie weitere verfügbare Modelle finden.editor_model(Zeichenfolge, optional): Das KI-Modell, das Aider zum Bearbeiten/Verfeinern von Code verwenden soll, insbesondere im Architektenmodus. Falls nicht angegeben, kann je nach Aiders interner Logik das primäremodelverwendet werden. Standardmäßig „None.
Beispielverwendung (innerhalb einer MCP-Anfrage):
Claude Code-Eingabeaufforderung:
Use the Aider AI Code tool to: Refactor the calculate_sum function in calculator.py to handle potential TypeError exceptions.Ergebnis:
{
"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"
}
}Widerrufsfolgen:
Ein einfaches Diktat: {Erfolg, Unterschied}
success: Boolesch – Ob der Vorgang erfolgreich war.diff: Zeichenfolge – Der Unterschied der an der Datei vorgenommenen Änderungen.
2. list_models
Dieses Tool listet verfügbare, von Aider unterstützte KI-Modelle auf, die mit einer bestimmten Teilzeichenfolge übereinstimmen.
Parameter:
substring(Zeichenfolge, erforderlich): Die Teilzeichenfolge, nach der in den Namen der verfügbaren Modelle gesucht werden soll.
Beispielverwendung (innerhalb einer MCP-Anfrage):
Claude Code-Eingabeaufforderung:
Use the Aider List Models tool to: List models that contain the substring "gemini".Ergebnis:
{
"name": "list_models",
"parameters": {
"substring": "gemini"
}
}Widerrufsfolgen:
Eine Liste von Modellnamen, die mit der angegebenen Teilzeichenfolge übereinstimmen. Beispiel:
["gemini/gemini-1.5-flash", "gemini/gemini-1.5-pro", "gemini/gemini-pro"]
Architektur
Der Server ist wie folgt aufgebaut:
Serverebene : Behandelt die MCP-Protokollkommunikation
Atomschicht : Einzelne, reine Funktionskomponenten
Tools : Spezifische Funktionen (KI-Codierung, Auflistung von Modellen)
Utils : Konstanten und Hilfsfunktionen
Datentypen : Typdefinitionen mit Pydantic
Alle Komponenten werden gründlich auf Zuverlässigkeit getestet.
Codebasisstruktur
Das Projekt ist in die folgenden Hauptverzeichnisse und Dateien unterteilt:
.
├── 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: Enthält den Hauptanwendungscode.atoms: Enthält die grundlegenden Bausteine. Diese sind als reine Funktionen oder einfache Klassen mit minimalen Abhängigkeiten konzipiert.tools: Jede Datei hier implementiert die Kernlogik für ein bestimmtes MCP-Tool (aider_ai_code,list_models).utils.py: Enthält gemeinsame Konstanten wie Standardmodellnamen.data_types.py: Definiert Pydantic-Modelle für Anforderungs-/Antwortstrukturen und stellt so die Datenvalidierung sicher.logging.py: Richtet ein konsistentes Protokollierungsformat für die Konsolen- und Dateiausgabe ein.
server.py: Orchestriert den MCP-Server. Es initialisiert den Server, registriert die im Verzeichnisatoms/toolsdefinierten Tools, verarbeitet eingehende Anfragen, leitet sie an die entsprechende Tool-Logik weiter und sendet Antworten gemäß dem MCP-Protokoll zurück.__main__.py: Stellt den Einstiegspunkt der Befehlszeilenschnittstelle (aider-mcp-server) bereit, analysiert Argumente wie--editor-modelund startet den inserver.pydefinierten Server.tests: Enthält Tests, die die Struktur dessrcVerzeichnisses widerspiegeln und sicherstellen, dass jede Komponente (insbesondere Atome) wie erwartet funktioniert.