<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<channel>
<title>Coder Legion - Recent posts tagged airflow</title>
<link>https://coderlegion.com/tag/airflow</link>
<description>Powered by Question2Answer</description>
<item>
<title>MCP-Airflow-API</title>
<link>https://coderlegion.com/16386/mcp-airflow-api</link>
<description>&lt;h3 id=&quot;what-is-mcp-airflow-api-&quot;&gt;What is MCP-Airflow-API?&lt;/h3&gt;
&lt;p&gt;A &lt;strong&gt;Model Context Protocol (MCP) server&lt;/strong&gt; that brings natural language &lt;br&gt;
operations to Apache Airflow workflow management. Works with Claude &lt;br&gt;
Desktop, Claude Code, OpenWebUI, or any MCP-compatible LLM client.&lt;/p&gt;
&lt;p&gt;Stop juggling Airflow Web UI, REST API curl commands, and CLI sessions. &lt;br&gt;
Just ask:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&quot;Show me all currently running DAGs&quot;&lt;/li&gt;
&lt;li&gt;&quot;Trigger DAG 'example_complex' and show me the run status&quot;&lt;/li&gt;
&lt;li&gt;&quot;List failed task instances from yesterday with logs&quot;&lt;/li&gt;
&lt;li&gt;&quot;Show task durations for the latest run of etl_pipeline&quot;&lt;/li&gt;
&lt;li&gt;&quot;Find DAGs containing 'ETL' that haven't run in the last 24 hours&quot;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;why-i-built-it&quot;&gt;Why I built it&lt;/h3&gt;
&lt;p&gt;Day-to-day Airflow operations — investigating failed DAG runs, checking &lt;br&gt;
task logs, managing pools and variables, analyzing event logs — require &lt;br&gt;
constant context switching between the Web UI, REST API documentation, &lt;br&gt;
and CLI. I wanted an LLM agent that could translate operator intent &lt;br&gt;
into precise Airflow API calls across both Airflow 2.x and 3.0+ &lt;br&gt;
clusters.&lt;/p&gt;
&lt;h3 id=&quot;key-features&quot;&gt;Key Features&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Dual API Version Support&lt;/strong&gt;: Single MCP server handles both Airflow &lt;br&gt;
API v1 (2.x) and v2 (3.0+) via &lt;code&gt;AIRFLOW_API_VERSION&lt;/code&gt; environment &lt;br&gt;
variable — switch versions without reconfiguration&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;45 Tools&lt;/strong&gt;: 43 shared tools + 2 v2-exclusive asset management tools&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;DAG Operations&lt;/strong&gt;: Trigger, pause, resume, list, filter DAGs with &lt;br&gt;
pagination support for 1000+ DAG environments&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Task Instance Analysis&lt;/strong&gt;: Filter by state, pool, duration, time &lt;br&gt;
range; retrieve logs and extra links&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Smart Date Handling&lt;/strong&gt;: Natural language dates (&quot;yesterday&quot;, &lt;br&gt;
&quot;last 3 days&quot;, &quot;this morning&quot;) auto-converted to API parameters&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Pool, Variable, Connection Management&lt;/strong&gt;: Full CRUD via natural &lt;br&gt;
language&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Configuration Inspection&lt;/strong&gt;: Search and filter Airflow config &lt;br&gt;
sections and options&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Event Log Analysis&lt;/strong&gt;: DAG event summaries, import error reports, &lt;br&gt;
per-DAG event tracking&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;XCom Management&lt;/strong&gt;: List and retrieve XCom entries by task and run&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Asset Management (v2)&lt;/strong&gt;: Data-aware scheduling support for &lt;br&gt;
Airflow 3.0+ assets and asset events&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Multi-Cluster Support&lt;/strong&gt;: Manage multiple Airflow versions &lt;br&gt;
simultaneously via separate MCP server entries&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Bearer Token Auth&lt;/strong&gt;: Production-ready authentication for &lt;br&gt;
streamable-http mode&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Flexible Transports&lt;/strong&gt;: stdio for local, streamable-http for &lt;br&gt;
remote/Docker&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;installation&quot;&gt;Installation&lt;/h3&gt;
&lt;p&gt;PyPI package available:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;uvx --python 3.12 mcp-airflow-api
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Claude Desktop config:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-json&quot;&gt;{
  &quot;mcpServers&quot;: {
    &quot;mcp-airflow-api&quot;: {
      &quot;command&quot;: &quot;uvx&quot;,
      &quot;args&quot;: [&quot;--python&quot;, &quot;3.12&quot;, &quot;mcp-airflow-api&quot;],
      &quot;env&quot;: {
        &quot;AIRFLOW_API_VERSION&quot;: &quot;v2&quot;,
        &quot;AIRFLOW_API_BASE_URL&quot;: &quot;http://localhost:8080/api&quot;,
        &quot;AIRFLOW_API_USERNAME&quot;: &quot;airflow&quot;,
        &quot;AIRFLOW_API_PASSWORD&quot;: &quot;airflow&quot;
      }
    }
  }
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Or run the full Docker Compose stack with MCP-Server, MCPO Proxy, and &lt;br&gt;
OpenWebUI in 5 minutes. A companion repository (Airflow-Docker-Compose) &lt;br&gt;
provides ready-to-use Airflow 2.x and 3.x test clusters.&lt;/p&gt;
&lt;h3 id=&quot;tech-stack&quot;&gt;Tech Stack&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Python 3.12 + asyncio&lt;/li&gt;
&lt;li&gt;FastMCP framework&lt;/li&gt;
&lt;li&gt;Apache Airflow REST API v1 (2.x) and v2 (3.0+)&lt;/li&gt;
&lt;li&gt;stdio and streamable-http transports&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;looking-for-feedback&quot;&gt;Looking for Feedback&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;Which Airflow areas should be enhanced next? (DAG-as-code editing? &lt;br&gt;
Sensor-specific tools? Provider package introspection?)&lt;/li&gt;
&lt;li&gt;How should destructive operations (clear DAG runs, delete &lt;br&gt;
variables) be gated for safety?&lt;/li&gt;
&lt;li&gt;Anyone running this against large production clusters with &lt;br&gt;
thousands of DAGs — performance feedback welcome&lt;/li&gt;
&lt;li&gt;Multi-tenant Airflow deployments — interest in workspace/team &lt;br&gt;
scoping?&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Repo&lt;/strong&gt;: &lt;a rel=&quot;nofollow&quot; href=&quot;https://github.com/call518/MCP-Airflow-API&quot;&gt;https://github.com/call518/MCP-Airflow-API&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;PyPI&lt;/strong&gt;: &lt;a rel=&quot;nofollow&quot; href=&quot;https://pypi.org/project/MCP-Airflow-API/&quot;&gt;https://pypi.org/project/MCP-Airflow-API/&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;DeepWiki&lt;/strong&gt;: &lt;a rel=&quot;nofollow&quot; href=&quot;https://deepwiki.com/call518/MCP-Airflow-API&quot;&gt;https://deepwiki.com/call518/MCP-Airflow-API&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Test Clusters&lt;/strong&gt;: &lt;a rel=&quot;nofollow&quot; href=&quot;https://github.com/call518/Airflow-Docker-Compose&quot;&gt;https://github.com/call518/Airflow-Docker-Compose&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;⭐ Stars, issues, and PRs welcome. The codebase includes an &lt;br&gt;
&quot;Adding Custom Tools&quot; guide for easy extension.&lt;/p&gt;
</description>
<category>Launches</category>
<guid isPermaLink="true">https://coderlegion.com/16386/mcp-airflow-api</guid>
<pubDate>Sat, 02 May 2026 07:29:22 +0000</pubDate>
</item>
</channel>
</rss>