@mhdd_24/airflow-mcp
# @mhdd_24/airflow-mcp
MCP server for DAGs, runs, logs and task failures.
Same architecture as [@mhdd_24/sublime-mcp](https://github.com/Mhdd-24/Sublime-MCP).
**Full documentation:** [docs/WIKI.md](./docs/WIKI.md)
---
## How it works (30 seconds)
```
You (chat) → MCP client → airflow-mcp → Airflow APIs / CLIs / local tools
```
---
## Prerequisites
| Requirement | Notes |
|-------------|--------|
| **Node.js 18+** | ESM TypeScript MCP server |
| **Credentials / CLIs** | See environment variables below |
---
## Install
### Option A — npm (after publish)
```bash
npm install -g @mhdd_24/airflow-mcp
```
### Option B — npx
```bash
npx @mhdd_24/airflow-mcp
```
### Option C — clone and build
```bash
git clone https://github.com/Mhdd-24/Airflow-MCP.git
cd Airflow-MCP
npm install
npm run build
node dist/index.js
```
---
## Configure Cursor
Edit `~/.cursor/mcp.json`:
```json
{
"mcpServers": {
"airflow": {
"command": "npx",
"args": ["-y", "@mhdd_24/airflow-mcp"],
"env": {
"AIRFLOW_BASE_URL": "...",
"AIRFLOW_USERNAME": "...",
"AIRFLOW_PASSWORD": "..."
}
}
}
}
```
**Local development:**
```json
{
"command": "node",
"args": ["/absolute/path/to/Airflow-MCP/dist/index.js"]
}
```
---
## Environment variables
| Variable | Description |
|----------|-------------|
| `AIRFLOW_BASE_URL` | Airflow URL |
| `AIRFLOW_USERNAME` | User |
| `AIRFLOW_PASSWORD` | Password |
---
## Tools
| Tool | Description |
|------|-------------|
| `airflow_status` | Show dags configuration / health. |
| `airflow_list` | List dags resources/items. |
| `airflow_get` | Get a dags resource by id/name. |
| `airflow_diagnose` | Diagnostics / checklist for dags. |
---
## License
ISC
TDQS
Scored across 4 tools
Most tools are clearly distinct (list vs get vs status), but 'airflow_status' and 'airflow_diagnose' overlap in intent—both appear to inspect health or state, making it ambiguous which to choose for a given diagnostic question.
All tools share the 'airflow_' prefix with snake_case, but 'airflow_status' uses a noun while the others use verbs (list, get, diagnose), creating a minor inconsistency in the naming pattern.
Four tools is a tight, focused set for an Airflow-oriented server. Each tool addresses a distinct need and none feel redundant or superfluous.
The set covers read-only inspection and diagnostics well, but lacks common Airflow DAG operations like pause/unpause, trigger, or delete. If the intended scope is monitoring only, this is fine; for management tasks, there are notable gaps.