Aider MCP Server - Experimental

Aider MCP Server - Experimental

镜子 (jìng zi)

MCP-Mirror

研究与数据
访问服务器

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. .env 文件中配置您的 API 密钥(或使用 mcpServers "env" 部分),以拥有您想在 Aider 中使用的模型所需的 API 密钥:
GEMINI_API_KEY=your_gemini_api_key_here
OPENAI_API_KEY=your_openai_api_key_here
ANTHROPIC_API_KEY=your_anthropic_api_key_here
...更多信息请参见 .env.sample
  1. .mcp.json 复制并填写到项目的根目录中,并更新 --directory 以指向此项目的根目录,并将 --current-working-dir 指向您的项目的根目录。
{
  "mcpServers": {
    "aider-mcp-server": {
      "type": "stdio",
      "command": "uv",
      "args": [
        "--directory",
        "<指向此项目的路径>",
        "run",
        "aider-mcp-server",
        "--editor-model",
        "gpt-4o",
        "--current-working-dir",
        "<指向您的项目的路径>"
      ],
      "env": {
        "GEMINI_API_KEY": "<您的 gemini api 密钥>",
        "OPENAI_API_KEY": "<您的 openai api 密钥>",
        "ANTHROPIC_API_KEY": "<您的 anthropic api 密钥>",
        ...更多信息请参见 .env.sample
      }
    }
  }
}

测试

测试使用 gemini-2.5-pro-exp-03-25 运行

要运行所有测试:

uv run pytest

要运行特定测试:

# 测试模型列表
uv run pytest src/aider_mcp_server/tests/atoms/tools/test_aider_list_models.py

# 测试 AI 编码
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 "<指向 aider mcp 服务器项目的路径>" \
  run aider-mcp-server \
  --editor-model "gemini/gemini-2.5-pro-exp-03-25" \
  --current-working-dir "<指向您的项目的路径>"

使用 gemini-2.5-pro-preview-03-25 添加

claude mcp add aider-mcp-server -s local \
  -- \
  uv --directory "<指向 aider mcp 服务器项目的路径>" \
  run aider-mcp-server \
  --editor-model "gemini/gemini-2.5-pro-preview-03-25" \
  --current-working-dir "<指向您的项目的路径>"

使用 quasar-alpha 添加

claude mcp add aider-mcp-server -s local \
  -- \
  uv --directory "<指向 aider mcp 服务器项目的路径>" \
  run aider-mcp-server \
  --editor-model "openrouter/openrouter/quasar-alpha" \
  --current-working-dir "<指向您的项目的路径>"

使用 llama4-maverick-instruct-basic 添加

claude mcp add aider-mcp-server -s local \
  -- \
  uv --directory "<指向 aider mcp 服务器项目的路径>" \
  run aider-mcp-server \
  --editor-model "fireworks_ai/accounts/fireworks/models/llama4-maverick-instruct-basic" \
  --current-working-dir "<指向您的项目的路径>"

用法

此 MCP 服务器提供以下功能:

  1. 将 AI 编码任务分流到 Aider

    • 接受提示和文件路径
    • 使用 Aider 实现请求的更改
    • 返回成功或失败
  2. 列出可用模型

    • 提供与子字符串匹配的模型列表
    • 有助于发现支持的模型

可用工具

此 MCP 服务器公开以下工具:

1. aider_ai_code

此工具允许您运行 Aider 以基于提供的提示和指定的文件执行 AI 编码任务。

参数:

  • ai_coding_prompt(字符串,必需):AI 编码任务的自然语言指令。
  • relative_editable_files(字符串列表,必需):Aider 允许修改的文件路径列表(相对于 current_working_dir)。如果文件不存在,将创建该文件。
  • relative_readonly_files(字符串列表,可选):Aider 可以读取以获取上下文但不能修改的文件路径列表(相对于 current_working_dir)。默认为空列表 []
  • model(字符串,可选):Aider 应用于生成代码的主要 AI 模型。默认为 "gemini/gemini-2.5-pro-exp-03-25"。您可以使用 list_models 工具查找其他可用模型。
  • editor_model(字符串,可选):Aider 应用于编辑/改进代码的 AI 模型,尤其是在使用架构师模式时。如果未提供,则可能会使用主要的 model,具体取决于 Aider 的内部逻辑。默认为 None

用法示例(在 MCP 请求中):

Claude Code 提示:

使用 Aider AI Code 工具:重构 calculator.py 中的 calculate_sum 函数以处理潜在的 TypeError 异常。

结果:

{
  "name": "aider_ai_code",
  "parameters": {
    "ai_coding_prompt": "重构 calculator.py 中的 calculate_sum 函数以处理潜在的 TypeError 异常。",
    "relative_editable_files": ["src/calculator.py"],
    "relative_readonly_files": ["docs/requirements.txt"],
    "model": "openai/gpt-4o"
  }
}

返回:

  • 一个简单的字典:{success, diff}
    • success:布尔值 - 操作是否成功。
    • diff:字符串 - 对文件所做更改的差异。

2. list_models

此工具列出 Aider 支持的与给定子字符串匹配的可用 AI 模型。

参数:

  • substring(字符串,必需):要在可用模型的名称中搜索的子字符串。

用法示例(在 MCP 请求中):

Claude Code 提示:

使用 Aider List Models 工具:列出包含子字符串“gemini”的模型。

结果:

{
  "name": "list_models",
  "parameters": {
    "substring": "gemini"
  }
}

返回:

  • 与提供的子字符串匹配的模型名称字符串列表。示例:["gemini/gemini-1.5-flash", "gemini/gemini-1.5-pro", "gemini/gemini-pro"]

架构

服务器的结构如下:

  • 服务器层:处理 MCP 协议通信
  • 原子层:单个、纯功能组件
    • 工具:特定功能(AI 编码、列出模型)
    • 实用程序:常量和辅助函数
    • 数据类型:使用 Pydantic 的类型定义

所有组件都经过全面测试,以确保可靠性。

代码库结构

该项目组织成以下主要目录和文件:

.
├── ai_docs                   # 与 AI 模型和示例相关的文档
│   ├── just-prompt-example-mcp-server.xml
│   └── programmable-aider-documentation.md
├── pyproject.toml            # 项目元数据和依赖项
├── README.md                 # 此文件
├── specs                     # 规范文档
│   └── init-aider-mcp-exp.md
├── src                       # 源代码目录
│   └── aider_mcp_server      # 服务器的主包
│       ├── __init__.py       # 包初始化程序
│       ├── __main__.py       # 服务器可执行文件的主入口点
│       ├── atoms             # 核心、可重用组件(纯函数)
│       │   ├── __init__.py
│       │   ├── data_types.py # 数据结构的 Pydantic 模型
│       │   ├── logging.py    # 自定义日志设置
│       │   ├── tools         # 单个工具实现
│       │   │   ├── __init__.py
│       │   │   ├── aider_ai_code.py # aider_ai_code 工具的逻辑
│       │   │   └── aider_list_models.py # list_models 工具的逻辑
│       │   └── utils.py      # 实用函数和常量(如默认模型)
│       ├── server.py         # MCP 服务器逻辑、工具注册、请求处理
│       └── tests             # 单元和集成测试
│           ├── __init__.py
│           └── atoms         # 原子层的测试
│               ├── __init__.py
│               ├── test_logging.py # 日志记录的测试
│               └── tools     # 工具的测试
│                   ├── __init__.py
│                   ├── test_aider_ai_code.py # AI 编码工具的测试
│                   └── test_aider_list_models.py # 模型列表工具的测试
  • src/aider_mcp_server: 包含主应用程序代码。
    • atoms: 包含基本构建块。这些被设计为纯函数或具有最小依赖性的简单类。
      • tools: 此处的每个文件都实现了特定 MCP 工具(aider_ai_codelist_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 目录结构的测试,确保每个组件(尤其是原子)按预期工作。

推荐服务器

Crypto Price & Market Analysis MCP Server

Crypto Price & Market Analysis MCP Server

一个模型上下文协议 (MCP) 服务器,它使用 CoinCap API 提供全面的加密货币分析。该服务器通过一个易于使用的界面提供实时价格数据、市场分析和历史趋势。 (Alternative, slightly more formal and technical translation): 一个模型上下文协议 (MCP) 服务器,利用 CoinCap API 提供全面的加密货币分析服务。该服务器通过用户友好的界面,提供实时价格数据、市场分析以及历史趋势数据。

精选
TypeScript
MCP PubMed Search

MCP PubMed Search

用于搜索 PubMed 的服务器(PubMed 是一个免费的在线数据库,用户可以在其中搜索生物医学和生命科学文献)。 我是在 MCP 发布当天创建的,但当时正在度假。 我看到有人在您的数据库中发布了类似的服务器,但还是决定发布我的服务器。

精选
Python
mixpanel

mixpanel

连接到您的 Mixpanel 数据。 从 Mixpanel 分析查询事件、留存和漏斗数据。

精选
TypeScript
Sequential Thinking MCP Server

Sequential Thinking MCP Server

这个服务器通过将复杂问题分解为顺序步骤来促进结构化的问题解决,支持修订,并通过完整的 MCP 集成来实现多条解决方案路径。

精选
Python
Nefino MCP Server

Nefino MCP Server

为大型语言模型提供访问德国可再生能源项目新闻和信息的能力,允许按地点、主题(太阳能、风能、氢能)和日期范围进行筛选。

官方
Python
Vectorize

Vectorize

将 MCP 服务器向量化以实现高级检索、私有深度研究、Anything-to-Markdown 文件提取和文本分块。

官方
JavaScript
Mathematica Documentation MCP server

Mathematica Documentation MCP server

一个服务器,通过 FastMCP 提供对 Mathematica 文档的访问,使用户能够从 Wolfram Mathematica 检索函数文档和列出软件包符号。

本地
Python
kb-mcp-server

kb-mcp-server

一个 MCP 服务器,旨在实现便携性、本地化、简易性和便利性,以支持对 txtai “all in one” 嵌入数据库进行基于语义/图的检索。任何 tar.gz 格式的 txtai 嵌入数据库都可以被加载。

本地
Python
Research MCP Server

Research MCP Server

这个服务器用作 MCP 服务器,与 Notion 交互以检索和创建调查数据,并与 Claude Desktop Client 集成以进行和审查调查。

本地
Python
Cryo MCP Server

Cryo MCP Server

一个API服务器,实现了模型补全协议(MCP),用于Cryo区块链数据提取,允许用户通过任何兼容MCP的客户端查询以太坊区块链数据。

本地
Python