一个基于 Go 的 MCP (Model Context Protocol) 服务器实现,使用 Gin 框架提供 HTTP 服务。
mcp-server/
├── cmd/ # 应用程序入口点
│ └── main.go # 主程序文件
├── config/ # 配置管理
│ └── config.go # 配置加载和管理
├── handlers/ # 请求处理器
│ └── hello.go # Hello World 工具处理器
├── server/ # 服务器相关代码
│ ├── server.go # 服务器管理
│ ├── http/ # HTTP 服务器
│ │ └── server.go # Gin 路由和中间件
│ └── mcp/ # MCP 相关
│ └── tools.go # MCP 工具管理
├── go.mod # Go 模块定义
├── go.sum # Go 模块依赖锁定
└── README.md # 项目说明
项目使用 godotenv 管理环境变量。你可以通过以下两种方式配置服务器:
-
复制
.env.example文件为.env:cp .env.example .env
-
根据需要修改
.env文件中的配置值
可以通过以下环境变量配置服务器:
SERVER_NAME: 服务器名称(默认: "Demo 🚀")SERVER_VERSION: 服务器版本(默认: "1.0.0")PORT: 服务器端口(默认: "8080")HOST: 服务器主机(默认: "0.0.0.0")GIN_MODE: Gin 运行模式(默认: "release")
注意:如果同时设置了
.env文件和环境变量,环境变量的值将优先使用。
# 进入项目目录
cd mcp-server
# 运行服务器
go run cmd/main.go服务器将在 http://localhost:8080 启动。
GET /: 服务器欢迎信息GET /health: 健康检查GET /sse: SSE 连接端点POST /message: 消息处理端点
- 在
handlers/目录下创建新的处理器文件 - 在
server/mcp/tools.go中添加工具定义 - 在
cmd/main.go中注册新的工具
在 config/config.go 中添加新的配置项,并使用环境变量进行配置。