MCP Tools Reference: composer.googleapis.com

Tool: get_dag_source_code

Retrieves the DAG source code from a Managed Airflow environment.

Use this tool when you want to understand DAG implementation details, for example to understand why a DAG run has failed, or to debug DAG's behavior. The tool returns the latest version of the source code.

The following code sample shows how to use curl to call the get_dag_source_code 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": "get_dag_source_code",
    "arguments": {
      // provide these details according to the tool's MCP specification
    }
  },
  "jsonrpc": "2.0",
  "id": 1
}'

Input Schema

Parameters of the get_dag_source_code tool.

GetDagSourceCodeRequestMCP

JSON representation
{
  "environment": string,
  "dagId": string
}
Fields
environment

string

Required. The name of the environment. Format: projects/{projectId}/locations/{locationId}/environments/{environmentId}

dagId

string

Required. The Airflow DAG ID.

Output Schema

A source code of a DAG.

SourceCode

JSON representation
{
  "code": string
}
Fields
code

string

The source code of the user-defined DAG.

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: ❌