MCP代理服务

一个强大的Model Context Protocol (MCP)代理服务,提供对话生成、一键生成、可视化管理等功能,支持OpenAPI集成和实时流式响应。

  • by Shy2593666979
  • Python
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 Shy2593666979/mcp-proxy

使用说明

一个强大的 Model Context Protocol (MCP) 代理服务

功能特性 • 快速开始 • 使用指南 • API 文档 • 贡献指南


✨ 功能特性

🎯 核心功能

  • 🤝 对话生成 MCP - 通过智能对话引导,轻松创建和配置 MCP 服务
  • ⚡ 一键生成 MCP - 直接粘贴 OpenAPI JSON 配置,快速部署 MCP 服务
  • 📊 可视化管理 - 美观的 Web 界面,实时查看和管理所有 MCP 服务
  • 🔧 工具管理 - 直观展示每个 MCP 服务的工具列表和详细信息

🚀 技术亮点

  • 双传输协议支持 - SSE (Server-Sent Events) 和 Streamable HTTP
  • 实时流式响应 - 支持流式数据传输,提供流畅的用户体验
  • OpenAPI 集成 - 完全兼容 OpenAPI 3.1+ 规范
  • 主题切换 - 内置黑夜/白天主题,适应不同使用场景
  • 响应式设计 - 完美适配桌面和移动设备

✨效果展示

📦 快速开始

前置要求

  • Python 3.12 或更高版本
  • MySQL 数据库(可选)
  • Redis(可选)

安装步骤

  1. 克隆仓库
git clone https://github.com/shy2593666979/mcp-proxy.git
cd mcp-proxy
  1. 安装依赖

使用 uv(推荐):

uv sync

或使用 pip:

pip install -e .
  1. 配置环境

配置config.yaml文件并根据需要修改:

  1. 启动服务
uvicorn mcp_proxy.main:app --reload --host 0.0.0.0 --port 7080
  1. 访问界面

打开浏览器访问:http://localhost:7080


🎨 使用指南

对话生成 MCP

  1. 在主页点击 "对话生成 MCP" 卡片
  2. 在聊天界面描述你想要创建的 MCP 服务
  3. AI 助手会引导你完成配置过程
  4. 自动生成并注册 MCP 服务

一键生成 MCP

  1. 在主页点击 "一键生成 MCP" 卡片
  2. 在弹出的编辑器中粘贴 OpenAPI JSON 配置
  3. 点击 "创建 MCP" 按钮
  4. 系统自动解析并注册服务

OpenAPI 配置示例

{
  "openapi_schema": {
    "openapi": "3.1.0",
    "info": {
      "title": "My API",
      "version": "1.0.0",
      "description": "API description"
    },
    "paths": {
      "/users": {
        "get": {
          "summary": "Get users",
          "operationId": "getUsers",
          "responses": {
            "200": {
              "description": "Success"
            }
          }
        }
      }
    }
  },
  "name": "my_api",
  "transport": "sse",
  "description": "My custom API service"
}

管理 MCP 服务

  • 查看列表 - 主页下方展示所有已创建的 MCP 服务
  • 查看工具 - 鼠标悬停在工具按钮上,查看该服务的所有工具
  • 刷新列表 - 点击刷新按钮更新服务列表

📚 API 文档

核心端点

MCP 管理

  • POST /mcp/register - 注册新的 MCP 服务
  • GET /mcp/list - 获取所有 MCP 服务列表

任务管理

  • GET /task/list - 获取所有对话任务
  • POST /task/create - 创建新的对话任务
  • POST /task/delete - 删除指定任务

对话接口

  • POST /completion - 发送消息并获取流式响应

完整 API 文档

启动服务后访问:http://localhost:7080/docs


🏗️ 项目结构

mcp-proxy/
├── src/mcp_proxy/
│   ├── api/              # API 路由
│   │   ├── completion.py
│   │   ├── register_mcp.py
│   │   └── register_task.py
│   ├── core/             # 核心逻辑
│   │   ├── agent.py
│   │   ├── execute_tool.py
│   │   └── schema_converter.py
│   ├── database/         # 数据库层
│   │   ├── dao/
│   │   └── models/
│   ├── schemas/          # 数据模型
│   ├── service/          # 业务逻辑
│   └── main.py           # 应用入口
├── static/               # 前端资源
│   ├── index.html        # 主页
│   ├── chat.html         # 聊天页面
│   ├── index.js
│   └── chat.js
└── pyproject.toml        # 项目配置

🛠️ 技术栈

后端

  • FastAPI - 现代化的 Python Web 框架
  • SQLModel - SQL 数据库的 Python ORM
  • LangChain - AI 应用开发框架
  • OpenAI - AI 模型集成
  • SSE-Starlette - 服务器推送事件支持

前端

  • 原生 JavaScript - 无框架依赖,轻量高效
  • Marked.js - Markdown 渲染
  • CSS Variables - 主题系统

🤝 贡献指南

我们欢迎所有形式的贡献!

如何贡献

  1. Fork 本仓库
  2. 创建特性分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 开启 Pull Request

开发规范

  • 遵循 PEP 8 代码规范
  • 添加适当的注释和文档
  • 确保所有测试通过
  • 更新相关文档

📝 许可证

本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情


🙏 致谢