MCP Bridge

MCP Bridge

使基于云的 AI 服务能够访问基于本地 Stdio 的 MCP 服务器。

EvalsOne

研究与数据
访问服务器

README

MCP Connect

License: MIT

███╗   ███╗ ██████╗██████╗      ██████╗ ██████╗ ███╗   ██╗███╗   ██╗███████╗ ██████╗████████╗
████╗ ████║██╔════╝██╔══██╗    ██╔════╝██╔═══██╗████╗  ██║████╗  ██║██╔════╝██╔════╝╚══██╔══╝
██╔████╔██║██║     ██████╔╝    ██║     ██║   ██║██╔██╗ ██║██╔██╗ ██║█████╗  ██║        ██║   
██║╚██╔╝██║██║     ██╔═══╝     ██║     ██║   ██║██║╚██╗██║██║╚██╗██║██╔══╝  ██║        ██║   
██║ ╚═╝ ██║╚██████╗██║         ╚██████╗╚██████╔╝██║ ╚████║██║ ╚████║███████╗╚██████╗   ██║   
╚═╝     ╚═╝ ╚═════╝╚═╝          ╚═════╝ ╚═════╝ ╚═╝  ╚═══╝╚═╝  ╚═══╝╚══════╝ ╚═════╝   ╚═╝   

Anthropic 提出的模型上下文协议 (MCP) 非常棒。然而,大多数 MCP 服务器都构建在 Stdio 传输之上,虽然这非常适合访问本地资源,但限制了它们在基于云的应用程序中的使用。

MCP Connect 是一个旨在解决此问题的小工具:

  • 云集成:使基于云的 AI 服务能够与基于本地 Stdio 的 MCP 服务器交互
  • 协议转换:将 HTTP/HTTPS 请求转换为 Stdio 通信
  • 安全性:在保持控制的同时,提供对本地资源的安全访问
  • 灵活性:支持各种 MCP 服务器,无需修改其实现
  • 易于使用:只需在本地运行 MCP Connect,无需对 MCP 服务器进行任何修改
  • 隧道:内置 Ngrok 隧道支持

通过弥合这一差距,我们可以在基于云的 AI 应用程序中充分利用本地 MCP 工具的潜力,而不会影响安全性。

工作原理

+-----------------+     HTTPS/SSE      +------------------+      stdio      +------------------+
|                 |                    |                  |                 |                  |
|  Cloud AI tools | <--------------->  |  Node.js Bridge  | <------------>  |    MCP Server    |
|   (远程)      |       隧道      |    (本地)       |                 |     (本地)      |
|                 |                    |                  |                 |                  |
+-----------------+                    +------------------+                 +------------------+

前提条件

  • Node.js

快速开始

  1. 克隆存储库
    git clone https://github.com/EvalsOne/MCP-connect.git
    
    并进入目录
    cd MCP-connect
    
  2. 将 .env.example 复制到 .env 并配置端口和 auth_token:
    cp .env.example .env
    
  3. 安装依赖项:
    npm install
    
  4. 运行 MCP Connect
    # 构建 MCP Connect
    npm run build
    # 运行 MCP Connect
    npm run start
    # 或者,在开发模式下运行(支持 nodemon 的热重载)
    npm run dev
    

现在 MCP connect 应该在 http://localhost:3000/bridge 上运行。

注意:

  • 该桥旨在在本地计算机上运行,因此您仍然需要构建一个可以从云访问的本地 MCP 服务器的隧道。
  • 建议使用 Ngrok、Cloudflare Zero Trust 和 LocalTunnel 来构建隧道。

使用 Ngrok 隧道运行

MCP Connect 内置了对 Ngrok 隧道的支持。 要使用 Ngrok 通过公共 URL 运行桥接器:

  1. 从 https://dashboard.ngrok.com/authtokens 获取您的 Ngrok 身份验证令牌
  2. 添加到您的 .env 文件:
    NGROK_AUTH_TOKEN=your_ngrok_auth_token
    
  3. 使用隧道运行:
    # 带有隧道的生产模式
    npm run start:tunnel
    
    # 带有隧道的开发模式
    npm run dev:tunnel
    

MCP Connect 运行后,您可以在控制台中看到 MCP 桥接 URL。

API 端点

MCP Connect 运行后,将公开两个端点:

  • GET /health:健康检查端点
  • POST /bridge:用于接收来自云的请求的主桥接端点

例如,以下是官方 GitHub MCP 的配置:

{
  "command": "npx",
  "args": [
    "-y",
    "@modelcontextprotocol/server-github"
  ],
  "env": {
    "GITHUB_PERSONAL_ACCESS_TOKEN": "<your_github_personal_access_token>"
  }
}

您可以向桥发送如下请求,以列出 MCP 服务器的工具并调用特定工具。

列出工具:

curl -X POST http://localhost:3000/bridge \
     -d '{
       "method": "tools/list",
       "serverPath": "npx",
       "args": [
         "-y",
         "@modelcontextprotocol/server-github"
       ],
       "params": {},
       "env": {
         "GITHUB_PERSONAL_ACCESS_TOKEN": "<your_github_personal_access_token>"
       }
     }'

调用工具:

使用 search_repositories 工具搜索与 modelcontextprotocol 相关的存储库

curl -X POST http://localhost:3000/bridge \
     -d '{
       "method": "tools/call",
       "serverPath": "npx",
       "args": [
         "-y",
         "@modelcontextprotocol/server-github"
       ],
       "params": {
         "name": "search_repositories",
         "arguments": {
            "query": "modelcontextprotocol"
         },
       },
       "env": {
         "GITHUB_PERSONAL_ACCESS_TOKEN": "<your_github_personal_access_token>"
       }
     }'

身份验证

MCP Connect 使用简单的基于令牌的身份验证系统。 令牌存储在 .env 文件中。 如果设置了令牌,MCP Connect 将使用它来验证请求。

带有令牌的示例请求:

curl -X POST http://localhost:3000/bridge \
     -H "Authorization: Bearer <your_auth_token>" \
     -d '{
       "method": "tools/list",
       "serverPath": "npx",
       "args": [
         "-y",
         "@modelcontextprotocol/server-github"
       ],
       "params": {},
       "env": {
         "GITHUB_PERSONAL_ACCESS_TOKEN": "<your_github_personal_access_token>"
       }
     }'

配置

必需的环境变量:

  • AUTH_TOKEN:桥接 API 的身份验证令牌(可选)
  • PORT:HTTP 服务器端口(默认:3000,必需)
  • LOG_LEVEL:日志记录级别(默认:info,必需)
  • NGROK_AUTH_TOKEN:Ngrok 身份验证令牌(可选)

使用 ConsoleX AI 上的 MCP Connect 访问本地 MCP 服务器

以下是在 ConsoleX AI 上使用 MCP Connect 访问本地 MCP 服务器的演示:

MCP Connect Live Demo

许可证

MIT 许可证

推荐服务器

mixpanel

mixpanel

连接到您的 Mixpanel 数据。 从 Mixpanel 分析查询事件、留存和漏斗数据。

精选
TypeScript
Sequential Thinking MCP Server

Sequential Thinking MCP Server

这个服务器通过将复杂问题分解为顺序步骤来促进结构化的问题解决,支持修订,并通过完整的 MCP 集成来实现多条解决方案路径。

精选
Python
Crypto Price & Market Analysis MCP Server

Crypto Price & Market Analysis MCP Server

一个模型上下文协议 (MCP) 服务器,它使用 CoinCap API 提供全面的加密货币分析。该服务器通过一个易于使用的界面提供实时价格数据、市场分析和历史趋势。 (Alternative, slightly more formal and technical translation): 一个模型上下文协议 (MCP) 服务器,利用 CoinCap API 提供全面的加密货币分析服务。该服务器通过用户友好的界面,提供实时价格数据、市场分析以及历史趋势数据。

精选
TypeScript
MCP PubMed Search

MCP PubMed Search

用于搜索 PubMed 的服务器(PubMed 是一个免费的在线数据库,用户可以在其中搜索生物医学和生命科学文献)。 我是在 MCP 发布当天创建的,但当时正在度假。 我看到有人在您的数据库中发布了类似的服务器,但还是决定发布我的服务器。

精选
Python
Nefino MCP Server

Nefino MCP Server

为大型语言模型提供访问德国可再生能源项目新闻和信息的能力,允许按地点、主题(太阳能、风能、氢能)和日期范围进行筛选。

官方
Python
Vectorize

Vectorize

将 MCP 服务器向量化以实现高级检索、私有深度研究、Anything-to-Markdown 文件提取和文本分块。

官方
JavaScript
MCP Word Counter

MCP Word Counter

一个模型上下文协议服务器,提供用于分析文本文档的工具,包括字数和字符数统计。该服务器通过暴露简单的文档统计功能,帮助大型语言模型(LLM)执行文本分析任务。

本地
JavaScript
mcp-server-data-exploration

mcp-server-data-exploration

能够对基于 .csv 的数据集进行自主数据探索,以最少的精力提供智能洞察。

本地
Python
Claude MCP Server for USGS Quakes API

Claude MCP Server for USGS Quakes API

在 Claude Desktop 中提供对 USGS Quakes API 的访问,使用户能够通过自然语言查询检索地震数据和详细信息。

本地
JavaScript
Mathematica Documentation MCP server

Mathematica Documentation MCP server

一个服务器,通过 FastMCP 提供对 Mathematica 文档的访问,使用户能够从 Wolfram Mathematica 检索函数文档和列出软件包符号。

本地
Python