Tool: trigger_dag
Triggers a DAG run for a specified DAG in a Managed Airflow environment.
Use this tool when you need to manually start a new run of a DAG.
The tool returns a DAG run object containing the details and state of the newly triggered run. You can use the get_dag_run tool to poll for state changes.
The following code sample shows how to use curl to call the trigger_dag 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": "trigger_dag", "arguments": { // provide these details according to the tool's MCP specification } }, "jsonrpc": "2.0", "id": 1 }' |
Input Schema
Parameters of the trigger_dag tool.
TriggerDagRequestMCP
| JSON representation |
|---|
{ "environment": string, "dagId": string } |
| Fields | |
|---|---|
environment |
Required. The name of the environment. Format: |
dagId |
Required. The Airflow DAG ID. |
Output Schema
A single DAG run.
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: ✅