AI代码生成服务器

一个基于Aider的AI代码生成服务器,提供标准化API接口,支持多模型选择和灵活配置,适用于开发效率提升和代码生成任务。

  • by danielscholl
  • Python
  • 本地部署
  • 3 星标
  • 更新于
在 GitHub 查看 danielscholl/aider-mcp-server

使用说明

MCP服务器助手

使用Aider提供AI编码功能的机器认知协议(MCP)服务器。

目录

概述

该MCP服务器利用Aider,一个强大的人工智能编码助手,通过标准化的API提供编码功能。通过将工作分散地卸载给Aider,我们可以降低成本,同时使用特定于模型的功能通过多个专注的LLM调用创建更可靠的代码。

特性

  • AI代码生成:使用Aider运行一次性编码任务以添加、修复或增强代码
  • 模型选择:查询可用模型,为您的任务选择最合适的模型
  • 灵活的配置:使用可自定义的设置配置Aider会话
  • 多运输支持:通过服务器发送事件(SSE)或stdio运行,以实现灵活集成
  • 一般问题解答:使用简单的提示提出法学硕士问题

先决条件

  • python:3.10或更高
  • 程序包管理器:uv(推荐)或pip
  • API密钥:根据您要使用的模型,您需要API密钥用于:
    • OpenAI(适用于GPT模型)
    • 拟人化(适用于克劳德模特)
    • 谷歌(适用于双子座车型)

安装

  1. 克隆存储库:

    git clone https://github.com/your-username/aider-mcp.git
    cd aider-mcp
    
  2. 安装软件包:

    uv sync
    uv venv
    uv pip install -e .
    
  3. 运行测试以确保一切正常:

    uv run pytest
    

配置

使用环境变量配置服务器行为 .env 文件:

# Create environment file from example
cp .env.example .env

编辑 .env 文件以配置传输、主机、端口和API密钥。

变量 描述 默认值 必填
TRANSPORT 传输协议(sse或stdio) sse 没有
HOST 使用SSE传输时要绑定的主机 0.0.0.0 没有
PORT 使用SSE传输时要监听的端口 8050 没有
OPENAI_API_KEY 用于OpenAI模型的API密钥 *
ANTHROPIC_API_KEY 人类模型的API密钥 *
GEMINI_API_KEY 适用于Google Gemini模型的API密钥 *

*仅当使用该提供商的型号时才需要

命令行选项

  • --editor-model:用于编辑的模型(默认值:gemini/jemini-2.5-pro-exp-03-25)
  • --architect-model:用于架构规划的模型(可选)
  • --cwd:当前工作目录(默认:当前目录)

运行服务器

启动服务器(SSE模式)

# Using the module directly
uv run python -m aider_mcp_server

或者使用自定义设置:

uv run python -m aider_mcp_server --editor-model "gemini/gemini-2.5-pro-exp-03-25" --cwd "/path/to/project"

您应该看到类似于以下内容的输出:

Starting server with transport: sse
Using SSE transport on 0.0.0.0:8050

使用stdio模式

使用stdio模式时,您不需要单独启动服务器——正确配置后,MCP客户端将自动启动它(请参阅 与MCP客户端集成).

MCP工具

Aider MCP服务器提供以下工具:

ai_code

运行Aider执行编码任务。

参数:

  • ai_coding_prompt:AI编码任务的提示
  • relative_editable_files:可编辑的文件列表
  • relative_readonly_files:(可选)应为只读的文件列表
  • settings:(可选)助手会话的设置

例子:

{
  "ai_coding_prompt": "Add a function that calculates the factorial of a number",
  "relative_editable_files": ["math.py"],
  "settings": {
    "auto_commits": false,
    "use_git": false
  }
}

get_models

列出按子字符串筛选的可用Aider模型。

参数:

  • substring:通过以下方式过滤模型

例子:

{
  "substring": "openai"
}

ask_问题

向LLM发送提示并返回响应。

参数:

  • prompt:要发送的问题或声明
  • model:(可选)要使用的LLM模型

例子:

{
  "prompt": "What is the capital of France?",
  "model": "gpt-4o"
}

与MCP客户端集成

配置您的MCP客户端以连接到SSE端点:

{
  "mcpServers": {
    "aider-mcp-server": {
      "transport": "sse",
      "serverUrl": "http://localhost:8050/sse"
    }
  }
}

标准集成

配置您的MCP客户端以通过stdio运行服务器:

{
  "mcpServers": {
    "aider-mcp-server": {
      "transport": "stdio",
      "command": "python",
      "args": ["-m", "aider_mcp_server"],
      "env": {
        "TRANSPORT": "stdio"
      }
    }
  }
}

与MCP客户端集成

使用Docker

{
    "mcpServers": {
      "aider-mcp-server": {
        "command": "docker",
        "args": [ "run", "-i", "--rm",
          "--mount", "type=bind,source=<YOUR_FULL_PATH>",
          "-e", "TRANSPORT=stdio",
          "-e", "EDITOR_MODEL=gemini/gemini-2.5-pro-preview-03-25",
          "-e", "GEMINI_API_KEY=<YOUR_API_KEY>",
          "danielscholl/aider-mcp-server"
        ]
      }
    }
  }