mcpField
A
AQICN MCP Server

AQICN MCP Server

本地服务
github.com/mattmarcin地图与出行190 周前更新

关于 AQICN MCP Server

AQICN MCP Server 将世界空气质量指数项目的数据提供给大模型。它支持按城市或坐标查询空气质量,并搜索监测站。

主要功能

  1. 01按城市查询 AQI 数据
  2. 02按坐标查询 AQI 数据
  3. 03搜索空气质量监测站
  4. 04返回污染物和测量详情

适用场景

  1. 01查看城市空气质量
  2. 02查询某地点附近的 AQI
  3. 03查找监测站信息

MCP 相关

该 MCP 服务提供 AQICN 工具,可按城市或坐标查询空气质量,也可搜索监测站。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"aqicn": {
"command": "npx",
"args": [
"-y",
"@smithery/cli"
]
}
}
}
启动命令npx -y @smithery/cli

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@smithery/cli

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

AQICN MCP 服务

smithery badge

这是一个 Model Context Protocol(MCP)服务,提供来自 World Air Quality Index(AQICN)项目的空气质量数据工具。它允许大模型获取全球各城市和坐标位置的实时空气质量数据。

安装

通过 Smithery 安装

通过 Smithery 自动为 Claude Desktop 安装 AQICN MCP 服务:

npx -y @smithery/cli install @mattmarcin/aqicn-mcp --client claude
使用推荐的 uv 手动安装

我们建议使用 uv 管理 Python 环境:

# Install the package and dependencies
uv pip install -e .

环境设置

在项目根目录下创建 .env 文件(可以从 .env.example 复制):

# .env
AQICN_API_KEY=your_api_key_here

或者,直接设置环境变量:

# Linux/macOS
export AQICN_API_KEY=your_api_key_here

# Windows
set AQICN_API_KEY=your_api_key_here

运行服务

开发模式

使用 MCP Inspector 测试和调试服务是最快捷的方式:

mcp dev aqicn_server.py
集成 Claude Desktop

服务准备就绪后,在 Claude Desktop 中安装:

mcp install aqicn_server.py
直接执行

用于测试或自定义部署:

python aqicn_server.py

可用工具

1. city_aqi

获取特定城市的空气质量数据。

@mcp.tool()
def city_aqi(city: str) -> AQIData:
    """Get air quality data for a specific city."""

输入:

  • city:要获取空气质量数据的城市名称

**输出:**包含以下内容的 AQIData:

  • aqi:空气质量指数值
  • station:站点名称
  • dominant_pollutant:主要污染物(如果有)
  • time:测量时间戳
  • coordinates:站点的纬度和经度
2. geo_aqi

使用坐标获取特定位置的空气质量数据。

@mcp.tool()
def geo_aqi(latitude: float, longitude: float) -> AQIData:
    """Get air quality data for a specific location using coordinates."""

输入:

  • latitude:位置的纬度
  • longitude:位置的经度

**输出:**与 city_aqi 相同

3. search_station

按关键词搜索空气质量监测站。

@mcp.tool()
def search_station(keyword: str) -> list[StationInfo]:
    """Search for air quality monitoring stations by keyword."""

输入:

  • keyword:用于搜索站点的关键词(城市名称、站点名称等)

**输出:**包含以下内容的 StationInfo 列表:

  • name:站点名称
  • station_id:站点唯一标识符
  • coordinates:站点的纬度和经度

使用示例

使用 MCP Python 客户端:

from mcp import Client

async with Client() as client:
    # Get air quality data for Beijing
    beijing_data = await client.city_aqi(city="beijing")
    print(f"Beijing AQI: {beijing_data.aqi}")

    # Get air quality data by coordinates (Tokyo)
    geo_data = await client.geo_aqi(latitude=35.6762, longitude=139.6503)
    print(f"Tokyo AQI: {geo_data.aqi}")

    # Search for stations
    stations = await client.search_station(keyword="london")
    for station in stations:
        print(f"Station: {station.name} ({station.coordinates})")

贡献

欢迎提交问题和拉取请求。请确保你的更改包含适当的测试和文档。

许可证

本项目采用 MIT License 许可。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。