Dataform MCP server provides tools to interact with Dataform.
A Model Context Protocol (MCP) server acts as a proxy between an external service that provides context, data, or capabilities to a Large Language Model (LLM) or AI application. MCP servers connect AI applications to external systems such as databases and web services, translating their responses into a format that the AI application can understand.
Server Setup
You must enable MCP servers and set up authentication before use. For more information about using Google and Google Cloud remote MCP servers, see Google Cloud MCP servers overview.
Server Endpoints
An MCP service endpoint is the network address and communication interface (usually a URL) of the MCP server that an AI application (the Host for the MCP client) uses to establish a secure, standardized connection. It is the point of contact for the LLM to request context, call a tool, or access a resource. Google MCP endpoints can be global or regional.
The Dataform API MCP server has the following global MCP endpoint:
- https://dataform.googleapis.com/mcp
MCP Tools
An MCP tool is a function or executable capability that an MCP server exposes to a LLM or AI application to perform an action in the real world.
Tools
The dataform.googleapis.com MCP server has the following tools:
| MCP Tools | |
|---|---|
list_repositories |
List the Dataform repositories in a given Google Cloud project and location. The |
create_repository |
Create a new Dataform repository in a given Google Cloud project and location. This tool establishes the root resource required for all other transformation assets, such as compilation results and workflow configurations. A repository must be created before any other Dataform MCP tool can be used. Enabling this tool is the first step in setting up a Dataform project. The The Omit the |
commit_repository_changes |
Apply a Git commit to record the state of files within a Dataform repository. This tool is primarily intended for managing single-file assets—such as notebooks or saved queries—that reside directly in the repository. This tool isn't used in typical pipeline workflows that require workspaces. Don't use this tool on repositories connected to a remote Git host. To verify, use the This commit action creates a permanent entry in the repository's internal Git history. The |
read_repository_file |
Return the contents of a file that's inside a Dataform repository. This tool isn't for standard pipeline development. It's intended for direct repository interaction, typically for managing single-file assets such as notebooks or saved queries. Don't use this tool on repositories connected to a remote Git host. To verify, use the The The |
query_repository_directory_contents |
Return the contents of a given Dataform repository directory. This tool is primarily used to list and manage single-file assets directly in the repository. Don't use this tool on repositories connected to a remote Git host. To verify, use the The The |
list_workflow_configs |
List the workflow configurations in a given Dataform repository. The |
get_workflow_config |
Fetch a single Dataform workflow configuration. The |
create_workflow_config |
Create a new workflow configuration in a given Dataform repository. The The A workflow configuration pairs a Prerequisite: You must first create a Workflow invocations created from this workflow configuration run under a custom service account. To specify this service account, set the |
update_workflow_config |
Update the properties of an existing Dataform workflow configuration, such as its execution schedule (cron), associated release configuration, or invocation overrides. Modifications to the The The Workflow invocations created from this workflow configuration run under a custom service account. To specify this service account, set the |
list_release_configs |
List the release configurations in a given Dataform repository. The |
get_release_config |
Fetch a single Dataform release configuration. The |
create_release_config |
Create a new release configuration in a given Dataform repository. The The Omit the |
update_release_config |
Update an existing Dataform release configuration, which serves as a template for automatic code compilation. Updates to fields like Omit the The |
create_compilation_result |
Create a new Dataform compilation result in a given Google Cloud project and location. This tool compiles The Agents can validate the compiled SQL by inspecting A valid compilation result is required before triggering a manual workflow invocation using the Prerequisite: Create a repository using the |
list_workflow_invocations |
List the workflow invocations in a given Dataform repository. The |
create_workflow_invocation |
Create a new workflow invocation in a given Dataform repository. The Either the
Prerequisite: To trigger an invocation, you must first create either a The workflow invocation runs under a service account determined by the compilation source:
The service account can't be the default Dataform service agent. The service account must have the necessary permissions to execute the workflow, and the user must be authorized to act as the selected service account. This authorization is typically granted through the Service Account User role ( |
cancel_workflow_invocation |
Request the graceful termination of a running Dataform workflow invocation. This tool sends a cancellation signal to the running workflow. However, any individual BigQuery jobs, table creations, or assertions that have already completed as part of this workflow will not be rolled back. The |
get_compilation_result |
Fetch a single Dataform compilation result. The |
query_compilation_actions |
Return the compilation result actions for a given Dataform compilation result. The |
query_workflow_invocation_actions |
Return the workflow invocation actions for a given Dataform workflow invocation. These actions represent the individual BigQuery jobs, table creations, or assertions that make up the workflow. The |
get_workflow_invocation |
Fetch a single Dataform workflow invocation. The |
list_workspaces |
List the development workspaces in a given Dataform repository. Use this tool to discover existing workspaces before performing file operations (using tools such as The |
get_workspace |
Fetch a single Dataform development workspace. The If you don't know the exact workspace name, use the |
create_workspace |
Create a new development workspace in a given Dataform repository. A workspace is an isolated, editable checkout of the repository. Use a workspace when you need to author or revise pipeline code across several files and validate it before committing. Edit files in the workspace with the Don't use the Prerequisite: The parent repository must exist. The The The |
query_directory_contents |
Return the contents of a given directory inside a Dataform workspace. Use this tool to discover valid file paths before calling the The The |
search_files |
Find files and directories in a Dataform workspace that match a search filter. Use this tool instead of recursively listing directories with the The The |
read_file |
Return the contents of a file inside a Dataform workspace, including uncommitted changes. Use this tool to read the workspace's To read a committed file directly from the repository without a workspace, use the The The The |
write_file |
Write the contents of a file inside a Dataform workspace, creating the file if it does not exist. The supplied The The The |
remove_file |
Delete a file inside a Dataform workspace. The deletion stays uncommitted until the The The |
make_directory |
Create a directory inside a Dataform workspace, including any missing parent directories. The The |
commit_workspace_changes |
Record a Git commit for the uncommitted changes in a Dataform workspace. The commit stays local to the workspace until it's published with the By default, all uncommitted changes are committed. To commit only a subset of files, supply the The The The |
push_git_commits |
Push a Dataform workspace's committed changes to the repository's Git remote. Prerequisite: You must commit workspace edits using the If you plan to use the The The |
get_repository |
Fetch a single Dataform repository, including its Git remote settings, workspace compilation overrides, and default service account. Use this tool to check the The If you don't know the exact repository name, use the |
update_repository |
Update the properties of an existing Dataform repository, such as its Git remote settings, workspace compilation overrides, or the default service account. Prerequisite: Use the If the The |
create_folder |
Create a new Dataform folder in a given Google Cloud project and location. Folders organize Dataform repositories into a hierarchy. Creating a folder doesn't move any repositories into it. To place a repository inside a folder, set the Don't attempt to move an existing repository into a folder using the The The |
Get MCP tool specifications
To get the MCP tool specifications for all tools in an MCP server, use the tools/list method. The following example demonstrates how to use curl to list all tools and their specifications currently available within the MCP server.
| Curl Request |
|---|
curl --location 'https://dataform.googleapis.com/mcp' \ --header 'content-type: application/json' \ --header 'accept: application/json, text/event-stream' \ --data '{ "method": "tools/list", "jsonrpc": "2.0", "id": 1 }' |