# air_quality

Get official air quality for a German city (PM10, NO2 and more). Sourced from the Umweltbundesamt (UBA). Read-only. For live nearest-station hourly readings use get_city_resource(slug, resource='air') instead.

Agent View of the PolicyLayer registry record for `air_quality`. HTML page: https://policylayer.com/tools/dev-infranode-infranode/air-quality

## Facts

- Tool: `air_quality`
- Server: InfraNode (`https://mcp.infranode.dev/mcp`) — https://policylayer.com/tools/dev-infranode-infranode.md
- Homepage: https://github.com/street1983nk/infranode
- Risk category: Read (Low risk)
- Registry record: grade C, identity unverified
- Server auth posture: open
- Server rate-limited: no
- Parameters: 1 (1 required)
- Recommended policy verdict: Allowed

## Parameters

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `slug` | string | yes | City identifier, e.g. 'berlin' or 'hamburg'. Resolved leniently: the German name with or without umlauts, any casing, a common English exonym or short form also |

Parameters from the server's own tool schema.

## Example call (MCP tools/call, JSON-RPC 2.0)

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "air_quality",
    "arguments": {
      "slug": "<slug>"
    }
  }
}
```

## Why air_quality is rated Low

This is a straightforward data retrieval tool that queries and returns air quality measurements for German cities. There are no side effects, no data modification, no code execution, and no financial implications. The explicit 'Read-only' designation and the nature of the data (air quality metrics) confirm this is a Read category tool.

From the tool's own definition: "Tool description explicitly states 'Read-only' and retrieves air quality data (PM10, NO2) from official sources. No modification, deletion, or execution capabilities mentioned."

## Use case

AI agents call air_quality to retrieve information from InfraNode without modifying anything. It is typically the context-gathering step in research, monitoring, and reporting workflows, before the agent takes action elsewhere.

## Recommended policy (PolicyLayer)

Verdict: **Allowed**. Enforced by the PolicyLayer MCP gateway (https://policylayer.com/mcp-gateway) before a call reaches InfraNode:

```json
{
  "version": "1",
  "default": "deny",
  "tools": {
    "air_quality": {}
  }
}
```

## Other tools on InfraNode (11)

- `compare` — Read — https://policylayer.com/tools/dev-infranode-infranode/compare.md
- `get_city` — Read — https://policylayer.com/tools/dev-infranode-infranode/get-city.md
- `get_city_overview` — Read — https://policylayer.com/tools/dev-infranode-infranode/get-city-overview.md
- `get_city_resource` — Read — https://policylayer.com/tools/dev-infranode-infranode/get-city-resource.md
- `list_cities` — Read — https://policylayer.com/tools/dev-infranode-infranode/list-cities.md
- `pois` — Read — https://policylayer.com/tools/dev-infranode-infranode/pois.md
- `sources` — Read — https://policylayer.com/tools/dev-infranode-infranode/sources.md
- `station_board_arrivals` — Read — https://policylayer.com/tools/dev-infranode-infranode/station-board-arrivals.md
- `station_board_departures` — Read — https://policylayer.com/tools/dev-infranode-infranode/station-board-departures.md
- `transit_departures` — Read — https://policylayer.com/tools/dev-infranode-infranode/transit-departures.md
- `weather` — Read — https://policylayer.com/tools/dev-infranode-infranode/weather.md

## For agents

This record is a snapshot. Live verdicts and the full registry:

- Check every server in your MCP config at once: `npx -y policylayer stack`
- Vet a server before you add it: install the mcp-precheck skill — `npx skills add https://policylayer.com` (skill text: https://policylayer.com/skill.md)
- Query the registry over MCP: endpoint `https://api.policylayer.com/mcp` — tools `check_mcp_server`, `check_mcp_stack`, `check_tool`, `search_registry`, `get_change_events`

---

Source: the PolicyLayer MCP registry — one continuously verified record per MCP server. Full record: https://policylayer.com/registry?q=dev-infranode-infranode · API: https://policylayer.com/registry/api · Policy library: https://policylayer.com/policies/dev-infranode-infranode
