温度MCP服务器示例
该项目演示了如何在Go中构建一个简单的MCP(模型上下文协议)服务器,为给定位置提供温度数据。服务器暴露了一个 get_temperature 该工具通过MCP将请求代理到底层HTTP温度服务。
特性
- 使用以下工具实现MCP服务器
mark3labs/mcp-go图书馆。 - 注册工具(
get_temperature)接受alocation参数。 - 将温度请求代理到本地或远程HTTP服务。
- 用于教育目的的文档化代码。
项目结构
main.go:主要入口点。设置MCP服务器,注册工具,并实现处理程序逻辑。go.mod,go.sum:转到依赖关系管理的模块文件。
用法
先决条件
- 转到1.18或更高版本
- 本地运行的HTTP温度服务
http://localhost:8080/temperature?location=(您可以使用自己的实现或 go温度服务器)
运行MCP服务器
- 克隆存储库或将源文件复制到Go工作区。
- 安装依赖项:
go mod tidy- 构建MCP服务器:
go build -o mcp-temperature-server main.go- 确保您的HTTP温度服务正在端口8080上运行。
- 启动MCP服务器:
./mcp-temperature-server示例请求
您可以使用MCP兼容的客户端或集成来调用 get_temperature 带有位置参数的工具,例如:
{
"tool": "get_temperature",
"params": { "location": "Chapel Hill" }
}示例响应
响应将以纯文本形式呈现,包含一个带有位置和温度的JSON对象:
Temperature for Chapel Hill: {"location":"Chapel Hill","temperature":18.25}______________________________________________________________________
示例 mcp_config.json 用于Windsurf IDE
要将此项目与Windsurf IDE一起使用,请创建 .codeium/windsurf/mcp_config.json 主目录(或项目根目录)中包含以下内容的文件:
{
"mcpServers": {
"temperature": {
"command": "./ABSOLUTE/PATH/TO/YOUR/REPO/go-mcp-temperature-server/go-mcp-temperature-server",
// &units=metric&appid=`.
- 结果以纯文本形式(含JSON内容)返回给MCP客户端。
## 定制
- 要使用不同的HTTP温度服务,请修改 `endpoint` 变量in `main.go`.
- 后端温度服务需要API密钥作为 `appid` 查询参数(例如。, `...&appid=YOUR_API_KEY`).如果收到500内部服务器错误,请检查后端服务日志,确保API密钥有效并作为查询参数传递。
- 要添加更多工具或功能,请使用MCP服务器API注册其他工具和处理程序。
## 许可证
麻省理工学院或您的项目中指定的。
______________________________________________________________________
有关MCP的更多信息,请参阅 [mark3labs/mcp go](https://github.com/mark3labs/mcp-go).