Сервер Aider MCP — экспериментальный
Модель сервера контекстного протокола для передачи работы по кодированию ИИ в Aider, что повышает эффективность и гибкость разработки.
Обзор
Этот сервер позволяет Claude Code перекладывать задачи кодирования ИИ на Aider, лучший помощник кодирования ИИ с открытым исходным кодом. Делегируя определенные задачи кодирования Aider, мы можем сократить расходы, получить контроль над нашей моделью кодирования и использовать Claude Code более оркестровым способом для проверки и исправления кода.
Related MCP server: MCP Unified Server
Настраивать
Клонируйте репозиторий:
git clone https://github.com/disler/aider-mcp-server.gitУстановить зависимости:
uv syncСоздайте файл среды:
cp .env.sample .envНастройте ключи API в файле
.env(или используйте раздел mcpServers "env"), чтобы получить ключ API, необходимый для модели, которую вы хотите использовать в 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Скопируйте и заполните файл
.mcp.jsonв корневой каталог вашего проекта и обновите--directoryтак, чтобы он указывал на корневой каталог этого проекта, а--current-working-dir— на корневой каталог вашего проекта.
{
"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
}
}
}
}Тестирование
Тесты запущены с gemini-2.5-pro-exp-03-25
Чтобы запустить все тесты:
uv run pytestДля проведения определенных тестов:
# 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Примечание: Тесты кодирования AI требуют действительный ключ API для модели Gemini. Обязательно установите его в файле .env перед запуском тестов.
Добавьте этот MCP-сервер в Claude Code
Добавить с 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>"Добавить с 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>"Добавить с 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>"Добавить с 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>"Использование
Этот сервер MCP обеспечивает следующие функции:
Передача задач по кодированию ИИ в Aider :
Принимает приглашение и пути к файлам
Использует Aider для внедрения запрошенных изменений
Возвращает успех или неудачу
Список доступных моделей :
Предоставляет список моделей, соответствующих подстроке
Полезно для поиска поддерживаемых моделей.
Доступные инструменты
Этот сервер MCP предоставляет следующие инструменты:
1. aider_ai_code
Этот инструмент позволяет запускать Aider для выполнения задач кодирования ИИ на основе предоставленной подсказки и указанных файлов.
Параметры:
ai_coding_prompt(строка, обязательно): инструкция на естественном языке для задачи кодирования ИИ.relative_editable_files(список строк, обязательно): Список путей к файлам (относительноcurrent_working_dir), которые Aider разрешено изменять. Если файл не существует, он будет создан.relative_readonly_files(список строк, необязательно): Список путей к файлам (относительноcurrent_working_dir), которые Aider может читать для контекста, но не может изменять. По умолчанию пустой список[].model(строка, необязательно): Основная модель ИИ, которую Aider должен использовать для генерации кода. По умолчанию"gemini/gemini-2.5-pro-exp-03-25". Вы можете использовать инструментlist_modelsдля поиска других доступных моделей.editor_model(string, необязательно): Модель ИИ, которую Aider должен использовать для редактирования/уточнения кода, особенно при использовании режима архитектора. Если не указано, может использоваться основнаяmodelв зависимости от внутренней логики Aider. По умолчаниюNone.
Пример использования (в запросе MCP):
Клод Код Подсказка:
Use the Aider AI Code tool to: Refactor the calculate_sum function in calculator.py to handle potential TypeError exceptions.Результат:
{
"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"
}
}Возврат:
Простой словарь: {success, diff}
success: boolean — Была ли операция успешной.diff: string — разница изменений, внесенных в файл.
2. list_models
Этот инструмент выводит список доступных моделей ИИ, поддерживаемых Aider, которые соответствуют заданной подстроке.
Параметры:
substring(строка, обязательно): подстрока для поиска в именах доступных моделей.
Пример использования (в запросе MCP):
Клод Код Подсказка:
Use the Aider List Models tool to: List models that contain the substring "gemini".Результат:
{
"name": "list_models",
"parameters": {
"substring": "gemini"
}
}Возврат:
Список строк названий моделей, соответствующих указанной подстроке. Пример:
["gemini/gemini-1.5-flash", "gemini/gemini-1.5-pro", "gemini/gemini-pro"]
Архитектура
Сервер имеет следующую структуру:
Уровень сервера : обрабатывает связь по протоколу MCP.
Слой атомов : отдельные, чисто функциональные компоненты
Инструменты : специальные возможности (кодирование ИИ, листинг моделей)
Utils : Константы и вспомогательные функции
Типы данных : определения типов с использованием Pydantic
Все компоненты тщательно проверяются на надежность.
Структура кодовой базы
Проект состоит из следующих основных каталогов и файлов:
.
├── 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: Содержит основной код приложения.atoms: Содержат фундаментальные строительные блоки. Они разработаны как чистые функции или простые классы с минимальными зависимостями.tools: Каждый файл здесь реализует основную логику для определенного инструмента MCP (aider_ai_code,list_models).utils.py: Содержит общие константы, такие как имена моделей по умолчанию.data_types.py: определяет модели Pydantic для структур запросов/ответов, обеспечивая проверку данных.logging.py: Устанавливает единый формат ведения журнала для вывода на консоль и в файл.
server.py: Оркеструет сервер MCP. Он инициализирует сервер, регистрирует инструменты, определенные в каталогеatoms/tools, обрабатывает входящие запросы, направляет их в соответствующую логику инструментов и отправляет ответы в соответствии с протоколом MCP.__main__.py: предоставляет точку входа интерфейса командной строки (aider-mcp-server), анализируя аргументы, такие как--editor-model, и запуская сервер, определенный вserver.py.tests: Содержит тесты, отражающие структуру каталогаsrc, гарантируя, что каждый компонент (особенно атомы) работает так, как ожидается.