返回市场
ACP-MCP服务器

ACP-MCP服务器

作者:GongRzhe12 星标更新:2025-06-18

项目介绍

ACP-MCP-Server

PyPI 版本 Python 3.11+ 许可证: MIT

一个桥接服务器,连接**代理通信协议(ACP)代理与模型上下文协议(MCP)**客户端,实现基于ACP的AI代理与兼容MCP工具(如Claude Desktop)之间的无缝集成。

✨ 功能特性

  • 🔄 协议桥接:无缝连接ACP代理与MCP客户端
  • 🚀 多种传输方式:支持STDIO、SSE和可流式传输的HTTP
  • 🤖 代理发现:自动发现并注册ACP代理
  • 🧠 智能路由:智能地将请求路由到合适的代理
  • 🔄 异步支持:完全支持同步和异步操作
  • 💬 交互会话:支持多轮次的代理交互
  • 🌐 多模态处理:处理文本、图像及其他内容类型

🚀 快速开始

安装

# 从PyPI安装
pip install acp-mcp-server

# 或使用uvx进行隔离执行
uvx acp-mcp-server

基础用法

# 使用STDIO运行(默认,适用于Claude Desktop)
acp-mcp-server

# 使用SSE传输方式运行
acp-mcp-server --transport sse --port 8000

# 使用HTTP传输方式运行
acp-mcp-server --transport streamable-http --host 0.0.0.0 --port 9000

# 连接到不同的ACP服务器
acp-mcp-server --acp-url http://localhost:8001

与Claude Desktop配合使用

在你的Claude Desktop配置中添加:

{
  "mcpServers": {
    "acp-bridge": {
      "command": "uvx",
      "args": ["acp-mcp-server"]
    }
  }
}

📋 要求

  • Python 3.11+
  • 运行带有代理的ACP服务器
  • FastMCP用于协议实现

🔧 配置

环境变量

  • ACP_BASE_URL:ACP服务器URL(默认值:http://localhost:8000

命令行选项

用法: acp-mcp-server [-h] [--transport {stdio,sse,streamable-http}] [--host HOST] [--port PORT] [--path PATH] [--acp-url ACP_URL] [--version]

选项:
  -h, --help            显示此帮助信息并退出
  --transport {stdio,sse,streamable-http}
                        传输协议(默认值:stdio)
  --host HOST           HTTP传输的主机地址(默认值:127.0.0.1)
  --port PORT           HTTP传输的端口号(默认值:8000)
  --path PATH           HTTP传输的URL路径(默认值:/mcp)
  --acp-url ACP_URL     ACP服务器URL(默认值:http://localhost:8000)
  --version             显示程序版本号并退出

🛠️ 可用工具

桥接服务器提供多个MCP工具:

代理管理

  • discover_acp_agents:发现可用的ACP代理
  • get_agent_info:获取特定代理的详细信息

代理执行

  • run_acp_agent:以同步或异步模式执行代理
  • get_async_run_result:从异步执行中检索结果
  • list_active_runs:列出所有活跃的代理运行

智能路由

  • smart_route_request:智能地将请求路由到最佳代理
  • test_routing:测试路由逻辑而不执行
  • add_routing_rule:添加自定义路由规则
  • list_routing_strategies:查看所有路由策略

交互会话

  • start_interactive_agent:启动交互代理会话
  • provide_user_input:向等待中的代理提供输入
  • list_pending_interactions:查看待处理的交互

消息处理

  • convert_acp_message:在ACP和MCP格式之间转换消息
  • analyze_message_content:分析消息结构和内容

🏗️ 架构

┌─────────────────┐    ┌─────────────────┐    ┌─────────────────┐
│   MCP 客户端    │    │  ACP-MCP 桥接  │    │   ACP 代理      │
│ (Claude Desktop)│◄──►│     服务器      │◄──►│ (回声、聊天、    │
│                 │    │                 │    │  翻译...)       │
└─────────────────┘    └─────────────────┘    └─────────────────┘
       │                         │                       │
   MCP 协议            协议桥接          ACP 协议
  (STDIO/SSE/HTTP)    (FastMCP + aiohttp)    (HTTP/WebSocket)

🔌 传输模式

STDIO(默认)

适合与Claude Desktop集成:

acp-mcp-server

SSE(服务器发送事件)

适用于Web应用和流媒体:

acp-mcp-server --transport sse --port 8000

可流式传输的HTTP

适用于REST API集成:

acp-mcp-server --transport streamable-http --port 9000

🐳 Docker

使用Docker快速开始

# 构建镜像
docker build -t acp-mcp-server .

# 使用可流式传输的HTTP传输方式运行
docker run -p 9000:9000 acp-mcp-server

# 使用SSE传输方式运行
docker run -p 8000:8000 acp-mcp-server \
  --transport sse --host 0.0.0.0 --port 8000

# 连接到自定义的ACP服务器
docker run -p 9000:9000 -e ACP_BASE_URL=http://my-acp-server:8001 acp-mcp-server

使用Docker Compose

# 运行HTTP传输服务
docker-compose up acp-mcp-http

# 运行SSE传输服务
docker-compose up acp-mcp-sse

# 同时运行两个服务
docker-compose up

# 在开发模式下运行,实时代码重载
docker-compose --profile dev up acp-mcp-dev

生产Docker镜像

对于生产部署,请使用多阶段Dockerfile:

# 构建生产镜像
docker build -f Dockerfile.prod -t acp-mcp-server:prod .

# 运行生产容器
docker run -d \
  --name acp-mcp-server \
  --restart unless-stopped \
  -p 9000:9000 \
  -e ACP_BASE_URL=http://your-acp-server:8000 \
  acp-mcp-server:prod

🤝 贡献

欢迎贡献!请随时提交Pull Request。

📄 许可证

本项目采用MIT许可证——详情见LICENSE文件。

🔗 相关项目

📞 支持