MCP服务器(Go)
模型上下文协议(MCP)服务器的Go实现,通过JSON-RPC接口提供数据库查询功能。
特性
- JSON-RPC 2.0协议的实现
- 用于实时通信的服务器发送事件(SSE)
- SQLite数据库集成
- 基于工具的可扩展功能架构
- 身份验证支持
可用工具
- 查询工具
- 对数据库执行SQL查询 - 以表格形式返回结果
- 列表表工具
- 列出数据库中的所有可用表
入门指南
先决条件
- 转到1.x
- SQLite3
安装
- 克隆存储库:
git clone
cd mcp_server_go- 安装依赖项:
go mod download配置
服务器使用简单的基于令牌的身份验证系统。在服务器配置中,预期的令牌被硬编码为“abcd”。
运行服务器
go run main.go服务器将在端口8777上启动。
API文档
认证
所有请求都必须包含一个Authorization标头,其格式为:
Authorization: Bearer 端点
1.根端点(/)
- 方法:GET
- 目的:建立服务器发送事件(SSE)连接
- 响应:返回消息通信的端点URL
2.消息端点(/messages/{sessionID})
- 方法:POST
- 目的:处理客户请求
- 支持的方法:
- initialize:初始化连接 - tools/list:列出可用工具 - tools/call:执行特定工具
示例用法
- 初始化连接:
{
"jsonrpc": "2.0",
"id": 1,
"method": "initialize",
"params": {}
}- 列出可用工具:
{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/list",
"params": {}
}- 执行查询:
{
"jsonrpc": "2.0",
"id": 3,
"method": "tools/call",
"params": {
"name": "query",
"arguments": {
"query": "SELECT * FROM your_table"
}
}
}项目结构
mcp_server_go/
├── main.go # Main server implementation
├── pkg/
│ ├── messages/ # Message structures
│ ├── methods/ # Request handling methods
│ └── tools/ # Tool implementations
└── mcp.db # SQLite database file