使用说明
温度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=<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",
// <-- Modify this to match your checkout location and leave the initial ./ alone
"args": [],
"env": {
"WEATHER_API_KEY": "YOUR_API_KEY_HERE"
}
}
}
}
- 替换
YOUR_API_KEY_HERE使用您的实际天气API键。 - 服务器二进制文件的路径应与您的项目结构相匹配。
- 此配置可确保MCP服务器在启动时使用正确的环境变量进行身份验证。
运作原理
- MCP服务器定义了一个名为
get_temperature. - 当被调用时,它会提取
location参数,然后在以下位置查询HTTP服务http://localhost:8080/temperature?location=<LOCATION>&units=metric&appid=<YOUR_API_KEY>. - 结果以纯文本形式(含JSON内容)返回给MCP客户端。
定制
- 要使用不同的HTTP温度服务,请修改
endpoint变量inmain.go. - 后端温度服务需要API密钥作为
appid查询参数(例如。,...&appid=YOUR_API_KEY).如果收到500内部服务器错误,请检查后端服务日志,确保API密钥有效并作为查询参数传递。 - 要添加更多工具或功能,请使用MCP服务器API注册其他工具和处理程序。
许可证
麻省理工学院或您的项目中指定的。
有关MCP的更多信息,请参阅 mark3labs/mcp go.