使用说明
转到MCP服务器
A. 模型上下文协议(MCP) Go中的服务器实现,通过工具、资源和提示提供茶信息。
备注:本项目仅供学习之用。我从头开始构建了这个MCP服务器,以理解模型上下文协议规范。对于生产使用,考虑使用 mcp走 或者等待官方MCP Go SDK发布(预计2025年6月底)。
此MCP服务器,尤其是 mcp 包,是在帮助下编写的 克劳德代码 使用最新版本的 MCP规范 (2025-06-21).
特性
- 符合MCP 2025-03-26规范
- 多个传输:
stdio(默认),http与SSE合作 - 茶叶收藏:8种优质茶(绿茶、红茶、乌龙茶、白茶)
- 完整的MCP功能:工具、资源和提示
快速开始
# Build the binary
go build ./cmd/go-mcp-server
# Run with stdio transport (default)
./go-mcp-server
# Run with HTTP transport
./go-mcp-server -transport http -port 8080
# Test with MCP Inspector
echo '{"jsonrpc":"2.0","method":"initialize","id":1}' | ./go-mcp-server
用法
服务器二进制文件接受几个命令行参数来配置其行为:
./go-mcp-server [options]
命令行参数
| 参数 | 类型 | 默认值 | 描述 |
|---|---|---|---|
-transport |
字符串 | stdio |
要使用的传输协议(stdio 或 http) |
-port |
int | 8080 |
HTTP服务器端口(仅与 -transport http) |
-request-timeout |
持续时间 | 30s |
等待请求处理的最长时间 |
-shutdown-timeout |
持续时间 | 10s |
等待正常关机的最长时间 |
-log-level |
字符串 | info |
日志级别(debug, info, warn, error) |
-log-json bool的。 false |
以JSON格式输出日志 | ||
-server-name |
字符串 | MCP Server |
初始化时返回服务器名称 |
-server-version |
字符串 | 1.0.0 |
初始化时返回服务器版本 |
例子
# Default stdio transport with debug logging
./go-mcp-server -log-level debug
# HTTP transport on custom port with JSON logs
./go-mcp-server -transport http -port 9000 -log-json
# Custom timeouts for production use
./go-mcp-server -transport http -request-timeout 60s -shutdown-timeout 30s
# Custom server identification
./go-mcp-server -server-name "My Tea Server" -server-version "2.0.0"
MCP能力
工具
getTeaNames-列出所有可用的茶getTeaInfo-获取详细的茶叶信息和冲泡说明getTeasByType-按类型过滤茶(绿茶、红茶、乌龙茶、白茶)
资源
menu://tea-完整的茶叶收藏,包括价格和细节
鼓励
tea_recommendation-基于情绪/偏好的个性化推荐brewing_guide-特定茶的详细冲泡说明tea_pairing-食物搭配建议
茶叶收藏示例
尝试以下命令来探索茶叶收藏:
# List all available teas
echo '{"jsonrpc":"2.0","method":"tools/call","id":1,"params":{"name":"getTeaNames","arguments":{}}}' | ./go-mcp-server
# Get information about a specific tea
echo '{"jsonrpc":"2.0","method":"tools/call","id":2,"params":{"name":"getTeaInfo","arguments":{"name":"earl-grey"}}}' | ./go-mcp-server
# Get all oolong teas
echo '{"jsonrpc":"2.0","method":"tools/call","id":3,"params":{"name":"getTeasByType","arguments":{"type":"Oolong Tea"}}}' | ./go-mcp-server
# Read the complete tea menu resource
echo '{"jsonrpc":"2.0","method":"resources/read","id":4,"params":{"uri":"menu://tea"}}' | ./go-mcp-server
# Get a brewing guide for gyokuro
echo '{"jsonrpc":"2.0","method":"prompts/get","id":5,"params":{"name":"brewing_guide","arguments":{"tea_name":"gyokuro"}}}' | ./go-mcp-server
Web用户界面
使用HTTP传输时,根路径上有一个web状态页(/)服务器的。此页面显示服务器信息、活动会话和可用终结点。
MCP客户端配置
克劳德桌面/VS代码/其他MCP客户端
将此配置添加到MCP客户端设置中:
{
"mcpServers": {
"tea": {
"command": "podman",
"args": ["run", "-i", "--rm", "ghcr.io/cbrgm/go-mcp-server:v1"]
}
}
}
对于本地开发,您还可以使用:
{
"mcpServers": {
"tea": {
"command": "go",
"args": ["run", "./cmd/go-mcp-server"],
"cwd": "/path/to/go-mcp-server"
}
}
}
MCP检验员测试
- 安装:
npm install -g @modelcontextprotocol/inspector - 开始:
npx @modelcontextprotocol/inspector - 使用命令连接:
go run ./cmd/go-mcp-server
许可证
Apache 2.0