Windy网络摄像头MCP服务器
](https://badge.fury.io/js/windy-webcam-mcp-server) 
模型上下文协议(MCP)服务器,提供对Windy网络摄像头公共API的访问,使人工智能代理能够搜索和检索来自世界各地的实时网络摄像头信息。
特性
🌍 全球网络摄像头访问
- 搜索网络摄像头 按位置、类别和其他标准
- 获取详细的网络摄像头信息 包括图像、时间流逝和现场玩家
- 查找附近的网络摄像头 使用地理坐标
- 按类别浏览网络摄像头 (海滩、山脉、城市等)
🗺️ 地理过滤
- 按国家、地区或大陆筛选
- 边界框搜索 针对特定地理区域
- 地图聚类 针对地图显示应用程序进行了优化
- 基于坐标的邻近搜索
📊 综合数据
- 实时网络摄像头馈送 并预览图像
- 位置信息 有详细的地理数据
- 类别分类 便于过滤
- 播放器嵌入 用于实时流媒体集成
- 导出功能 用于批量网络摄像头数据
🚀 性能特点
- 智能缓存 带可配置TTL
- 速率限制 遵守API配额
- 重试逻辑 指数回退
- 错误处理 带有详细的错误信息
安装
先决条件
- Node.js 18或更高版本
- Windy API密钥(在 https://api.windy.com/keys)
npm安装
npm install windy-webcam-mcp-server来源
git clone
cd windy-webcam-mcp-server
npm install
npm run build配置
环境变量
将Windy API键设置为环境变量:
export WINDY_API_KEY="your-api-key-here"或者创建一个 .env 文件:
WINDY_API_KEY=your-api-key-hereAPI密钥
您可以从获得免费的API密钥 风APIAPI有费率限制,但提供对全球网络摄像头综合数据库的访问。
用法
命令行
# Using npm
npx windy-webcam-mcp-server
# Using node directly
node build/index.jsMCP客户端集成
添加到MCP客户端配置中:
{
"mcpServers": {
"windy-webcam": {
"command": "npx",
"args": ["windy-webcam-mcp-server"],
"env": {
"WINDY_API_KEY": "your-api-key-here"
}
}
}
}可用工具
🔍 搜索_网络摄像头
使用各种过滤器搜索网络摄像头,包括位置、类别和地理条件。
参数:
country-国家代码(例如“美国”、“德国”、“法国”)region-一个国家内的地区代码continent-大陆代码(例如“NA”、“EU”、“AS”)category-类别ID或逗号分隔列表nearby-邻近搜索坐标(“lat,lng”)bbox-边界框(“sw_lat、sw_lng、ne_lat、ne_lng”)limit-结果数(1-50,默认值:10)offset-分页的结果偏移order-排序顺序(热门、新、最近、随机)lang-语言代码(默认:“en”)
📹 get_webcam
按ID获取特定网络摄像头的详细信息。
参数:
webcam_id-网络摄像头标识符(必填)include-需包含的额外数据lang-语言代码(默认:“en”)
🌍 get_webcams_by_location
从特定地理位置获取网络摄像头。
参数:
location_type-地点类型(国家、地区、大陆)location_code-位置代码(必填)limit-结果数(1-50,默认值:20)order-排序顺序
🏷️ get_webcams_by_category
从特定类别获取网络摄像头。
参数:
categories-类别ID或逗号分隔列表(必填)limit-结果数(1-50,默认值:20)order-排序顺序
📍 get_nearby_webcams
查找特定坐标附近的网络摄像头。
参数:
latitude-纬度坐标(必填)longitude-经度坐标(必填)radius-搜索半径(公里)limit-结果数(1-50,默认值:10)
🗺️ get_map_clusters
优化网络摄像头集群以显示地图。
参数:
ne_lat,ne_lng-东北角坐标(必填)sw_lat,sw_lng-西南角坐标(必填)zoom-地图缩放级别(1-18)cluster-启用群集(默认值:true)
📂 get_类别
获取可用于过滤的网络摄像头类别。
参数:
lang-语言代码(默认:“en”)
🌎 get_countries
获取配备网络摄像头的可用国家/地区。
参数:
lang-语言代码(默认:“en”)
🏞️ get_regions
使用网络摄像头获取可用区域。
参数:
lang-语言代码(默认:“en”)
🌍 获取内容
使用网络摄像头获取可用的大陆。
参数:
lang-语言代码(默认:“en”)
📦 export_all_webcams
获取所有可用网络摄像头的基本信息。
参数:
format-导出格式(json)
示例用法
在加利福尼亚州寻找海滩网络摄像头
// Search for beach webcams in California
await use_mcp_tool({
server_name: "windy-webcam",
tool_name: "search_webcams",
arguments: {
country: "US",
region: "US-CA",
category: "beach",
limit: 10
}
});让网络摄像头靠近某个位置
// Find webcams near San Francisco
await use_mcp_tool({
server_name: "windy-webcam",
tool_name: "get_nearby_webcams",
arguments: {
latitude: 37.7749,
longitude: -122.4194,
limit: 5
}
});获取可用类别
// Get all available categories
await use_mcp_tool({
server_name: "windy-webcam",
tool_name: "get_categories",
arguments: {
lang: "en"
}
});API响应格式
所有工具都以以下格式返回响应:
{
"success": true,
"summary": "Found 150 webcams (10 returned)",
"data": {
"offset": 0,
"limit": 10,
"total": 150,
"webcams": [...]
},
"cached": false,
"api_info": {
"cache_hit": false,
"response_time_ms": 245
}
}速率限制和缓存
- 速率限制:API请求之间的1秒延迟
- 缓存:大多数端点的TTL为5分钟
- 重试逻辑:3次指数回退尝试
- 错误处理:带有状态代码的全面错误消息
错误处理
服务器处理各种错误情况:
- API密钥无效:返回身份验证错误
- 速率限制:带回退的自动重试
- 未找到:清除缺失资源的错误消息
- 网络问题:具有超时处理的重试逻辑
发展
建筑
npm run build测试
npm test开发模式
npm run devAPI文档
有关API的详细文档,请访问: https://api.windy.com/webcams/docs
许可证
MIT许可证-请参阅 许可证 文件以获取详细信息。
贡献
- 分叉存储库
- 创建要素分支
- 进行更改
- 如果适用,添加测试
- 提交拉取请求
支持
对于问题和疑问:
- 检查 API文档
- 查看错误消息以进行故障排除
- 确保API密钥有效且配置正确
______________________________________________________________________
内置于❤️ 模型上下文协议生态系统。
