A side-by-side look at the Incident Response MCP for Apache Airflow and Apiverket MCP MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.
Verdict: choose Incident Response MCP for Apache Airflow for data platforms work as a local process; choose Apiverket MCP for data platforms as a local process. You can also run both side by side in one mcpServers block.
AIRFLOW_MCP_HOST, AIRFLOW_MCP_USERNAME, AIRFLOW_MCP_PASSWORD, AIRFLOW_MCP_API_VERSION, AIRFLOW_MCP_READ_ONLY, AIRFLOW_MCP_TOKEN_REFRESH_SECONDS.airflow_list_instances, airflow_describe_instance, airflow_resolve_url.GOVDATA_API_URL, GOVDATA_API_KEY.govdata_discover, govdata_query.Rows where the two servers differ are marked.
| Spec | ||
|---|---|---|
| Category | Data Platforms | Data Platforms |
| Quality signal | 53/100 · Good | 59/100 · Good |
| Install command | Confirmed | Confirmed |
| Transport | Local subprocess (stdio) | Local subprocess (stdio) |
| Auth | Not declared | API key required |
| Pricing | Not declared | Free |
| Required env vars | AIRFLOW_MCP_HOSTAIRFLOW_MCP_USERNAMEAIRFLOW_MCP_PASSWORDAIRFLOW_MCP_API_VERSIONAIRFLOW_MCP_READ_ONLYAIRFLOW_MCP_TOKEN_REFRESH_SECONDS | GOVDATA_API_URLGOVDATA_API_KEY |
| Verified owner | Community listing | Community listing |
| GitHub stars | 2 | 2 |
| Directory activity | 0 views 0 installs 0 upvotes | 3 views 0 installs 0 upvotes |
| Tools | 15 | 2 |
| Full listing | View Incident Response MCP for Apache Airflow | View Apiverket MCP |
airflow_list_instancesList configured instance keys and the defaultairflow_describe_instanceHost, API version, auth type (secrets redacted)airflow_resolve_urlParse an Airflow UI URL into instance + dag/run/task identifiersairflow_list_dagsDAGs with pause state and UI linksairflow_get_dagDAG detailsairflow_list_dag_runsRuns with state filters and ordering (latest first by default)airflow_get_dag_runSingle run detailsairflow_list_task_instancesTask attempts for a run; filter by `state` / `task_ids` server-sideairflow_get_task_instanceTask metadata, retries, timings, optional rendered template fieldsairflow_get_task_instance_logsLogs with level filtering, tailing, context lines, and byte capsairflow_dataset_eventsDataset (Airflow 2) / asset (Airflow 3) eventsairflow_trigger_dagTrigger a run with optional conf/logical date/notegovdata_discoverSearch and browse available Swedish government data endpoints in the Apiverket API.
Use this tool to find the right endpoint before calling govdata_query. The API covers 139 endpoints across 16 categories including weather, transport, economy, health, environment, parliament, police, education, and more.
Args:
- query (string, optional): Keyword to search across endpoint names, descriptions, and paths
- category (string, optional): Filter by category name
When called with no arguments, returns all available categories with endpoint counts.
Examples:
- Find weather endpoints: query="weather"
- Browse transport category: category="Transport"
- Find pension info: query="pension"
- List all categories: (no arguments)
Returns:
Matching endpoints with their paths, parameters, and descriptions.govdata_queryCall any Apiverket API endpoint to retrieve Swedish government data.
Use govdata_discover first to find the right endpoint path and required parameters. Then call this tool with the endpoint path and any path/query parameters.
Args:
- endpoint (string, required): The API path (e.g. "/v1/weather/{city}")
- path_params (object, optional): Values for path parameters like {city}, {code}, {id}
- query_params (object, optional): Query string parameters (q, limit, offset, lat, lon, etc.)
Examples:
- Current weather in Stockholm:
endpoint="/v1/weather/{city}", path_params={"city": "stockholm"}
- Search jobs:
endpoint="/v1/jobs/search", query_params={"q": "developer", "limit": 5}
- Train departures from Stockholm Central:
endpoint="/v1/transport/trains/{station}", path_params={"station": "Cst"}
- Exchange rates:
endpoint="/v1/rates"
- Population by municipality:
endpoint="/v1/population/{municipalityCode}", path_params={"municipalityCode": "0180"}
- Police events in Stockholm:
endpoint="/v1/police/events", query_params={"location": "Stockholm", "limit": 10}
- Find EV chargers near a location:
endpoint="/v1/infrastructure/ev-chargers", query_params={"lat": 59.33, "lon": 18.07}
Returns:
The API response as JSON, containing a "meta" envelope with request info and a "data" object with the actual data.
Error handling:
- Returns clear error messages if the API is unreachable, the endpoint doesn't exist, or parameters are invalid
- Large responses are automatically truncated with pagination guidancePaste either block (or both) into your client config, e.g. claude_desktop_config.json or ~/.cursor/mcp.json. We only show a config when the install command is confirmed.
{
"mcpServers": {
"incident-response-mcp-for-apache-airflow": {
"command": "uvx",
"args": [
"--from",
"apache-airflow-mcp-server",
"--with",
"apache-airflow-client==3.3.0",
"airflow-mcp"
],
"env": {
"AIRFLOW_MCP_HOST": "YOUR_AIRFLOW_MCP_HOST_HERE",
"AIRFLOW_MCP_USERNAME": "YOUR_AIRFLOW_MCP_USERNAME_HERE",
"AIRFLOW_MCP_PASSWORD": "YOUR_AIRFLOW_MCP_PASSWORD_HERE",
"AIRFLOW_MCP_API_VERSION": "YOUR_AIRFLOW_MCP_API_VERSION_HERE",
"AIRFLOW_MCP_READ_ONLY": "YOUR_AIRFLOW_MCP_READ_ONLY_HERE",
"AIRFLOW_MCP_TOKEN_REFRESH_SECONDS": "YOUR_AIRFLOW_MCP_TOKEN_REFRESH_SECONDS_HERE"
}
}
}
}
{
"mcpServers": {
"vinvuk-apiverket-mcp": {
"command": "npx",
"args": [
"-y",
"apiverket-mcp-server"
],
"env": {
"GOVDATA_API_URL": "YOUR_GOVDATA_API_URL_HERE",
"GOVDATA_API_KEY": "YOUR_GOVDATA_API_KEY_HERE"
}
}
}
}