mcpField
A
Aider MCP Server - Experimental

Aider MCP Server - Experimental

ローカル
github.com/disler開発ツール30875 週間前に更新

Aider MCP Server - Experimental について

Aider MCP Server は、Claude Code からコーディング作業を Aider に委譲できる実験的な MCP サーバーです。コストを抑えつつ利用するコーディングモデルを選び、変更内容を Claude Code でレビューしたい開発者向けです。

主な機能

  1. 01コーディング作業用の aider_ai_code ツール
  2. 02成功可否と差分の返却
  3. 03部分文字列によるモデル検索の list_models ツール
  4. 04編集可能ファイルと読み取り専用ファイルの指定

活用シーン

  1. 01リファクタリングを Aider に任せ、Claude Code で差分をレビュー
  2. 02名前の一部で利用可能なモデルを検索
  3. 03選択したファイル内での自動コード修正

MCP 対応

MCP サーバーとして、aider_ai_code と list_models の2つのツールを Claude Code などの MCP クライアントに公開します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

Aider MCP サーバー - 実験的

AI コーディング作業を Aider に委任し、開発の効率性と柔軟性を高めるためのモデルコンテキストプロトコルサーバーです。

概要

このサーバーを使用すると、Claude Code から最高のオープンソース AI コーディングアシスタントである Aider に、AI コーディングタスクを委任できます。特定のコーディングタスクを Aider に委任することで、コストを削減し、使用するコーディングモデルを制御しやすくなるほか、Claude Code をよりオーケストレーションに特化した方法で動作させ、コードのレビューや修正を行えます。

セットアップ

  1. リポジトリをクローンします。
git clone https://github.com/disler/aider-mcp-server.git
  1. 依存関係をインストールします。
uv sync
  1. 環境ファイルを作成します。
cp .env.sample .env
  1. Aider で使用するモデルに必要な API キーを、.env ファイル(または mcpServers の「env」セクション)で設定します。
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 コーディングテストには、Gemini モデル用の有効な API キーが必要です。テストを実行する前に、.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. AI コーディングタスクを Aider に委任する:

    • プロンプトとファイルパスを受け取ります
    • Aider を使用して、要求された変更を実装します
    • 成功または失敗を返します
  2. 利用可能なモデルを一覧表示する:

    • 部分文字列に一致するモデルの一覧を返します
    • 対応モデルの確認に役立ちます

利用可能なツール

この MCP サーバーは、次のツールを公開します。

1. aider_ai_code

このツールを使用すると、指定したプロンプトとファイルに基づいて、Aider に AI コーディングタスクを実行させることができます。

パラメーター:

  • ai_coding_prompt(string、必須):AI コーディングタスクの自然言語による指示です。
  • relative_editable_files(文字列のリスト、必須):Aider が変更を許可されたファイルパスのリストです(current_working_dir からの相対パス)。ファイルが存在しない場合は作成されます。
  • relative_readonly_files(文字列のリスト、任意):Aider がコンテキストとして読み取れますが、変更はできないファイルパスのリストです(current_working_dir からの相対パス)。デフォルトは空のリスト [] です。
  • model(string、任意):コード生成に使用する Aider のメイン AI モデルです。デフォルトは "gemini/gemini-2.5-pro-exp-03-25" です。list_models ツールを使用して、ほかの利用可能なモデルを確認できます。
  • editor_model(string、任意):特にアーキテクトモードを使用する場合に、コードの編集や改善に使用する Aider の AI モデルです。指定しない場合、Aider の内部ロジックに応じてメインの model が使用されることがあります。デフォルトは None です。

使用例(MCP リクエスト内):

Claude Code のプロンプト:

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"
  }
}

戻り値:

  • シンプルな dict:{success, diff}
    • success:boolean - 処理が成功したかどうかを示します。
    • diff:string - ファイルに加えられた変更の差分です。
2. list_models

このツールは、指定した部分文字列に一致する、Aider がサポートする利用可能な AI モデルを一覧表示します。

パラメーター:

  • substring(string、必須):利用可能なモデル名の中から検索する部分文字列です。

使用例(MCP リクエスト内):

Claude Code のプロンプト:

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 プロトコルの通信を処理します
  • Atoms レイヤー:個別の純粋関数型コンポーネントです
    • ツール:特定の機能(AI コーディング、モデルの一覧表示)
    • ユーティリティ:定数とヘルパー関数
    • データ型: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 ディレクトリと同じ構成のテストが含まれており、各コンポーネント(特に atoms)が想定どおりに動作することを確認します。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。