Tool: list_dag_runs
Lists DAG runs in a Managed Airflow environment.
Use this tool to get a list of DAG runs in the environment, or runs for a specific DAG, for example to determine the overall healthiness of the environment or DAG. The tool returns DAG runs in the order of creation date, most recent first.
Results are paginated; use page_size to control the number of results per page and page_token from a previous response to get the next page. If page_token is not present in the response, there are no more results.
The following code sample shows how to use curl to call the list_dag_runs MCP tool.
| Curl Request |
|---|
curl --location 'https://composer.{region}.rep.googleapis.com/mcp' \ --header 'content-type: application/json' \ --header 'accept: application/json, text/event-stream' \ --data '{ "method": "tools/call", "params": { "name": "list_dag_runs", "arguments": { // provide these details according to the tool's MCP specification } }, "jsonrpc": "2.0", "id": 1 }' |
Input Schema
Parameters of the list_dag_runs tool.
ListDagRunsRequestMCP
| JSON representation |
|---|
{ "environment": string, "dagId": string, "pageSize": integer, "pageToken": string } |
| Fields | |
|---|---|
environment |
Required. The name of the environment. Format: |
dagId |
Optional. The Airflow DAG ID to list runs for. If specified, the tool will return runs of this DAG, otherwise it will return runs of all DAGs. |
pageSize |
Optional. The maximum number of DAG runs to return. The tool may return fewer than this value. If unspecified or set to 0, defaults to 20. |
pageToken |
Optional. A page token, received from a previous |
Output Schema
Response to ListDagRunsRequest.
ListDagRunsResponse
| JSON representation |
|---|
{
"dagRuns": [
{
object ( |
| Fields | |
|---|---|
dagRuns[] |
The list of DAG runs returned. |
nextPageToken |
The page token used to query for the next page if one exists. |
DagRun
| JSON representation |
|---|
{ "name": string, "dagRunId": string, "dagId": string, "state": enum ( |
| Fields | |
|---|---|
name |
The resource name of the DAG, in the form: "projects/{projectId}/locations/{locationId}/environments/{environmentId}/dags/{dagId}/dagRuns/{dagRunId}". |
dagRunId |
The DAG run ID. |
dagId |
The DAG ID of the DAG whose execution is described by this DAG run. |
state |
DAG run state. |
type |
DAG run type (how it got created/executed). |
executionDate |
The logical date and time which the DAG run and its task instances are running for. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: |
startDate |
Timestamp when the DAG run started. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: |
endDate |
Timestamp when the DAG run ended. Set only if the DAG run has finished. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: |
dataIntervalStart |
Start of the data interval. Added in version 2.2. If run has been triggered manually, this field is equal to execution_date. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: |
dataIntervalEnd |
End of the data interval. Added in version 2.2. If run has been triggered manually, this field is equal to execution_date. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: |
runAfter |
Timestamp when the DAG run was scheduled to start. Added in Airflow 3. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: |
note |
The note content of the DAG run. Added in Airflow 2.10.0. |
cloudLoggingFilter |
Output only. A Cloud Logging filter that can be used to retrieve the logs of this DAG run. |
Timestamp
| JSON representation |
|---|
{ "seconds": string, "nanos": integer } |
| Fields | |
|---|---|
seconds |
Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be between -62135596800 and 253402300799 inclusive (which corresponds to 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z). |
nanos |
Non-negative fractions of a second at nanosecond resolution. This field is the nanosecond portion of the duration, not an alternative to seconds. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be between 0 and 999,999,999 inclusive. |
State
State of the DAG run.
| Enums | |
|---|---|
STATE_UNSPECIFIED |
The state of the DAG run is unknown. |
RUNNING |
The DAG run is being executed. |
SUCCEEDED |
The DAG run is finished successfully. |
FAILED |
The DAG run is finished with an error. |
QUEUED |
The DAG run is queued for execution. |
Type
Type of the DAG run (how it is created/executed).
| Enums | |
|---|---|
TYPE_UNSPECIFIED |
The type of the DAG run is unknown. |
BACKFILL |
Backfill run. |
SCHEDULED |
Scheduled run. |
MANUAL |
Manually triggered run. |
DATASET_TRIGGERED |
Triggered by a dataset update. |
ASSET_TRIGGERED |
Triggered by an asset update. |
Tool Annotations
Tool annotations are sent to MCP clients to describe the basic risk of a given tool. Most clients treat these hints as untrusted, but they can be used to decide when a confirmation prompt might be sent to a user.
Along with the title string, the following boolean hints are defined as follows:
readOnlyHint: If true, the tool doesn't modify its environment. Default: false.destructiveHint: If true, then the tool can perform destructive actions. If false, then the tool can only perform additive actions. Default: true.idempotentHint: If true, then calling the tool repeatedly with the same arguments will have no additional effect on its environment. Default: false.openWorldHint: If true, then the tool can interact with an 'open world' of external entities. If false, then the tool can only interact with internal entities. For example, a web search tool would be open world, while a memory tool would not be open world.
Destructive Hint: ❌ | Idempotent Hint: ✅ | Read Only Hint: ✅ | Open World Hint: ❌