演示MCP服务器-天气API
实现 模型上下文协议(MCP) 与美国国家气象局API集成,通过MCP工具提供天气数据。
概述
该项目展示了如何构建一个MCP服务器,该服务器包装外部API(在本例中,位于API.weither.gov的NWS API),以向MCP客户端提供结构化天气数据。该服务器公开了MCP兼容客户端可以用来检索天气预报和警报的工具。
特性
- MCP服务器实现:全面实施模型上下文协议服务器
- 天气工具:
- get-forecast:使用纬度和经度检索特定位置的天气预报 - get-alerts:获取美国特定州的活跃天气警报
- 多种运输方式:
- 具有流式响应的流式HTTP(最新、首选传输) - 服务器发送事件(SSE)传输(默认情况下已注释掉)
先决条件
- Node.js v18+(建议使用v22)
- npm
安装
克隆存储库并安装依赖项:
git clone
cd demo-mcp-server-weatherapi
npm install运行服务器
使用npm
# Start the MCP server
npm start
# Start with MCP Inspector for development
npm run dev服务器将在以下时间可用http://localhost:3002/mcp. 当SSE被启用时,要连接的地址是http://localhost:3002/sse
使用Docker
使用Docker Compose构建和运行:
docker-compose up --build服务器将在以下时间可用http://localhost:3000/mcp. 当SSE被启用时,要连接的地址是http://localhost:3000/sse
API使用
服务器实现了模型上下文协议,并公开了以下工具:
获取天气预报
检索地理位置的天气预报。
{
"method": "tool",
"params": {
"name": "get-forecast",
"parameters": {
"latitude": 37.7749,
"longitude": -122.4194
}
}
}获取天气警报
检索美国某个州的活动天气警报。
{
"method": "tool",
"params": {
"name": "get-alerts",
"parameters": {
"state": "CA"
}
}
}MCP检查员
在开发过程中,您可以使用MCP检查器来可视化您的MCP服务器并与之交互。运行:
npm run devMCP检查器将在您的浏览器中可用,允许您测试各种工具。
项目结构
src/index.ts-应用程序入口点src/mcp-server.ts-带工具定义的MCP服务器实现src/weather-api.ts-天气API与NWS API的集成src/stream-http-server.ts-支持流媒体的HTTP服务器src/sse-server.ts-服务器发送事件(SSE)传输实现
Docker支持
该项目包括Docker支持,便于部署:
Dockerfile-容器定义docker-compose.yml-服务配置
许可证
国际协调委员会
作者
彼得·范·迪克
