Skip to main content
Glama
disler
by disler

Сервер Aider MCP — экспериментальный

Модель сервера контекстного протокола для передачи работы по кодированию ИИ в Aider, что повышает эффективность и гибкость разработки.

Обзор

Этот сервер позволяет Claude Code перекладывать задачи кодирования ИИ на Aider, лучший помощник кодирования ИИ с открытым исходным кодом. Делегируя определенные задачи кодирования Aider, мы можем сократить расходы, получить контроль над нашей моделью кодирования и использовать Claude Code более оркестровым способом для проверки и исправления кода.

Related MCP server: MCP Unified Server

Настраивать

  1. Клонируйте репозиторий:

git clone https://github.com/disler/aider-mcp-server.git
  1. Установить зависимости:

uv sync
  1. Создайте файл среды:

cp .env.sample .env
  1. Настройте ключи 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
  1. Скопируйте и заполните файл .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 обеспечивает следующие функции:

  1. Передача задач по кодированию ИИ в Aider :

    • Принимает приглашение и пути к файлам

    • Использует Aider для внедрения запрошенных изменений

    • Возвращает успех или неудачу

  2. Список доступных моделей :

    • Предоставляет список моделей, соответствующих подстроке

    • Полезно для поиска поддерживаемых моделей.

Доступные инструменты

Этот сервер 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 tool
  • src/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 , гарантируя, что каждый компонент (особенно атомы) работает так, как ожидается.

-
security - not tested
F
license - not found
-
quality - not tested

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/disler/aider-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server