Servidor MCP de AQICN
Este es un servidor de Protocolo de Contexto de Modelo (MCP) que proporciona herramientas de datos de calidad del aire del proyecto Índice Mundial de Calidad del Aire (AQICN). Permite a los LLM obtener datos de calidad del aire en tiempo real de ciudades y coordenadas de todo el mundo.
Instalación
Instalación mediante herrería
Para instalar AQICN MCP Server para Claude Desktop automáticamente a través de Smithery :
npx -y @smithery/cli install @mattmarcin/aqicn-mcp --client claudeInstalación mediante UV recomendada (manual)
Recomendamos utilizar uv para administrar su entorno Python:
# Install the package and dependencies
uv pip install -e .Related MCP server: Weather MCP Tool
Configuración del entorno
Cree un archivo .env en la raíz del proyecto (puede copiarlo desde .env.example ):
# .env
AQICN_API_KEY=your_api_key_hereAlternativamente, puede configurar la variable de entorno directamente:
# Linux/macOS
export AQICN_API_KEY=your_api_key_here
# Windows
set AQICN_API_KEY=your_api_key_hereEjecución del servidor
Modo de desarrollo
La forma más rápida de probar y depurar su servidor es con el Inspector MCP:
mcp dev aqicn_server.pyIntegración de escritorio de Claude
Una vez que su servidor esté listo, instálelo en Claude Desktop:
mcp install aqicn_server.pyEjecución directa
Para pruebas o implementaciones personalizadas:
python aqicn_server.pyHerramientas disponibles
1. ciudad_aqi
Obtenga datos de calidad del aire para una ciudad específica.
@mcp.tool()
def city_aqi(city: str) -> AQIData:
"""Get air quality data for a specific city."""Aporte:
city: Nombre de la ciudad de la que se obtendrán datos de calidad del aire
Salida: AQIData con:
aqi: valor del índice de calidad del airestation: Nombre de la estacióndominant_pollutant: Contaminante principal (si está disponible)time: Marca de tiempo de la medicióncoordinates: Latitud y longitud de la estación
2. geo_aqi
Obtenga datos de calidad del aire para una ubicación específica utilizando coordenadas.
@mcp.tool()
def geo_aqi(latitude: float, longitude: float) -> AQIData:
"""Get air quality data for a specific location using coordinates."""Aporte:
latitude: Latitud de la ubicaciónlongitude: Longitud de la ubicación
Salida: Igual que city_aqi
3. estación de búsqueda
Busque estaciones de monitoreo de calidad del aire por palabra clave.
@mcp.tool()
def search_station(keyword: str) -> list[StationInfo]:
"""Search for air quality monitoring stations by keyword."""Aporte:
keyword: Palabra clave para buscar estaciones (nombre de la ciudad, nombre de la estación, etc.)
Salida: Lista de StationInfo con:
name: Nombre de la estaciónstation_id: Identificador único de la estacióncoordinates: Latitud y longitud de la estación
Ejemplo de uso
Usando el cliente Python de MCP:
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})")Contribuyendo
No dude en abrir problemas y solicitudes de incorporación de cambios. Asegúrese de que sus cambios incluyan pruebas y documentación adecuadas.
Licencia
Este proyecto está licenciado bajo la licencia MIT.