Skip to main content
Glama
yangkyeongmo

MCP Server for Apache Airflow

by yangkyeongmo

update_dag_run_state

Change the execution status of an Apache Airflow DAG run by specifying its DAG ID and run ID to manage workflow progress.

Instructions

Update a DAG run state by DAG ID and DAG run ID

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
dag_idYes
dag_run_idYes
stateNo

Implementation Reference

  • The core handler function implementing the 'update_dag_run_state' tool. It updates the state of a specific DAG run using the Airflow API client.
    async def update_dag_run_state( dag_id: str, dag_run_id: str, state: Optional[str] = None ) -> List[Union[types.TextContent, types.ImageContent, types.EmbeddedResource]]: update_dag_run_state = UpdateDagRunState(state=state) response = dag_run_api.update_dag_run_state( dag_id=dag_id, dag_run_id=dag_run_id, update_dag_run_state=update_dag_run_state, ) return [types.TextContent(type="text", text=str(response.to_dict()))]
  • The list returned by get_all_functions() in dagrun.py, which includes the registration details (function reference, name, description, read-only flag) for the 'update_dag_run_state' tool. This list is imported and used in src/main.py to register the tool with the MCP server.
    return [ (post_dag_run, "post_dag_run", "Trigger a DAG by ID", False), (get_dag_runs, "get_dag_runs", "Get DAG runs by ID", True), (get_dag_runs_batch, "get_dag_runs_batch", "List DAG runs (batch)", True), (get_dag_run, "get_dag_run", "Get a DAG run by DAG ID and DAG run ID", True), (update_dag_run_state, "update_dag_run_state", "Update a DAG run state by DAG ID and DAG run ID", False), (delete_dag_run, "delete_dag_run", "Delete a DAG run by DAG ID and DAG run ID", False), (clear_dag_run, "clear_dag_run", "Clear a DAG run", False), (set_dag_run_note, "set_dag_run_note", "Update the DagRun note", False), (get_upstream_dataset_events, "get_upstream_dataset_events", "Get dataset events for a DAG run", True), ]
  • Import of the UpdateDagRunState model, which defines the structure for the request body used in the tool's handler to validate and send the new state to the Airflow API.
    from airflow_client.client.model.update_dag_run_state import UpdateDagRunState
  • src/main.py:95-96 (registration)
    The generic MCP tool registration code in main.py that adds all tools from DAGRUN module (including update_dag_run_state) to the FastMCP app using Tool.from_function, inferring schema from function signature.
    for func, name, description, *_ in functions: app.add_tool(Tool.from_function(func, name=name, description=description))

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/yangkyeongmo/mcp-server-apache-airflow'

If you have feedback or need assistance with the MCP directory API, please join our Discord server