Dataform MCP 服务器提供用于与 Dataform 交互的工具。
Model Context Protocol (MCP) 服务器充当外部服务(为大语言模型 [LLM] 或 AI 应用提供上下文、数据或功能)与 LLM 或 AI 应用之间的代理。MCP 服务器将 AI 应用连接到数据库和 Web 服务等外部系统,并将这些系统的响应转换为 AI 应用可理解的格式。
服务器设置
您必须先启用 MCP 服务器并设置身份验证,然后才能使用。如需详细了解如何使用 Google 和 Google Cloud 远程 MCP 服务器,请参阅 Google Cloud MCP 服务器概览。
服务器端点
MCP 服务端点是 MCP 服务器的网络地址和通信接口(通常是网址),AI 应用(MCP 客户端的宿主)使用该端点来建立安全、标准化的连接。它是 LLM 请求上下文、调用工具或访问资源的交互点。Google MCP 端点可以是全球性的,也可以是区域性的。
Dataform API MCP 服务器具有以下全局 MCP 端点:
- https://dataform.googleapis.com/mcp
MCP 工具
MCP 工具是 MCP 服务器向 LLM 或 AI 应用公开的函数或可执行功能,用于在现实世界中执行操作。
工具
dataform.googleapis.com MCP 服务器具有以下工具:
| MCP 工具 | |
|---|---|
list_repositories |
列出给定 Google Cloud 项目和位置中的 Dataform 代码库。
|
create_repository |
在给定的 Google Cloud 云项目和位置中创建新的 Dataform 代码库。 此工具会建立所有其他转换资源(例如编译结果和工作流配置)所需的根资源。必须先创建代码库,然后才能使用任何其他 Dataform MCP 工具。启用此工具是设置 Dataform 项目的第一步。
省略 |
commit_repository_changes |
应用 Git 提交来记录 Dataform 代码库中文件的状态。 此工具主要用于管理直接位于代码库中的单文件资产,例如笔记本或已保存的查询。此工具不适用于需要工作区的典型流水线工作流。 请勿在连接到远程 Git 主机的代码库中使用此工具。如需进行验证,请使用 此提交操作会在代码库的内部 Git 历史记录中创建一个永久条目。
|
read_repository_file |
返回 Dataform 代码库中某个文件的内容。 此工具不适用于标准流水线开发。它旨在实现直接的代码库互动,通常用于管理笔记本或已保存的查询等单文件资产。 请勿在连接到远程 Git 主机的代码库中使用此工具。如需进行验证,请使用
|
query_repository_directory_contents |
返回指定 Dataform 代码库目录的内容。 此工具主要用于直接在代码库中列出和管理单文件资源。 请勿在连接到远程 Git 主机的代码库中使用此工具。如需进行验证,请使用
|
list_workflow_configs |
列出给定 Dataform 代码库中的工作流配置。
|
get_workflow_config |
提取单个 Dataform 工作流配置。
|
create_workflow_config |
在给定的 Dataform 代码库中创建新的工作流配置。
工作流配置将 前提条件:您必须先使用 根据此工作流配置创建的工作流调用在自定义服务账号下运行。如需指定此服务账号,请设置 |
update_workflow_config |
更新现有 Dataform 工作流配置的属性,例如其执行时间表 (cron)、关联的版本配置或调用替换项。 对
每次更新都必须提供 根据此工作流配置创建的工作流调用在自定义服务账号下运行。如需指定此服务账号,请设置 |
list_release_configs |
列出给定 Dataform 代码库中的发布配置。
|
get_release_config |
提取单个 Dataform 发布配置。
|
create_release_config |
在给定的 Dataform 代码库中创建新的发布配置。
对于 Google 托管的代码库,请省略 |
update_release_config |
更新现有的 Dataform 发布配置,该配置可作为自动代码编译的模板。 对 更新 Google 托管的代码库时,请省略
|
create_compilation_result |
在给定的 Google Cloud 云项目和位置中创建新的 Dataform 编译结果。 此工具可将
代理可以通过检查 必须先获得有效的编译结果,然后才能使用 前提条件:在调用 |
list_workflow_invocations |
列出给定 Dataform 代码库中的工作流调用。
|
create_workflow_invocation |
在给定的 Dataform 代码库中创建新的工作流调用。
必须提供
前提条件:如需触发调用,您必须先使用 工作流调用在由编译源确定的服务账号下运行:
服务账号不能是默认的 Dataform 服务代理。服务账号必须具有执行工作流所需的权限,并且用户必须获得授权才能以所选服务账号的身份执行操作。此授权通常通过 Service Account User 角色 ( |
cancel_workflow_invocation |
请求正常终止正在运行的 Dataform 工作流调用。 此工具会向正在运行的工作流发送取消信号。不过,作为此工作流的一部分已完成的任何单个 BigQuery 作业、表创建或断言都不会回滚。
|
get_compilation_result |
提取单个 Dataform 编译结果。
|
query_compilation_actions |
针对给定的 Dataform 编译结果返回编译结果操作。
|
query_workflow_invocation_actions |
返回给定 Dataform 工作流调用的工作流调用操作。 这些操作表示构成工作流的各个 BigQuery 作业、表创建或断言。
|
get_workflow_invocation |
提取单个 Dataform 工作流调用。
|
list_workspaces |
列出指定 Dataform 代码库中的开发工作区。 在执行文件操作(使用
|
get_workspace |
提取单个 Dataform 开发工作区。
如果您不知道确切的工作区名称,请使用 |
create_workspace |
在给定的 Dataform 代码库中创建新的开发工作区。 工作区是代码库的一个隔离的可修改结账。如果您需要跨多个文件编写或修改流水线代码,并在提交之前对其进行验证,请使用工作区。使用 请勿使用 前提条件:父代码库必须存在。
|
query_directory_contents |
返回 Dataform 工作区内指定目录的内容。 在调用
|
search_files |
在 Dataform 工作区中查找与搜索过滤条件匹配的文件和目录。 当您需要在大型代码库中按名称或扩展名查找文件时,请使用此工具,而不是使用
|
read_file |
返回 Dataform 工作区内文件的内容,包括未提交的更改。 使用此工具读取工作区的 如需直接从代码库读取已提交的文件,而无需工作区,请改用
|
write_file |
将 Dataform 工作区中文件的内容写入文件,如果该文件不存在,则创建该文件。 提供的
|
remove_file |
删除 Dataform 工作区中的文件。 在调用
|
make_directory |
在 Dataform 工作区内创建目录,包括任何缺失的父目录。
|
commit_workspace_changes |
记录 Dataform 工作区中未提交的更改的 Git 提交。 提交会保留在工作区本地,直到使用 默认情况下,所有未提交的更改都会提交。如需仅提交部分文件,请提供
|
push_git_commits |
将 Dataform 工作区的已提交更改推送到代码库的 Git 远程。 前提条件:您必须先使用 如果您计划使用
|
get_repository |
提取单个 Dataform 代码库,包括其 Git 远程设置、工作区编译替换项和默认服务账号。 使用此工具检查
如果您不知道确切的代码库名称,请使用 |
update_repository |
更新现有 Dataform 代码库的属性,例如其 Git 远程设置、工作区编译替换或默认服务账号。 前提条件:在更新之前,使用 如果省略
|
create_folder |
在给定的 Google Cloud 云项目和位置中创建新的 Dataform 文件夹。 文件夹可将 Dataform 代码库整理成层次结构。创建文件夹不会将任何代码库移入其中。如需将代码库放置在文件夹内,请在使用 请勿尝试使用
|
获取 MCP 工具规范
如需获取 MCP 服务器中所有工具的 MCP 工具规范,请使用 tools/list 方法。下面的示例演示了如何使用 curl 列出 MCP 服务器中当前可用的所有工具及其规范。
| Curl 请求 |
|---|
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 }' |