MCP HTTP Proxy
MCP HTTP 代理
通过 HTTP/SSE 传输将任何基于 stdio 的 MCP 服务器(如 @browsermcp/mcp)暴露到互联网。非常适合需要通过网络访问 MCP 工具的远程代理。
功能特性
🌐 标准 MCP SSE 传输 - 遵循 MCP HTTP 传输规范
🔐 API 密钥认证 - 使用 Bearer 令牌进行安全访问
🚀 多种暴露选项 - Tailscale、ngrok、Cloudflare Tunnel
🔄 会话管理 - 支持多个并发会话
📦 适用于任何 MCP 服务器 - 默认为
@browsermcp/mcp
Related MCP server: MCP SSE Proxy
快速入门
1. 安装依赖
npm install2. 配置(可选)
cp .env.example .env
# Edit .env to set your API key生成一个安全的 API 密钥:
node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"3. 构建并运行
npm run build
npm start或者用于开发:
npm run devAPI 端点(标准 MCP SSE 传输)
端点 | 方法 | 描述 |
| GET | 建立 SSE 连接(返回端点 URL) |
| POST | 发送 JSON-RPC 消息 |
| GET | 健康检查(无需认证) |
| GET | 列出活动会话(需要认证) |
暴露到互联网
选项 1:Tailscale(推荐用于私有访问)
Tailscale 提供安全、私有的访问,无需暴露到公共互联网。
# Install Tailscale if not already installed
# Then serve via Tailscale
tailscale serve --bg --http 3000或者直接使用您的 Tailscale IP:
tailscale status # Find your Tailscale IP您的 MCP 服务器将可以通过以下方式访问:
https://your-machine.tailnet-name.ts.net(通过 serve)http://your-tailscale-ip:3000(直接 IP)
从您的代理中使用:
{
"mcpServers": {
"browser-remote": {
"url": "http://your-tailscale-ip:3000/sse",
"headers": {
"Authorization": "Bearer your-api-key"
}
}
}
}选项 2:ngrok(公共 URL)
# Install ngrok if not already installed
ngrok http 3000ngrok 将提供一个类似 https://abc123.ngrok.io 的公共 URL。
选项 3:Cloudflare Tunnel
# Install cloudflared if not already installed
cloudflared tunnel --url http://localhost:3000SSE 传输的工作原理
客户端 GET
/sse- 服务器创建会话,发送带有消息 URL 的endpoint事件客户端 POST 到
/message?sessionId=xxx- 服务器将 JSON-RPC 转发给 MCP 进程服务器流式传输响应 - MCP 响应作为 SSE
message事件发送
使用示例
测试健康检查
curl http://localhost:3000/health响应:
{
"status": "healthy",
"sessions": 0,
"uptime": 10.5,
"transport": "sse",
"endpoints": {
"sse": "/sse (GET - establishes SSE connection)",
"message": "/message?sessionId=xxx (POST - send JSON-RPC messages)"
}
}通过 SSE 连接(JavaScript)
const eventSource = new EventSource('http://localhost:3000/sse', {
headers: { 'Authorization': 'Bearer your-api-key' }
});
eventSource.addEventListener('endpoint', (e) => {
console.log('Message endpoint:', e.data);
// e.data = "/message?sessionId=xxx"
});
eventSource.addEventListener('message', (e) => {
console.log('MCP response:', JSON.parse(e.data));
});发送 MCP 请求
curl -X POST "http://localhost:3000/message?sessionId=your-session-id" \
-H "Authorization: Bearer your-api-key" \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'配置
环境变量 | 描述 | 默认值 |
| 服务器端口 |
|
| 绑定的主机 |
|
| 用于认证的 API 密钥 | (无) |
| 运行 MCP 服务器的命令 |
|
| 参数的 JSON 数组 |
|
使用不同的 MCP 服务器
您可以将此代理与任何基于 stdio 的 MCP 服务器一起使用:
# Example: Use a custom MCP server
MCP_COMMAND=node
MCP_ARGS=["/path/to/your/mcp-server/dist/index.js"]
# Example: Use Python MCP server
MCP_COMMAND=python
MCP_ARGS=["-m", "your_mcp_server"]安全注意事项
暴露到互联网时务必使用 API 密钥认证
使用 HTTPS(Tailscale、ngrok 和 Cloudflare 都提供此功能)
推荐使用 Tailscale 进行 tailnet 内的私有访问
定期轮换 API 密钥
通过
/sessions端点监控会话
故障排除
MCP 服务器无法启动
检查控制台日志以获取错误信息。MCP 服务器的 stderr 会转发到代理的控制台。
连接被拒绝
确保服务器正在运行:
curl http://localhost:3000/health检查 Tailscale 连接状态:
tailscale status
认证失败
检查
.env中的 API 密钥是否与您的请求头匹配确保 Authorization 请求头中包含 "Bearer " 前缀
SSE 不工作
确保您连接的是
/sse端点(而不是基础 URL)检查 GET 请求中是否也发送了 Authorization 请求头
许可证
MIT
This server cannot be deployed
Maintenance
Related MCP Connectors
Remote MCP server exposing SMI Aware tools, resources, and skills over Streamable HTTP.
Remote MCP server exposing your Node Command fleet (files, shell, processes, browser) to AI hosts.
1Remote MCP server for supportsheep: run AI interviews and manage support content for your blog.
Streamable HTTP MCP server exposing planner flows, tasks, and squads.
Related MCP Servers
- AlicenseAqualityBmaintenanceEnables interaction with remote MCP servers using SSE transport instead of STDIO for enhanced communication capabilities.1200,973 PyPI2,779PythonMIT
- FlicenseNot gradedqualityNot gradedmaintenanceBridges STDIO-based MCP clients with SSE-based MCP servers, allowing applications like Claude Desktop to connect to remote MCP servers that use SSE transport.9-
- FlicenseNot gradedqualityDmaintenanceExposes a local MCP server via ngrok with SSE and Streamable HTTP transports for use in Kiro Web.-
- FlicenseNot gradedqualityDmaintenanceA standalone MCP server that exposes API endpoints as tools for AI assistants, using SSE transport.-