Naftiko · Capability

Airflow Prefect Dagster Pipeline Reusability Capability

A Capability Composition over the Airflow + Prefect + Dagster pipeline trio that exposes shared steps as reusable capabilities — the API-reusability ask, made concrete on actual data stack.

Run with Naftiko NaftikoAirflowPrefectDagsterReusability

What You Can Do

POST
Trigger shared pipeline — Trigger a shared pipeline step on whichever orchestrator owns it.
/pipelines/{{pipeline_id}}/trigger

MCP Tools

list-airflow-dags

List Airflow DAGs.

read-only
list-prefect-deployments

List Prefect deployments.

trigger-shared-pipeline

Trigger a shared pipeline step.

Capability Spec

airflow-prefect-dagster-pipeline-reusability-capability.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  title: Airflow Prefect Dagster Pipeline Reusability Capability
  description: A Capability Composition over the Airflow + Prefect + Dagster pipeline trio that exposes shared steps as reusable capabilities — the API-reusability ask, made concrete on actual data stack.
  tags: [Naftiko, Airflow, Prefect, Dagster, Reusability]
  created: '2026-05-01'
  modified: '2026-05-04'
binds:
- namespace: airflow-env
  keys: {AIRFLOW_HOST: AIRFLOW_HOST, AIRFLOW_TOKEN: AIRFLOW_TOKEN}
- namespace: prefect-env
  keys: {PREFECT_HOST: PREFECT_HOST, PREFECT_TOKEN: PREFECT_TOKEN}
- namespace: dagster-env
  keys: {DAGSTER_HOST: DAGSTER_HOST, DAGSTER_TOKEN: DAGSTER_TOKEN}
capability:
  consumes:
  - namespace: airflow
    type: http
    baseUri: https://{{AIRFLOW_HOST}}
    authentication: {type: bearer, token: '{{AIRFLOW_TOKEN}}'}
    resources:
    - name: dags
      path: /api/v1/dags
      operations: [{name: list-dags, method: GET}]
    - name: dag-run
      path: /api/v1/dags/{{dag_id}}/dagRuns
      operations:
      - {name: trigger-dag, method: POST, inputParameters: [{name: dag_id, in: path}]}
  - namespace: prefect
    type: http
    baseUri: https://{{PREFECT_HOST}}
    authentication: {type: bearer, token: '{{PREFECT_TOKEN}}'}
    resources:
    - name: deployments
      path: /api/deployments/filter
      operations: [{name: list-deployments, method: POST}]
    - name: deployment-run
      path: /api/deployments/{{deployment_id}}/create_flow_run
      operations:
      - {name: trigger-deployment, method: POST, inputParameters: [{name: deployment_id, in: path}]}
  - namespace: dagster
    type: http
    baseUri: https://{{DAGSTER_HOST}}
    authentication: {type: bearer, token: '{{DAGSTER_TOKEN}}'}
    resources:
    - name: graphql
      path: /graphql
      operations: [{name: graphql-query, method: POST, description: Dagster GraphQL endpoint for jobs and runs.}]
  exposes:
  - type: rest
    address: 0.0.0.0
    port: 8080
    namespace: airflow-prefect-dagster-pipeline-reusability-capability-rest
    description: REST surface exposing shared pipeline steps reusable across Airflow/Prefect/Dagster.
    resources:
    - name: trigger
      path: /pipelines/{{pipeline_id}}/trigger
      operations:
      - method: POST
        name: trigger-shared-pipeline
        description: Trigger a shared pipeline step on whichever orchestrator owns it.
        inputParameters: [{name: pipeline_id, in: path, type: string}]
        call: airflow.trigger-dag
  - type: mcp
    address: 0.0.0.0
    port: 3010
    namespace: airflow-prefect-dagster-pipeline-reusability-capability-mcp
    description: MCP server for cross-orchestrator pipeline triggering.
    tools:
    - {name: list-airflow-dags, description: List Airflow DAGs., hints: {readOnly: true}, call: airflow.list-dags}
    - {name: list-prefect-deployments, description: List Prefect deployments., call: prefect.list-deployments}
    - name: trigger-shared-pipeline
      description: Trigger a shared pipeline step.
      inputParameters: [{name: pipeline_id, type: string, required: true}]
      call: airflow.trigger-dag
  - type: skill
    address: 0.0.0.0
    port: 3011
    namespace: airflow-prefect-dagster-pipeline-reusability-capability-skills
    description: Skill bundle for reusable pipeline triggering.
    skills:
    - name: airflow-prefect-dagster-pipeline-reusability-capability
      description: Trigger shared pipeline steps across Airflow, Prefect, Dagster.
      location: file:///opt/naftiko/skills/airflow-prefect-dagster-pipeline-reusability-capability
      allowed-tools: list-airflow-dags,list-prefect-deployments,trigger-shared-pipeline
      tools:
      - {name: list-airflow-dags, from: {sourceNamespace: airflow-prefect-dagster-pipeline-reusability-capability-mcp, action: list-airflow-dags}}
      - {name: list-prefect-deployments, from: {sourceNamespace: airflow-prefect-dagster-pipeline-reusability-capability-mcp, action: list-prefect-deployments}}
      - {name: trigger-shared-pipeline, from: {sourceNamespace: airflow-prefect-dagster-pipeline-reusability-capability-mcp, action: trigger-shared-pipeline}}