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
| Name | Required | Description | Default |
|---|---|---|---|
| dag_id | Yes | ||
| dag_run_id | Yes | ||
| state | No |
Implementation Reference
- src/airflow/dagrun.py:188-197 (handler)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()))]
- src/airflow/dagrun.py:19-29 (registration)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), ]
- src/airflow/dagrun.py:9-9 (schema)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))