Weatherapi Com MCP Server
# Weatherapi Com MCP Server
[English](./README_EN.md) | 简体中文 | [繁體中文](./README_ZH-TW.md)
用于访问 Weatherapi Com API 的 MCP 服务器。
## 🚀 使用 EMCP 平台快速体验
**[EMCP](https://sit-emcp.kaleido.guru)** 是一个强大的 MCP 服务器管理平台,让您无需手动配置即可快速使用各种 MCP 服务器!
### 快速开始:
1. 🌐 访问 **[EMCP 平台](https://sit-emcp.kaleido.guru)**
2. 📝 注册并登录账号
3. 🎯 进入 **MCP 广场**,浏览所有可用的 MCP 服务器
4. 🔍 搜索或找到本服务器(`bach-weatherapi_com`)
5. 🎉 点击 **"安装 MCP"** 按钮
6. ✅ 完成!即可在您的应用中使用
### EMCP 平台优势:
- ✨ **零配置**:无需手动编辑配置文件
- 🎨 **可视化管理**:图形界面轻松管理所有 MCP 服务器
- 🔐 **安全可靠**:统一管理 API 密钥和认证信息
- 🚀 **一键安装**:MCP 广场提供丰富的服务器选择
- 📊 **使用统计**:实时查看服务调用情况
立即访问 **[EMCP 平台](https://sit-emcp.kaleido.guru)** 开始您的 MCP 之旅!
---
## 简介
这是一个 MCP 服务器,用于访问 Weatherapi Com API。
- **PyPI 包名**: `bach-weatherapi_com`
- **版本**: 1.0.0
- **传输协议**: stdio
## 安装
### 从 PyPI 安装:
```bash
pip install bach-weatherapi_com
```
### 从源码安装:
```bash
pip install -e .
```
## 运行
### 方式 1: 使用 uvx(推荐,无需安装)
```bash
# 运行(uvx 会自动安装并运行)
uvx --from bach-weatherapi_com bach_weatherapi_com
# 或指定版本
uvx --from bach-weatherapi_com@latest bach_weatherapi_com
```
### 方式 2: 直接运行(开发模式)
```bash
python server.py
```
### 方式 3: 安装后作为命令运行
```bash
# 安装
pip install bach-weatherapi_com
# 运行(命令名使用下划线)
bach_weatherapi_com
```
## 配置
### API 认证
此 API 需要认证。请设置环境变量:
```bash
export API_KEY="your_api_key_here"
```
### 环境变量
| 变量名 | 说明 | 必需 |
|--------|------|------|
| `API_KEY` | API 密钥 | 是 |
| `PORT` | 不适用 | 否 |
| `HOST` | 不适用 | 否 |
### 在 Cursor 中使用
编辑 Cursor MCP 配置文件 `~/.cursor/mcp.json`:
```json
{
"mcpServers": {
"bach-weatherapi_com": {
"command": "uvx",
"args": ["--from", "bach-weatherapi_com", "bach_weatherapi_com"],
"env": {
"API_KEY": "your_api_key_here"
}
}
}
}
```
### 在 Claude Desktop 中使用
编辑 Claude Desktop 配置文件 `claude_desktop_config.json`:
```json
{
"mcpServers": {
"bach-weatherapi_com": {
"command": "uvx",
"args": ["--from", "bach-weatherapi_com", "bach_weatherapi_com"],
"env": {
"API_KEY": "your_api_key_here"
}
}
}
}
```
## 可用工具
此服务器提供以下工具:
### `alerts_api`
Alerts API returns alerts and warnings issued by government agencies (USA, UK, Europe and Rest of the World) as an array if available for the location provided.
**端点**: `GET /alerts.json`
**参数**:
- `q` (string) *必需*: Example value: london
---
### `future_weather_api`
Future weather API method returns weather in a 3 hourly interval in future for a date between 14 days and 300 days from today in the future.
**端点**: `GET /future.json`
**参数**:
- `q` (string) *必需*: Query parameter based on which data is sent back. It could be following: Latitude and Longitude (Decimal degree) e.g: q=48.8567,2.3508 city name e.g.: q=Paris US zip e.g.: q=10001 UK postcode e.g: q=SW1 Canada postal code e.g: q=G2J metar: e.g: q=metar:EGLL iata:<3 digit airport code> e.g: q=iata:DXB auto:ip IP lookup e.g: q=auto:ip IP address (IPv4 and IPv6 supported) e.g: q=100.0.0.1
- `lang` (string): Returns 'condition:text' field in API in the desired language
- `dt` (string) *必需*: 'dt' should be between 14 days and 300 days from today in the future in yyyy-MM-dd format (i.e. dt=2023-01-01)
---
### `realtime_weather_api`
Current weather or realtime weather API method allows a user to get up to date current weather information in json and xml. The data is returned as a Current Object.
**端点**: `GET /current.json`
**参数**:
- `q` (string) *必需*: Query parameter based on which data is sent back. It could be following: Latitude and Longitude (Decimal degree) e.g: q=48.8567,2.3508 city name e.g.: q=Paris US zip e.g.: q=10001 UK postcode e.g: q=SW1 Canada postal code e.g: q=G2J metar: e.g: q=metar:EGLL iata:<3 digit airport code> e.g: q=iata:DXB auto:ip IP lookup e.g: q=auto:ip IP address (IPv4 and IPv6 supported) e.g: q=100.0.0.1
---
### `sports_api`
Sports API method allows a user to get listing of all upcoming sports events for football, cricket and golf in json.
**端点**: `GET /sports.json`
**参数**:
- `q` (string) *必需*: Example value: London
---
### `astronomy_api`
Astronomy API method allows a user to get up to date information for sunrise, sunset, moonrise, moonset, moon phase and illumination in json.
**端点**: `GET /astronomy.json`
**参数**:
- `q` (string) *必需*: Query parameter based on which data is sent back. It could be following: Latitude and Longitude (Decimal degree) e.g: q=48.8567,2.3508 city name e.g.: q=Paris US zip e.g.: q=10001 UK postcode e.g: q=SW1 Canada postal code e.g: q=G2J metar: e.g: q=metar:EGLL iata:<3 digit airport code> e.g: q=iata:DXB auto:ip IP lookup e.g: q=auto:ip IP address (IPv4 and IPv6 supported) e.g: q=100.0.0.1
- `dt` (string): Date
---
### `searchautocomplete_api`
Search or Autocomplete API returns matching cities and towns.
**端点**: `GET /search.json`
**参数**:
- `q` (string) *必需*: Query parameter based on which data is sent back. It could be following: Latitude and Longitude (Decimal degree) e.g: q=48.8567,2.3508 city name e.g.: q=Paris US zip e.g.: q=10001 UK postcode e.g: q=SW1 Canada postal code e.g: q=G2J metar: e.g: q=metar:EGLL iata:<3 digit airport code> e.g: q=iata:DXB auto:ip IP lookup e.g: q=auto:ip IP address (IPv4 and IPv6 supported) e.g: q=100.0.0.1
---
### `marine_weather_api`
Marine weather API returns upto next 7 day marine and sailing weather forecast and tide data for global marine/sea points.
**端点**: `GET /marine.json`
**参数**:
- `q` (string) *必需*: Query parameter based on which data is sent back. It could be following: Latitude and Longitude (Decimal degree) e.g: q=48.8567,2.3508 city name e.g.: q=Paris US zip e.g.: q=10001 UK postcode e.g: q=SW1 Canada postal code e.g: q=G2J metar: e.g: q=metar:EGLL iata:<3 digit airport code> e.g: q=iata:DXB auto:ip IP lookup e.g: q=auto:ip IP address (IPv4 and IPv6 supported) e.g: q=100.0.0.1
- `days` (number): Example value: 1
- `lang` (string): Example value:
---
### `history_weather_api`
History weather API method returns historical weather for a date on or after 1st Jan, 2010 (depending upon subscription level) as json.
**端点**: `GET /history.json`
**参数**:
- `q` (string) *必需*: Query parameter based on which data is sent back. It could be following: Latitude and Longitude (Decimal degree) e.g: q=48.8567,2.3508 city name e.g.: q=Paris US zip e.g.: q=10001 UK postcode e.g: q=SW1 Canada postal code e.g: q=G2J metar: e.g: q=metar:EGLL iata:<3 digit airport code> e.g: q=iata:DXB auto:ip IP lookup e.g: q=auto:ip IP address (IPv4 and IPv6 supported) e.g: q=100.0.0.1
- `lang` (string): Returns 'condition:text' field in API in the desired language
- `hour` (number): Restricting history output to a specific hour in a given day.
- `dt` (string) *必需*: For history API 'dt' should be on or after 1st Jan, 2010 in yyyy-MM-dd format
- `end_dt` (string): Restrict date output for History API method. Should be on or after 1st Jan, 2010. Make sure end_dt is equal to or greater than 'dt'.
---
### `forecast_weather_api`
Forecast weather API method returns upto next 14 day weather forecast and weather alert as json. It contains astronomy data, day weather forecast and hourly interval weather information for a given city.
**端点**: `GET /forecast.json`
**参数**:
- `q` (string) *必需*: Query parameter based on which data is sent back. It could be following: Latitude and Longitude (Decimal degree) e.g: q=48.8567,2.3508 city name e.g.: q=Paris US zip e.g.: q=10001 UK postcode e.g: q=SW1 Canada postal code e.g: q=G2J metar: e.g: q=metar:EGLL iata:<3 digit airport code> e.g: q=iata:DXB auto:ip IP lookup e.g: q=auto:ip IP address (IPv4 and IPv6 supported) e.g: q=100.0.0.1
- `days` (number): Number of days of forecast required.
- `lang` (string): Returns 'condition:text' field in API in the desired language
- `dt` (string): If passing 'dt', it should be between today and next 10 day in yyyy-MM-dd format.
---
### `ip_lookup_api`
IP Lookup API method allows a user to get up to date information for an IP address in json.
**端点**: `GET /ip.json`
**参数**:
- `q` (string) *必需*: e.g: q=auto:ip IP address (IPv4 and IPv6 supported) e.g: q=100.0.0.1
---
### `time_zone_api`
Time Zone API method allows a user to get up to date time zone and local time information in json.
**端点**: `GET /timezone.json`
**参数**:
- `q` (string) *必需*: Query parameter based on which data is sent back. It could be following: Latitude and Longitude (Decimal degree) e.g: q=48.8567,2.3508 city name e.g.: q=Paris US zip e.g.: q=10001 UK postcode e.g: q=SW1 Canada postal code e.g: q=G2J metar: e.g: q=metar:EGLL iata:<3 digit airport code> e.g: q=iata:DXB auto:ip IP lookup e.g: q=auto:ip IP address (IPv4 and IPv6 supported) e.g: q=100.0.0.1
---
## 技术栈
- **传输协议**: stdio
- **HTTP 客户端**: httpx
## 许可证
MIT License - 详见 [LICENSE](./LICENSE) 文件。
## 开发
此服务器由 [API-to-MCP](https://github.com/BACH-AI-Tools/api-to-mcp) 工具生成。
版本: 1.0.0
TDQS
Scored across 11 tools
Each tool has a clearly distinct purpose with no overlap: alerts for warnings, astronomy for celestial events, forecast for 14-day predictions, future for long-range forecasts, history for past data, IP lookup for location, marine for sailing weather, realtime for current conditions, search for autocomplete, sports for events, and time zone for time data. The descriptions make it easy to differentiate between them.
All tool names follow a consistent pattern: they end with '_api' and use descriptive, lowercase terms (e.g., alerts_api, astronomy_api). This uniformity makes the set predictable and easy to navigate, with no deviations in style or structure.
With 11 tools, the server is well-scoped for a comprehensive weather API, covering current, forecast, historical, marine, astronomy, alerts, IP lookup, search, sports, and time zone functionalities. Each tool earns its place without feeling excessive or insufficient for the domain.
The tool surface is complete for a weather API domain, offering full coverage: realtime, forecast, history, future predictions, marine data, astronomy, alerts, location via IP and search, sports events, and time zones. There are no obvious gaps, and agents can handle typical weather-related workflows without dead ends.