mcp-server-apache-airflow


Namemcp-server-apache-airflow JSON
Version 0.1.3 PyPI version JSON
download
home_pageNone
SummaryModel Context Protocol (MCP) server for Apache Airflow
upload_time2025-02-14 04:19:23
maintainerNone
docs_urlNone
authorNone
requires_python>=3.10
licenseMIT
keywords airflow apache-airflow mcp model-context-protocol
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # mcp-server-apache-airflow

A Model Context Protocol (MCP) server implementation for Apache Airflow, enabling seamless integration with MCP clients. This project provides a standardized way to interact with Apache Airflow through the Model Context Protocol.

## About

This project implements a [Model Context Protocol](https://modelcontextprotocol.io/introduction) server that wraps Apache Airflow's REST API, allowing MCP clients to interact with Airflow in a standardized way.

## Feature Implementation Status

| Feature | API Path | Status |
|---------|----------|--------|
| **DAG Management** | | |
| List DAGs | `/api/v1/dags` | ✅ |
| Get DAG Details | `/api/v1/dags/{dag_id}` | ✅ |
| Pause DAG | `/api/v1/dags/{dag_id}` | ✅ |
| Unpause DAG | `/api/v1/dags/{dag_id}` | ✅ |
| Update DAG | `/api/v1/dags/{dag_id}` | ❌ |
| Delete DAG | `/api/v1/dags/{dag_id}` | ❌ |
| **DAG Runs** | | |
| List DAG Runs | `/api/v1/dags/{dag_id}/dagRuns` | ✅ |
| Create DAG Run | `/api/v1/dags/{dag_id}/dagRuns` | ✅ |
| Get DAG Run Details | `/api/v1/dags/{dag_id}/dagRuns/{dag_run_id}` | ❌ |
| Update DAG Run | `/api/v1/dags/{dag_id}/dagRuns/{dag_run_id}` | ❌ |
| Delete DAG Run | `/api/v1/dags/{dag_id}/dagRuns/{dag_run_id}` | ❌ |
| **Tasks** | | |
| List DAG Tasks | `/api/v1/dags/{dag_id}/tasks` | ✅ |
| Get Task Details | `/api/v1/dags/{dag_id}/tasks/{task_id}` | ❌ |
| Get Task Instance | `/api/v1/dags/{dag_id}/dagRuns/{dag_run_id}/taskInstances/{task_id}` | ✅ |
| List Task Instances | `/api/v1/dags/{dag_id}/dagRuns/{dag_run_id}/taskInstances` | ✅ |
| Update Task Instance | `/api/v1/dags/{dag_id}/dagRuns/{dag_run_id}/taskInstances/{task_id}` | ❌ |
| **System** | | |
| Get Import Errors | `/api/v1/importErrors` | ✅ |
| Get Import Error Details | `/api/v1/importErrors/{import_error_id}` | ✅ |
| Get Health Status | `/api/v1/health` | ✅ |
| Get Version | `/api/v1/version` | ✅ |
| **Variables** | | |
| List Variables | `/api/v1/variables` | ❌ |
| Create Variable | `/api/v1/variables` | ❌ |
| Get Variable | `/api/v1/variables/{variable_key}` | ❌ |
| Update Variable | `/api/v1/variables/{variable_key}` | ❌ |
| Delete Variable | `/api/v1/variables/{variable_key}` | ❌ |
| **Connections** | | |
| List Connections | `/api/v1/connections` | ❌ |
| Create Connection | `/api/v1/connections` | ❌ |
| Get Connection | `/api/v1/connections/{connection_id}` | ❌ |
| Update Connection | `/api/v1/connections/{connection_id}` | ❌ |
| Delete Connection | `/api/v1/connections/{connection_id}` | ❌ |

## Setup

### Environment Variables

Set the following environment variables:
```
AIRFLOW_HOST=<your-airflow-host>
AIRFLOW_USERNAME=<your-airflow-username>
AIRFLOW_PASSWORD=<your-airflow-password>
```

### Usage with Claude Desktop

Add to your `claude_desktop_config.json`:

```json
{
  "mcpServers": {
    "mcp-server-apache-airflow": {
      "command": "uvx",
      "args": ["mcp-server-apache-airflow"],
      "env": {
        "AIRFLOW_HOST": "https://your-airflow-host",
        "AIRFLOW_USERNAME": "your-username",
        "AIRFLOW_PASSWORD": "your-password"
      }
    }
  }
}
```

Alternative configuration using `uv`:

```json
{
  "mcpServers": {
    "mcp-server-apache-airflow": {
      "command": "uv",
      "args": [
        "--directory",
        "/path/to/mcp-server-apache-airflow",
        "run",
        "mcp-server-apache-airflow"
      ],
      "env": {
        "AIRFLOW_HOST": "https://your-airflow-host",
        "AIRFLOW_USERNAME": "your-username",
        "AIRFLOW_PASSWORD": "your-password"
      }
    }
  }
}
```

Replace `/path/to/mcp-server-apache-airflow` with the actual path where you've cloned the repository.

### Manual Execution

You can also run the server manually:
```bash
python src/server.py
```

Options:
- `--port`: Port to listen on for SSE (default: 8000)
- `--transport`: Transport type (stdio/sse, default: stdio)

## Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

## License

[Add your license information here]



            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "mcp-server-apache-airflow",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.10",
    "maintainer_email": null,
    "keywords": "airflow, apache-airflow, mcp, model-context-protocol",
    "author": null,
    "author_email": "Gyeongmo Yang <me@gmyang.dev>",
    "download_url": "https://files.pythonhosted.org/packages/31/c6/d1e8b3c4cd4bfdb89bf5df9052f4eb03be68cb749e4a62d6038931e3e97c/mcp_server_apache_airflow-0.1.3.tar.gz",
    "platform": null,
    "description": "# mcp-server-apache-airflow\n\nA Model Context Protocol (MCP) server implementation for Apache Airflow, enabling seamless integration with MCP clients. This project provides a standardized way to interact with Apache Airflow through the Model Context Protocol.\n\n## About\n\nThis project implements a [Model Context Protocol](https://modelcontextprotocol.io/introduction) server that wraps Apache Airflow's REST API, allowing MCP clients to interact with Airflow in a standardized way.\n\n## Feature Implementation Status\n\n| Feature | API Path | Status |\n|---------|----------|--------|\n| **DAG Management** | | |\n| List DAGs | `/api/v1/dags` | \u2705 |\n| Get DAG Details | `/api/v1/dags/{dag_id}` | \u2705 |\n| Pause DAG | `/api/v1/dags/{dag_id}` | \u2705 |\n| Unpause DAG | `/api/v1/dags/{dag_id}` | \u2705 |\n| Update DAG | `/api/v1/dags/{dag_id}` | \u274c |\n| Delete DAG | `/api/v1/dags/{dag_id}` | \u274c |\n| **DAG Runs** | | |\n| List DAG Runs | `/api/v1/dags/{dag_id}/dagRuns` | \u2705 |\n| Create DAG Run | `/api/v1/dags/{dag_id}/dagRuns` | \u2705 |\n| Get DAG Run Details | `/api/v1/dags/{dag_id}/dagRuns/{dag_run_id}` | \u274c |\n| Update DAG Run | `/api/v1/dags/{dag_id}/dagRuns/{dag_run_id}` | \u274c |\n| Delete DAG Run | `/api/v1/dags/{dag_id}/dagRuns/{dag_run_id}` | \u274c |\n| **Tasks** | | |\n| List DAG Tasks | `/api/v1/dags/{dag_id}/tasks` | \u2705 |\n| Get Task Details | `/api/v1/dags/{dag_id}/tasks/{task_id}` | \u274c |\n| Get Task Instance | `/api/v1/dags/{dag_id}/dagRuns/{dag_run_id}/taskInstances/{task_id}` | \u2705 |\n| List Task Instances | `/api/v1/dags/{dag_id}/dagRuns/{dag_run_id}/taskInstances` | \u2705 |\n| Update Task Instance | `/api/v1/dags/{dag_id}/dagRuns/{dag_run_id}/taskInstances/{task_id}` | \u274c |\n| **System** | | |\n| Get Import Errors | `/api/v1/importErrors` | \u2705 |\n| Get Import Error Details | `/api/v1/importErrors/{import_error_id}` | \u2705 |\n| Get Health Status | `/api/v1/health` | \u2705 |\n| Get Version | `/api/v1/version` | \u2705 |\n| **Variables** | | |\n| List Variables | `/api/v1/variables` | \u274c |\n| Create Variable | `/api/v1/variables` | \u274c |\n| Get Variable | `/api/v1/variables/{variable_key}` | \u274c |\n| Update Variable | `/api/v1/variables/{variable_key}` | \u274c |\n| Delete Variable | `/api/v1/variables/{variable_key}` | \u274c |\n| **Connections** | | |\n| List Connections | `/api/v1/connections` | \u274c |\n| Create Connection | `/api/v1/connections` | \u274c |\n| Get Connection | `/api/v1/connections/{connection_id}` | \u274c |\n| Update Connection | `/api/v1/connections/{connection_id}` | \u274c |\n| Delete Connection | `/api/v1/connections/{connection_id}` | \u274c |\n\n## Setup\n\n### Environment Variables\n\nSet the following environment variables:\n```\nAIRFLOW_HOST=<your-airflow-host>\nAIRFLOW_USERNAME=<your-airflow-username>\nAIRFLOW_PASSWORD=<your-airflow-password>\n```\n\n### Usage with Claude Desktop\n\nAdd to your `claude_desktop_config.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"mcp-server-apache-airflow\": {\n      \"command\": \"uvx\",\n      \"args\": [\"mcp-server-apache-airflow\"],\n      \"env\": {\n        \"AIRFLOW_HOST\": \"https://your-airflow-host\",\n        \"AIRFLOW_USERNAME\": \"your-username\",\n        \"AIRFLOW_PASSWORD\": \"your-password\"\n      }\n    }\n  }\n}\n```\n\nAlternative configuration using `uv`:\n\n```json\n{\n  \"mcpServers\": {\n    \"mcp-server-apache-airflow\": {\n      \"command\": \"uv\",\n      \"args\": [\n        \"--directory\",\n        \"/path/to/mcp-server-apache-airflow\",\n        \"run\",\n        \"mcp-server-apache-airflow\"\n      ],\n      \"env\": {\n        \"AIRFLOW_HOST\": \"https://your-airflow-host\",\n        \"AIRFLOW_USERNAME\": \"your-username\",\n        \"AIRFLOW_PASSWORD\": \"your-password\"\n      }\n    }\n  }\n}\n```\n\nReplace `/path/to/mcp-server-apache-airflow` with the actual path where you've cloned the repository.\n\n### Manual Execution\n\nYou can also run the server manually:\n```bash\npython src/server.py\n```\n\nOptions:\n- `--port`: Port to listen on for SSE (default: 8000)\n- `--transport`: Transport type (stdio/sse, default: stdio)\n\n## Contributing\n\nContributions are welcome! Please feel free to submit a Pull Request.\n\n## License\n\n[Add your license information here]\n\n\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Model Context Protocol (MCP) server for Apache Airflow",
    "version": "0.1.3",
    "project_urls": {
        "Bug Tracker": "https://github.com/yangkyeongmo/mcp-server-apache-airflow/issues",
        "Homepage": "https://github.com/yangkyeongmo/mcp-server-apache-airflow",
        "Repository": "https://github.com/yangkyeongmo/mcp-server-apache-airflow.git"
    },
    "split_keywords": [
        "airflow",
        " apache-airflow",
        " mcp",
        " model-context-protocol"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "1aabc429094fd0e7cfada96347d89bd60e17b3e25de071fbbace88e0b037034f",
                "md5": "d95a5b2f43c37bb7783b39aebf94fcbb",
                "sha256": "9a87b44f57b9957ae2845e71dcaf9bf7cec60f17db66e092ba8719a7ec6d1274"
            },
            "downloads": -1,
            "filename": "mcp_server_apache_airflow-0.1.3-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "d95a5b2f43c37bb7783b39aebf94fcbb",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.10",
            "size": 7126,
            "upload_time": "2025-02-14T04:19:22",
            "upload_time_iso_8601": "2025-02-14T04:19:22.034366Z",
            "url": "https://files.pythonhosted.org/packages/1a/ab/c429094fd0e7cfada96347d89bd60e17b3e25de071fbbace88e0b037034f/mcp_server_apache_airflow-0.1.3-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "31c6d1e8b3c4cd4bfdb89bf5df9052f4eb03be68cb749e4a62d6038931e3e97c",
                "md5": "4bbc3e97120551c02a22f7ab8fd20888",
                "sha256": "47955e2dc7adead1044d784c1344badb778260aab2330928286ab5251924aafd"
            },
            "downloads": -1,
            "filename": "mcp_server_apache_airflow-0.1.3.tar.gz",
            "has_sig": false,
            "md5_digest": "4bbc3e97120551c02a22f7ab8fd20888",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.10",
            "size": 5986,
            "upload_time": "2025-02-14T04:19:23",
            "upload_time_iso_8601": "2025-02-14T04:19:23.817324Z",
            "url": "https://files.pythonhosted.org/packages/31/c6/d1e8b3c4cd4bfdb89bf5df9052f4eb03be68cb749e4a62d6038931e3e97c/mcp_server_apache_airflow-0.1.3.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-02-14 04:19:23",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "yangkyeongmo",
    "github_project": "mcp-server-apache-airflow",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "mcp-server-apache-airflow"
}
        
Elapsed time: 1.45450s