安全Go启动模板

一个默认安全的Go启动模板,用于Model Context Protocol (MCP)服务器,支持流式HTTP,提供CORS白名单、请求体大小限制和可选的Bearer令牌认证等功能。

  • by TheodorNEngoy
  • Go
  • 本地部署
  • 更新于
在 GitHub 查看 TheodorNEngoy/mcp-secure-go-starter

使用说明

mcp安全启动程序

默认情况下,模型上下文协议(MCP)服务器的Go启动器是安全的(可流式传输HTTP)。

此模板的优先级:

  • 跨域资源共享 允许名单 (无通配符来源)
  • 请求车身尺寸限制
  • 可选的承载令牌身份验证
  • 默认情况下刀具表面积较小
  • CI门 mcp-safety-scanner

跑

先决条件:1.22+。

go run ./cmd/server

服务器正在监听 http://127.0.0.1:8000/ 并在 http://127.0.0.1:8000/healthz.

配置

复制 .env.example 到 .env 并导出shell中的值(此模板保持无依赖关系)。

关键环境变量:

  • MCP_CORS_ALLOW_ORIGINS:逗号分隔的同源列表
  • MCP_MAX_BODY_BYTES:请求大小限制(默认值:256KiB)
  • MCP_AUTH_TOKEN:如果设置,则需要 Authorization: Bearer ...

安全地添加工具

在添加工具之前:

  • 确定哪些输入可以被攻击者控制。
  • 添加严格的输入模式和分配列表。
  • 对大小/时间/记录施加严格限制。
  • 避免shell执行(sh -c, cmd /c等等)。