MCP Server for Apache Airflow

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

Integrations

  • Allows interaction with Apache Airflow through a Model Context Protocol server that wraps Airflow's REST API. Supports DAG management (listing, viewing details, pausing/unpausing), DAG runs (listing, creating), task management (listing tasks and task instances), and system information (health status, version, import errors).

mcp-server-apache-airflow

Apache Airflow용 MCP(Model Context Protocol) 서버 구현으로, MCP 클라이언트와의 원활한 통합을 지원합니다. 이 프로젝트는 MCP(Model Context Protocol)를 통해 Apache Airflow와 상호 작용하는 표준화된 방법을 제공합니다.

에 대한

이 프로젝트는 Apache Airflow의 REST API를 래핑하는 모델 컨텍스트 프로토콜( MPP) 서버를 구현하여 MCP 클라이언트가 표준화된 방식으로 Airflow와 상호 작용할 수 있도록 합니다. 호환성과 유지 관리를 위해 공식 Apache Airflow 클라이언트 라이브러리를 사용합니다.

기능 구현 상태

특징API 경로상태
DAG 관리
DAG 목록/api/v1/dags
DAG 세부 정보 가져오기/api/v1/dags/{dag_id}
DAG 일시 정지/api/v1/dags/{dag_id}
DAG 일시 정지 해제/api/v1/dags/{dag_id}
DAG 업데이트/api/v1/dags/{dag_id}
DAG 삭제/api/v1/dags/{dag_id}
DAG 소스 가져오기/api/v1/dagSources/{file_token}
여러 DAG 패치/api/v1/dags
DAG 파일 재분석/api/v1/dagSources/{file_token}/reparse
DAG 실행
DAG 실행 목록/api/v1/dags/{dag_id}/dagRuns
DAG 실행 만들기/api/v1/dags/{dag_id}/dagRuns
DAG 실행 세부 정보 가져오기/api/v1/dags/{dag_id}/dagRuns/{dag_run_id}
DAG 실행 업데이트/api/v1/dags/{dag_id}/dagRuns/{dag_run_id}
DAG 실행 삭제/api/v1/dags/{dag_id}/dagRuns/{dag_run_id}
DAG 실행 배치 가져오기/api/v1/dags/~/dagRuns/list
클리어 DAG 런/api/v1/dags/{dag_id}/dagRuns/{dag_run_id}/clear
DAG 실행 참고 사항 설정/api/v1/dags/{dag_id}/dagRuns/{dag_run_id}/setNote
업스트림 데이터 세트 이벤트 가져오기/api/v1/dags/{dag_id}/dagRuns/{dag_run_id}/upstreamDatasetEvents
작업
DAG 작업 목록/api/v1/dags/{dag_id}/tasks
작업 세부 정보 가져오기/api/v1/dags/{dag_id}/tasks/{task_id}
작업 인스턴스 가져오기/api/v1/dags/{dag_id}/dagRuns/{dag_run_id}/taskInstances/{task_id}
작업 인스턴스 나열/api/v1/dags/{dag_id}/dagRuns/{dag_run_id}/taskInstances
작업 인스턴스 업데이트/api/v1/dags/{dag_id}/dagRuns/{dag_run_id}/taskInstances/{task_id}
작업 인스턴스 지우기/api/v1/dags/{dag_id}/clearTaskInstances
작업 인스턴스 상태 설정/api/v1/dags/{dag_id}/updateTaskInstancesState
변수
변수 목록/api/v1/variables
변수 생성/api/v1/variables
변수 가져오기/api/v1/variables/{variable_key}
변수 업데이트/api/v1/variables/{variable_key}
변수 삭제/api/v1/variables/{variable_key}
사이
연결 목록/api/v1/connections
연결 생성/api/v1/connections
연결 받기/api/v1/connections/{connection_id}
연결 업데이트/api/v1/connections/{connection_id}
연결 삭제/api/v1/connections/{connection_id}
테스트 연결/api/v1/connections/test
풀 목록/api/v1/pools
풀 만들기/api/v1/pools
풀을 얻으세요/api/v1/pools/{pool_name}
풀 업데이트/api/v1/pools/{pool_name}
풀 삭제/api/v1/pools/{pool_name}
엑스컴
XCom 목록/api/v1/dags/{dag_id}/dagRuns/{dag_run_id}/taskInstances/{task_id}/xcomEntries
XCom Entry 받기/api/v1/dags/{dag_id}/dagRuns/{dag_run_id}/taskInstances/{task_id}/xcomEntries/{xcom_key}
데이터 세트
데이터 세트 목록/api/v1/datasets
데이터 세트 가져오기/api/v1/datasets/{uri}
데이터 세트 이벤트 가져오기/api/v1/datasetEvents
데이터 세트 이벤트 생성/api/v1/datasetEvents
DAG 데이터 세트 대기 이벤트 가져오기/api/v1/dags/{dag_id}/dagRuns/queued/datasetEvents/{uri}
DAG 데이터 세트 대기 이벤트 가져오기/api/v1/dags/{dag_id}/dagRuns/queued/datasetEvents
DAG 데이터 세트 대기 이벤트 삭제/api/v1/dags/{dag_id}/dagRuns/queued/datasetEvents/{uri}
DAG 데이터 세트 대기 이벤트 삭제/api/v1/dags/{dag_id}/dagRuns/queued/datasetEvents
데이터 세트 대기 이벤트 가져오기/api/v1/datasets/{uri}/dagRuns/queued/datasetEvents
데이터 세트 대기 이벤트 삭제/api/v1/datasets/{uri}/dagRuns/queued/datasetEvents
모니터링
건강을 얻으세요/api/v1/health
DAG 통계
DAG 통계 가져오기/api/v1/dags/statistics
구성
구성 가져오기/api/v1/config
플러그인
플러그인 받기/api/v1/plugins
제공자
제공자 목록/api/v1/providers
이벤트 로그
이벤트 로그 나열/api/v1/eventLogs
이벤트 로그 가져오기/api/v1/eventLogs/{event_log_id}
체계
가져오기 오류 가져오기/api/v1/importErrors
가져오기 오류 세부 정보 가져오기/api/v1/importErrors/{import_error_id}
건강 상태 가져오기/api/v1/health
버전 받기/api/v1/version

설정

종속성

이 프로젝트는 공식 Apache Airflow 클라이언트 라이브러리( apache-airflow-client )에 의존합니다. 이 패키지를 설치하면 자동으로 설치됩니다.

환경 변수

다음 환경 변수를 설정하세요.

지엑스피1

Claude Desktop과 함께 사용

claude_desktop_config.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" } } } }

uv 사용한 대체 구성:

{ "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" } } } }

/path/to/mcp-server-apache-airflow 저장소를 복제한 실제 경로로 바꾸세요.

API 그룹 선택

--apis 플래그를 설정하여 사용할 API 그룹을 선택할 수 있습니다.

uv run mcp-server-apache-airflow --apis "dag,dagrun"

기본적으로 모든 API를 사용합니다.

허용되는 값은 다음과 같습니다.

  • 설정
  • 사이
  • 가리비
  • 다그런
  • 다그스탯
  • 데이터 세트
  • 이벤트로그
  • 수입 오류
  • 모니터링
  • 플러그인
  • 수영장
  • 공급자
  • 작업 인스턴스
  • 변하기 쉬운
  • 엑스컴

수동 실행

서버를 수동으로 실행할 수도 있습니다.

make run

make run 다음 옵션을 허용합니다.

옵션:

  • --port : SSE를 수신할 포트(기본값: 8000)
  • --transport : 전송 유형(stdio/sse, 기본값: stdio)

또는 동일한 매개변수를 허용하는 sse 서버를 직접 실행할 수도 있습니다.

make run-sse

Smithery를 통해 설치

Smithery를 통해 Claude Desktop에 Apache Airflow MCP 서버를 자동으로 설치하려면:

npx -y @smithery/cli install @yangkyeongmo/mcp-server-apache-airflow --client claude

기여하다

기여를 환영합니다! 풀 리퀘스트를 제출해 주세요.

특허

MIT 라이센스

You must be authenticated.

A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

MCP 클라이언트가 Apache Airflow의 REST API와 상호 작용할 수 있는 표준화된 방법을 제공하여 DAG 관리 및 Airflow 시스템 상태 모니터링과 같은 작업을 지원합니다.

  1. About
    1. Feature Implementation Status
      1. Setup
        1. Dependencies
        2. Environment Variables
        3. Usage with Claude Desktop
        4. Selecting the API groups
        5. Manual Execution
        6. Installing via Smithery
      2. Contributing
        1. License
          ID: e99b6vx9lw