返回市场
MCP代理服务器

MCP代理服务器

作者:Kiran16894 星标更新:2025-07-28

项目介绍

MCP 客户端

一个模块化的Python客户端,用于连接到MCP服务器,集成Anthropic Claude,并提供基于FastAPI的API来处理查询和工具调用。

功能

  • MCP客户端:通过标准输入输出(stdio)连接到MCP服务器(Node或Python),协商可用工具并管理工具调用。
  • Claude AI集成:使用Anthropic Claude生成自然语言响应,并决定何时调用工具。
  • 工具调用:处理Claude与外部工具之间的多轮推理,返回结构化响应(如markdown、代码、图表数据)。
  • FastAPI服务器:提供HTTP API端点以供前端集成。
  • .env支持:从.env文件加载Anthropic API密钥和其他环境变量。
  • CORS支持:允许灵活的前端/后端开发。

安装

先决条件

  • Python 3.10+
  • 一个MCP服务器——例如mcp-node或其他兼容的Python或Node MCP服务器。
  • 一个Anthropic API密钥(用于Claude)。

克隆仓库

git clone https://github.com/Kiran1689/mcp-proxy-server
cd mcp-proxy-server

安装Python依赖项

建议使用虚拟环境:

python -m venv .venv
source .venv/bin/activate  # 在Windows上:.venv\Scripts\activate
uv sync

配置环境变量

在项目根目录创建一个.env文件:

ANTHROPIC_API_KEY=your-anthropic-api-key-here

使用方法

1. 启动你的MCP服务器

遵循你的MCP服务器的指令(例如NodeJS或Python)。 示例对于Node:

cd /path/to/mcp-node
npm install
npm run start

2. 运行FastAPI服务器

uvicorn client_server:app --reload

默认情况下,这将:

API端点

  • POST /query — 发送用户查询,接收来自Claude的结构化响应(可能调用工具)。
  • GET /tools — 列出可用的服务器工具。
  • GET /server-name — 返回服务器名称标识符。

3. 交互式本地客户端(CLI)

你可以运行交互式CLI进行直接实验:

python client.py

代码结构

  • client.py — 实现MCPClient:连接到MCP服务器,与Claude接口,管理对话状态,处理工具调用,并组织响应。
  • client_server.py — 启动FastAPI服务器,提供API端点,管理单个MCPClient实例。
  • pyproject.toml — Python打包和依赖项。

自定义

  • 你可以在client.py中更新Claude的系统提示,以控制格式、图表标准或代码输出。
  • 工具模式实时检测自你的MCP服务器。
  • 根据需要扩展或替换工具调用逻辑。

故障排除

  • 检查.env是否存在且包含你的Anthropic密钥。
  • 确保client.py中的服务器路径配置与你的MCP服务器匹配。
  • 查看服务器/控制台日志以获取调试信息,包括工具调用和Claude的响应。

许可证

MIT

欢迎贡献和问题报告!

随时提交拉取请求或提出问题。

Kiran用心构建