返回市场
麦克桥接API

麦克桥接API

作者:INQUIRELAB48 星标更新:2025-07-07

项目介绍

技术文档摘要

MCP Bridge API

一个轻量级、与大语言模型无关的REST代理,用于模型上下文协议服务器

<img src="./screenshot.png" alt="MCP Bridge 移动界面" width="650"/>

图:React Native MCP 代理界面显示聊天屏幕(左)和带有 MCP Bridge 连接状态及 Gemini API 配置的设置屏幕(右)

作者: Arash Ahmadi, Sarah S. Sharif, 和 Yaser M. Banad*
美国俄克拉荷马大学电气与计算机工程学院
*通讯作者:bana@ou.edu

MIT 许可证 arXiv

如果您希望在工作中引用此研究项目,请引用我们的论文:

@article{ahmadi2025mcp,
  title={MCP Bridge: 一个轻量级、与大语言模型无关的REST代理,用于模型上下文协议服务器},
  author={Ahmadi, Arash and Sharif, Sarah and Banad, Yaser M},
  journal={arXiv 预印本 arXiv:2504.08999},
  year={2025}
}

📋 目录

📚 简介

MCP Bridge 是一个轻量级、快速且与大语言模型无关的代理,它连接到多个模型上下文协议(MCP)服务器,并通过统一的 REST API 暴露它们的功能。它使任何平台上的客户端都能利用 MCP 功能,而无需执行过程约束。与 Anthropic 的官方 MCP SDK 不同,MCP Bridge 是完全独立的,设计用于与任何大语言模型后端一起工作,这使其具有适应性、模块化和未来性,适用于各种部署。通过可选的风险级别执行,它提供了细粒度的安全控制——从标准执行到确认工作流程和 Docker 隔离——同时保持与标准 MCP 客户端的向后兼容性。

补充这个服务器端基础设施的是两种不同的智能客户端实现:

  1. Python MCP-Gemini 代理 - 用于桌面环境的命令行 Python 客户端
  2. React Native MCP 代理 - 现代跨平台移动应用程序

这两个客户端都通过智能的大语言模型驱动接口实现了与 MCP 工具的自然语言交互,这些接口支持多步推理以处理复杂操作、安全确认工作流程处理以及增强可用性的可配置显示选项。MCP Bridge 的多功能服务器端能力和这些智能客户端界面共同创建了一个强大的生态系统,用于开发复杂的由大语言模型驱动的应用程序。

⚠️ 问题

  • 许多 MCP 服务器使用 STDIO 传输,需要本地进程执行
  • 边缘设备、移动设备、Web 浏览器和其他平台无法高效运行 npm 或 Python MCP 服务器
  • 在资源受限环境中直接连接 MCP 服务器是不切实际的
  • 多个隔离客户端连接到相同的服务器会导致冗余并增加资源使用
  • 直接与 MCP 工具交互需要特定工具格式和技术知识

🏗️ 架构

┌─────────────────┐     ┌─────────────────┐     ┌─────────────────┐
│  React Native   │     │     Python      │     │  其他客户端     │
│   MCP 代理      │     │  Gemini 代理    │     │                 │
└────────┬────────┘     └────────┬────────┘     └────────┬────────┘
         │                       │                       │
         │                       │                       │
         │                       ▼                       │
         │           ┌───────────────────────┐          │
         └──────────►│                       │◄─────────┘
                     │      REST API         │
                     │                       │
                     └───────────┬───────────┘
                                 │
                                 ▼
                     ┌───────────────────────┐
                     │                       │
                     │     MCP Bridge        │
                     │                       │
                     └───────────┬───────────┘
                                 │
                 ┌───────────────┼───────────────┐
                 │               │               │
                 ▼               ▼               ▼
        ┌─────────────┐  ┌─────────────┐  ┌─────────────┐
        │  MCP 服务器  │  │  MCP 服务器  │  │  MCP 服务器  │
        │    (STDIO)   │  │    (STDIO)   │  │    (SSE)     │
        └─────────────┘  └─────────────┘  └─────────────┘

💾 安装

📦 先决条件

  • 对于 MCP Bridge,需要 Node.js 18+
  • 对于 Python MCP-Gemini 代理,需要 Python 3.8+
  • 对于移动应用,需要 React Native 开发环境

🚀 快速设置

MCP Bridge

# 安装依赖
npm install express cors morgan uuid

# 启动服务器
node mcp-bridge.js

Python MCP-Gemini 代理

# 安装依赖
pip install google-generativeai requests rich

# 启动代理
python llm_test.py

React Native MCP 代理

# 导航到 React Native 应用目录
cd reactnative-gamini-mcp-agent

# 安装依赖
npm install

# 启动开发服务器
npx expo start

🐍 Python MCP-Gemini 代理

Python MCP-Gemini 代理是一个命令行客户端,它连接到 MCP Bridge 并使用 Google 的 Gemini 大语言模型来处理用户请求并执行 MCP 工具命令。它专为桌面环境和开发人员工作流设计。

主要功能

  1. 多步推理 - 支持顺序工具调用以处理复杂操作
  2. 安全确认流程 - 集成处理中等和高风险操作
  3. 灵活的 JSON 显示 - 控制 JSON 输出的详细程度以提高可读性
  4. 可配置连接 - 可连接到任何 MCP Bridge 实例,自定义 URL 和端口
  5. 发现可用工具 - 自动检测并使用连接服务器的所有工具

Python 代理配置

Python MCP-Gemini 代理支持几个命令行选项:

使用方法:llm_test.py [-h] [--hide-json] [--json-width JSON_WIDTH] [--mcp-url MCP_URL] [--mcp-port MCP_PORT]

MCP-Gemini 代理,具有可配置设置

选项:
  -h, --help            显示此帮助信息并退出
  --hide-json           隐藏工具执行的 JSON 结果
  --json-width JSON_WIDTH
                        JSON 输出的最大宽度(默认:100)
  --mcp-url MCP_URL     包括协议和端口的 MCP Bridge URL(默认:http://localhost:3000)
  --mcp-port MCP_PORT   覆盖 MCP Bridge URL 中的端口(默认:使用 --mcp-url 中的端口)

Python 代理使用示例

# 使用默认设置的基本用法
python llm_test.py

# 隐藏 JSON 结果以获得更干净的输出
python llm_test.py --hide-json

# 连接到自定义 MCP Bridge 服务器
python llm_test.py --mcp-url http://192.168.1.100:3000

# 连接到不同端口
python llm_test.py --mcp-port 4000

# 调整 JSON 宽度显示以获得更好的格式
python llm_test.py --json-width 120

📱 React Native MCP 代理

React Native MCP 代理是一个现代的跨平台移动应用程序,它通过简洁、用户友好的界面提供对 MCP 工具的直观访问。使用 Expo 和 React Native Paper 构建,它提供了一个暗主题的 Material Design 3 界面,优化了 iOS 和 Android 平台。

主要功能

  • 跨平台兼容性:运行在 iOS、Android 和 Web 平台上
  • 直观的聊天界面:自然语言交互,分段消息显示
  • 实时工具执行:MCP 工具调用的视觉反馈,可折叠的结果部分
  • 对话管理:持久的对话历史记录,带有 AI 生成的标题
  • 现代 UI/UX:带有玻璃形态效果和平滑动画的暗主题
  • 全面设置:轻松配置 MCP Bridge 连接和 Gemini API 设置
  • 安全集成:内置支持 MCP Bridge 的风险级别确认工作流程
  • 多模型支持:兼容多种 Gemini 模型,包括最新的 2.5 Flash 预览版

开始使用 React Native 应用

  1. 配置 MCP Bridge:在设置标签页中设置您的 MCP Bridge 服务器 URL
  2. 添加 Gemini API 密钥:输入您的 Google Gemini API 密钥以启用 AI 功能
  3. 选择模型:从可用的 Gemini 模型中选择,包括最新版本
  4. 开始聊天:开始与您的 MCP 工具进行自然语言对话

该应用会自动发现可用的 MCP 工具,并为复杂的多步操作提供上下文辅助。

⚙️ 配置

MCP Bridge 配置

MCP Bridge 通过项目根目录中的名为 mcp_config.json 的 JSON 文件进行配置。这是一个基本 MCP 配置示例:

{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-filesystem", "/path/to/directory"],
      "riskLevel": 2
    },
    "slack": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-slack"],
      "env": {
        "SLACK_BOT_TOKEN": "your-slack-token",
        "SLACK_TEAM_ID": "your-team-id"
      },
      "riskLevel": 1
    }
  }
}

🧪 API 使用

MCP Bridge 提供了一个干净且直观的 REST API 来与连接的服务器进行交互。以下是可用端点的分解:

📋 通用端点

端点方法描述
/serversGET列出所有连接的 MCP 服务器
/serversPOST启动一个新的 MCP 服务器
/servers/{serverId}DELETE停止并移除一个 MCP 服务器
/healthGET获取 MCP Bridge 的健康状态
/confirmations/{confirmationId}POST确认中等风险级别的请求执行

📌 服务器特定端点

端点方法描述
/servers/{serverId}/toolsGET列出特定服务器的所有工具
/servers/{serverId}/tools/{toolName}POST执行特定工具
/servers/{serverId}/resourcesGET列出所有资源
/servers/{serverId}/resources/{resourceUri}GET检索特定资源内容
/servers/{serverId}/promptsGET列出所有提示
/servers/{serverId}/prompts/{promptName}POST使用参数执行提示

🧪 示例请求

📂 读取目录(文件系统)

POST /servers/filesystem/tools/list_directory
Content-Type: application/json

{
  "path": "."
}

🧪 客户端特性

Python 代理特性

Python MCP-Gemini 代理提供:

  1. 多步推理 - 支持顺序工具调用以处理复杂操作
  2. 安全确认流程 - 集成处理中等和高风险操作
  3. 灵活的 JSON 显示 - 控制 JSON 输出的详细程度以提高可读性
  4. 可配置连接 - 可连接到任何 MCP Bridge 实例,自定义 URL 和端口
  5. 发现可用工具 - 自动检测并使用连接服务器的所有工具

React Native 代理特性

React Native MCP 代理提供:

  1. 对话管理 - 持久的聊天历史记录,带有 AI 生成的标题
  2. 分段消息显示 - 清晰分离文本响应和工具操作
  3. 实时工具执行 - 视觉反馈,可折叠的结果部分
  4. 安全确认 UI - 用于中等/高风险操作的原生确认对话框
  5. 多模型支持 - 支持多种 Gemini 模型,易于切换
  6. 跨平台 - 在 iOS、Android 和 Web 平台上运行
  7. 现代 Material Design - 暗主题,平滑动画和触觉反馈

🔐 风险等级

MCP Bridge 实现了一个可选的风险等级系统,提供了对服务器执行行为的控制。风险等级有助于管理在执行潜在敏感的 MCP 服务器操作时的安全性和资源问题。

风险等级分类

级别名称描述行为
1标准执行直接执行,无需确认
2需要确认客户端必须确认执行才能处理
3需要 Docker 执行服务器在隔离的 Docker 容器中运行

配置风险等级

风险等级是可选的,为了向后兼容。您可以在 mcp_config.json 中配置风险等级:

{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-filesystem", "/path/to/directory"],
      "riskLevel": 2
    },
    "slack": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-slack"],
      "env": {
        "SLACK_BOT_TOKEN": "your-slack-token",
        "SLACK_TEAM_ID": "your-team-id"
      },
      "riskLevel": 1
    },
    "github": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-github"],
      "env": {
        "GITHUB_TOKEN": "your-github-token"
      },
      "riskLevel": 3,
      "docker": {
        "image": "node:18",
        "volumes": ["/tmp:/tmp"],
        "network": "host"
      }
    }
  }
}

风险等级工作流程

低风险(级别 1)

  • 标准执行,无需额外步骤
  • 适合具有最小安全问题的操作
  • 当未指定风险等级时,默认行为

中风险(级别 2)

  1. 客户端发出工具执行请求
  2. 服务器响应包含确认 ID 的确认请求
  3. 客户端必须单独发出确认请求以继续
  4. 只有在确认后,服务器才会执行操作

Python MCP-Gemini 代理和 React Native 代理都会自动处理此确认流程,在需要时提示用户批准。

高风险(级别 3)

  • 服务器自动在隔离的 Docker 容器中运行
  • 为 MCP 服务器进程提供环境隔离
  • 需要安装并正确配置 Docker

📋 更新日志

最新更新

  • ✅ UV 包管理器支持:解决了加载基于 UV(Python)的 MCP 服务器的问题。MCP Bridge 现在可以正确初始化并通信使用 UV 包管理器的 Python MCP 服务器,解决了之前与基于 UV 的工具链的兼容性问题。

  • 📱 React Native MCP 代理:添加了一个全面的移动应用程序,具有:

    • 跨平台支持,适用于 iOS、Android 和 Web
    • 现代 Material Design 3 界面,带有暗主题
    • 智能对话管理,带有 AI 生成的标题
    • 实时工具执行,带有视觉反馈
    • 内置的安全确认工作流程
    • 支持多种 Gemini 模型,包括最新版本
  • 🔧 增强的工具执行:改进了所有客户端的多步推理能力

  • 🛡️ 安全改进:增强了风险等级确认流程,改善用户体验

  • 📊 更好的错误处理:更强大的错误处理和恢复机制

🌟 社区影响和认可

MCP Bridge 在人工智能和开发社区中获得了认可,被收录在学术研究、行业安全分析、专业讨论和技术出版物中。这些认可突显了我们轻量级、与大语言模型无关的代理解决方案的实际价值和现实世界的影响。

<img src="./assets/citations1 (837x224).png" alt="arXiv 研究论文引用" width="650"/>

*[被此论文引用:从提示注入