Token导航 LogoToken导航TokenDH.com
Go MCP SSE Proxy logo
AI代理stdio官方级别未说明来源级核验

Go MCP SSE Proxy

MCP Server

一个高性能的服务器发送事件(SSE)代理服务器,专为模型上下文协议(MCP)设计,提供实时通信、速率限制和安全功能。

工具数

0

提示词数

0

GitHub Stars

0

资源数

0
实时通信Go高性能

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

danpiths

提供方

danpiths

最后核验

2026/5/17 20:20

运行时

Docker

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

docker run -p 8000:8000 go-mcp-sse-proxy

详细介绍

转到MCP SSE代理

⚠️ 存档项目 由于持续存在的稳定性和可靠性问题,该项目已被存档,不再进行维护,因此不适合生产使用。代理在负载下表现出不可预测的行为,导致资源耗尽和服务中断,无法得到充分解决。 我建议使用我的 TypeScript MCP SSE代理 作为该项目的替代方案。

一种高性能的服务器发送事件(SSE)代理服务器,专为Go内置的模型上下文协议(MCP)而设计。该代理实现了MCP客户端和服务器之间的高效实时通信,同时提供速率限制、安全功能和流程管理。

特性

  • 🚀 用于MCP通信的高性能SSE代理
  • 🔒 内置安全头和身份验证中间件
  • ⚡ 具有可配置阈值的速率限制
  • 🔄 处理MCP服务器实例的流程管理
  • 📝 可配置的日志记录级别
  • 🛡️ 优雅的停机处理
  • 🐳 Docker支持多阶段构建
  • 🚀 Fly.io部署配置

先决条件

  • 达到1.24.2或更高
  • Docker(用于容器化部署)
  • Node.js和npm(用于超级网关依赖)

安装

地方发展

  1. 克隆存储库:
git clone https://github.com/danpiths/go-mcp-sse-proxy.git
cd go-mcp-sse-proxy
  1. 安装依赖项:
go mod download
  1. 构建项目:
go build -o out ./cmd/proxy

Docker部署

构建Docker镜像:

docker build -t go-mcp-sse-proxy .

运行容器:

docker run -p 8000:8000 go-mcp-sse-proxy

配置

环境变量

  • LOG_LEVEL:设置日志记录级别(调试、信息、警告、错误)
  • MAXIM_SECRET:身份验证所需的密钥
  • 可以配置其他环境变量进行身份验证和速率限制

速率限制

默认速率限制设置为:

  • 每分钟100个请求
  • 突发限制为10个请求

您可以在中修改这些值 cmd/proxy/main.go:

rateLimiter := ratelimit.NewRateLimiter(rate.Limit(100.0/60.0), 10)

流程管理

流程管理器使用中的可配置设置处理MCP服务器实例 internal/config/config.go.

命令执行安全

为了防止远程代码执行,代理实现了严格的命令白名单:

  • 只有预先批准的命令 internal/config/config.go 可以执行
  • 环境变量受黑名单保护,以防止覆盖敏感数据
  • 每个命令都必须在 AllowedCommands 地图

添加新命令

要添加对新命令的支持,请执行以下操作:

  1. 打开 internal/config/config.go
  2. 将您的命令添加到 AllowedCommands 地图:
var AllowedCommands = map[string]string{
    "your-command-string": "your-command-string",
    // ... existing commands ...
}

注意:命令字符串必须精确,键和值应相同。

API终点

此代理实现了标准的MCP SSE协议,并进行了额外的授权标头检查以确保安全性。这 /health 端点可用于监视服务状态。

连接到MCP服务器

部署代理服务器后,如何连接到代理服务器:

  1. 设置环境变量(如果需要):

- 使用添加任何必需的环境变量 ENV_ 请求标头中的前缀 - 示例:对于GitHub MCP服务器,设置 ENV_GITHUB_PERSONAL_ACCESS_TOKEN 头球

  1. 进行SSE连接:

- URL格式: https:////sse - 所需标题:

     Authorization: Bearer 

示例:Context7 MCP服务器

使用官方的MCP TypeScript SDK:

import { Client } from "@modelcontextprotocol/sdk/client/index.js";
import { SSEClientTransport } from "@modelcontextprotocol/sdk/client/sse.js";

const client = new Client({
  name: "example-client",
  version: "1.0.0",
});

const transport = new SSEClientTransport(new URL("https:///npx%20-y%20%40upstash%2Fcontext7-mcp%40latest/sse"), {
  requestInit: {
    headers: {
      Authorization: `Bearer ${process.env.MAXIM_SECRET}`,
    },
  },
  eventSourceInit: {
    fetch: (url, init) => {
      return fetch(url, {
        ...init,
        headers: init?.headers
          ? {
              ...(init?.headers ?? {}),
              ...{
                Authorization: `Bearer ${process.env.MAXIM_SECRET}`,
              },
            }
          : {
              Authorization: `Bearer ${process.env.MAXIM_SECRET}`,
            },
      });
    },
  },
});

await client.connect(transport);

注意:Context7 MCP服务器不需要任何额外的环境变量。

部署

Fly.io部署

该项目包括Fly.io配置。要部署,请执行以下操作:

  1. 仅限首次设置:
fly launch  # Important: Select 'Y' when asked to copy the configuration (fly.toml) to the new app
  1. 对于所有部署:
./deploy.sh

发展

项目结构

.
├── cmd/
│   └── proxy/          # Main application entry point
├── internal/
│   ├── config/         # Configuration management
│   ├── handlers/       # HTTP handlers and middleware
│   ├── process/        # Process management
│   └── ratelimit/      # Rate limiting implementation
├── pkg/
│   └── logger/         # Logging utilities
├── Dockerfile          # Multi-stage Docker build
├── fly.toml            # Fly.io deployment configuration
└── go.mod             # Go module definition

贡献

  1. 分叉存储库
  2. 创建功能分支
  3. 提交您的更改
  4. 推到分支
  5. 创建新的Pull请求

许可证

此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。

致谢

目录标签

目录标签

实时通信Go高性能本地部署速率限制安全代理MCP协议

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

token

运行时(runtime,运行环境)

Docker

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiotoken部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP