MCP Reference: dataform.googleapis.com

O servidor MCP do Dataform oferece ferramentas para interagir com o Dataform.

Um servidor do Protocolo de Contexto de Modelo (MCP) atua como um proxy entre um serviço externo que fornece contexto, dados ou recursos a um modelo de linguagem grande (LLM) ou aplicativo de IA. Os servidores MCP conectam aplicativos de IA a sistemas externos, como bancos de dados e serviços da Web, traduzindo as respostas em um formato que o aplicativo de IA possa entender.

Configuração do servidor

É preciso ativar os servidores MCP e configurar a autenticação antes de usar. Para mais informações sobre como usar servidores MCP remotos do Google e do Google Cloud, consulte Visão geral dos servidores MCP do Google Cloud.

Endpoints de servidor

Um endpoint de serviço do MCP é o endereço de rede e a interface de comunicação (geralmente um URL) do servidor MCP que um aplicativo de IA (o host do cliente do MCP) usa para estabelecer uma conexão segura e padronizada. É o ponto de contato para o LLM solicitar contexto, chamar uma ferramenta ou acessar um recurso. Os endpoints do Google MCP podem ser globais ou regionais.

O servidor MCP da API Dataform tem o seguinte endpoint global do MCP:

  • https://dataform.googleapis.com/mcp

Ferramentas do MCP

Uma ferramenta do MCP é uma função ou capacidade executável que um servidor MCP expõe a um LLM ou aplicativo de IA para realizar uma ação no mundo real.

Ferramentas

O servidor MCP dataform.googleapis.com tem as seguintes ferramentas:

Ferramentas do MCP
list_repositories

Liste os repositórios do Dataform em um determinado projeto na nuvem e local do Google Cloud.

O valor de parâmetro parent precisa estar no formato projects/{project_id}/locations/{location}.

create_repository

Crie um repositório do Dataform em um determinado projeto na nuvem e local do Google Cloud.

Essa ferramenta estabelece o recurso raiz necessário para todos os outros recursos de transformação, como resultados de compilação e configurações de fluxo de trabalho. É preciso criar um repositório antes de usar qualquer outra ferramenta do Dataform MCP. Ativar essa ferramenta é a primeira etapa para configurar um projeto do Dataform.

O valor de parâmetro parent precisa estar no formato projects/{project_id}/locations/{location}.

O valor do parâmetro repository_id é o ID a ser usado para o repositório.

Omita o parâmetro strictActAsChecks para deixá-lo sem definição em um novo repositório. As verificações estritas de agir como são aplicadas por padrão a novos projetos. Portanto, a execução de um fluxo de trabalho neste repositório exige uma conta de serviço personalizada.

commit_repository_changes

Aplique um commit do Git para registrar o estado dos arquivos em um repositório do Dataform.

Essa ferramenta é destinada principalmente ao gerenciamento de recursos de arquivo único, como notebooks ou consultas salvas, que residem diretamente no repositório. Essa ferramenta não é usada em fluxos de trabalho típicos de pipeline que exigem espaços de trabalho.

Não use essa ferramenta em repositórios conectados a um host Git remoto. Para verificar, use a ferramenta get_repository. Se o campo git_remote_settings estiver presente, o repositório estará conectado a um host remoto, e você precisará usar ferramentas baseadas em espaço de trabalho, como commit_workspace_changes.

Essa ação de commit cria uma entrada permanente no histórico interno do Git do repositório.

O valor de parâmetro name precisa estar no formato projects/{project_id}/locations/{location}/repositories/{repository}.

read_repository_file

Retorna o conteúdo de um arquivo que está dentro de um repositório do Dataform.

Essa ferramenta não é para o desenvolvimento de pipelines padrão. Ele é destinado à interação direta com o repositório, geralmente para gerenciar recursos de arquivo único, como notebooks ou consultas salvas.

Não use essa ferramenta em repositórios conectados a um host Git remoto. Para verificar, use a ferramenta get_repository. Se o campo git_remote_settings estiver presente, o repositório estará conectado a um host remoto, e você precisará usar a ferramenta read_file para ler o arquivo de um espaço de trabalho.

O valor do parâmetro name se refere ao repositório e precisa estar no formato projects/{project_id}/locations/{location}/repositories/{repository}.

O valor do parâmetro path precisa ser relativo à raiz do repositório. Não use travessia de diretório, como ... Use a ferramenta query_repository_directory_contents para receber caminhos de arquivo válidos.

query_repository_directory_contents

Retorna o conteúdo de um determinado diretório do repositório do Dataform.

Essa ferramenta é usada principalmente para listar e gerenciar recursos de arquivo único diretamente no repositório.

Não use essa ferramenta em repositórios conectados a um host Git remoto. Para verificar, use a ferramenta get_repository. Se o campo git_remote_settings estiver presente, o repositório estará conectado a um host remoto, e você precisará usar a ferramenta query_directory_contents para listar um diretório do espaço de trabalho.

O valor do parâmetro name se refere ao repositório no formato projects/{project_id}/locations/{location}/repositories/{repository}.

O valor do parâmetro path precisa ser relativo à raiz do repositório. Não use travessia de diretório, como ... Se ficar em branco, a raiz do repositório será usada.

list_workflow_configs

Lista as configurações de fluxo de trabalho em um determinado repositório do Dataform.

O valor de parâmetro parent precisa estar no formato projects/{project_id}/locations/{location}/repositories/{repository}.

get_workflow_config

Busca uma única configuração de fluxo de trabalho do Dataform.

O valor de parâmetro name precisa estar no formato projects/{project_id}/locations/{location}/repositories/{repository}/workflowConfigs/{workflow_config}.

create_workflow_config

Cria uma configuração de fluxo de trabalho em um repositório do Dataform.

O valor de parâmetro parent precisa estar no formato projects/{project_id}/locations/{location}/repositories/{repository}.

O workflow_config_id é o ID da configuração do fluxo de trabalho.

Uma configuração de fluxo de trabalho associa um ReleaseConfig a um cronograma e uma identidade. O ReleaseConfig determina qual código é compilado, enquanto essa ferramenta determina quando esse código é executado e qual conta de serviço o executa.

Pré-requisito: primeiro, crie um ReleaseConfig usando a ferramenta create_release_config. O valor do parâmetro workflow_config.release_config é obrigatório, e a solicitação falha sem ele.

As invocações de fluxo de trabalho criadas com base nessa configuração são executadas em uma conta de serviço personalizada. Para especificar essa conta de serviço, defina o valor do parâmetro invocationConfig.serviceAccount. Se omitido, as invocações vão usar o service_account do repositório. A conta de serviço não pode ser o agente de serviço padrão do Dataform. A conta de serviço precisa ter as permissões necessárias para executar o fluxo de trabalho, e o usuário precisa estar autorizado a agir como a conta selecionada. Essa autorização geralmente é concedida pelo papel de usuário da conta de serviço (roles/iam.serviceAccountUser) do IAM, que pode ser concedido na própria conta de serviço ou no projeto que a contém.

update_workflow_config

Atualize as propriedades de uma configuração de fluxo de trabalho do Dataform, como a programação de execução (cron), a configuração de lançamento associada ou as substituições de invocação.

As modificações no cron_schedule entram em vigor imediatamente para todas as execuções programadas futuras.

O valor de parâmetro name precisa estar no formato projects/{project_id}/locations/{location}/repositories/{repository}/workflowConfigs/{workflow_config}.

O valor do parâmetro workflow_config.release_config é obrigatório para cada atualização. Use a ferramenta get_workflow_config para ler a configuração atual do fluxo de trabalho e inclua o valor release_config na sua solicitação de atualização.

As invocações de fluxo de trabalho criadas com base nessa configuração são executadas em uma conta de serviço personalizada. Para especificar essa conta de serviço, defina o valor do parâmetro invocationConfig.serviceAccount. Se omitido, as invocações vão usar o service_account do repositório. A conta de serviço não pode ser o agente de serviço padrão do Dataform. A conta de serviço precisa ter as permissões necessárias para executar o fluxo de trabalho, e o usuário precisa estar autorizado a atuar como a conta de serviço selecionada. Essa autorização geralmente é concedida pelo papel de usuário da conta de serviço (roles/iam.serviceAccountUser) do IAM, que pode ser concedido na própria conta de serviço ou no projeto que a contém.

list_release_configs

Liste as configurações de versão em um determinado repositório do Dataform.

O valor de parâmetro parent precisa estar no formato projects/{project_id}/locations/{location}/repositories/{repository}.

get_release_config

Extrai uma única configuração de versão do Dataform.

O valor de parâmetro name precisa estar no formato projects/{project_id}/locations/{location}/repositories/{repository}/releaseConfigs/{release_config}.

create_release_config

Cria uma configuração de lançamento em um determinado repositório do Dataform.

O valor de parâmetro parent precisa estar no formato projects/{project_id}/locations/{location}/repositories/{repository}.

O release_config_id é o ID definido pelo usuário para a configuração de lançamento. Se o usuário não especificar um ID, gere um ID curto e descritivo usando letras minúsculas, números e hifens com base na solicitação.

Omita o valor do parâmetro release_config.cron_schedule para repositórios hospedados pelo Google. Para verificar, use a ferramenta get_repository. Se o campo git_remote_settings estiver ausente, o repositório será hospedado pelo Google. Para programar o pipeline, defina a programação usando a ferramenta create_workflow_config.

update_release_config

Atualize uma configuração de lançamento do Dataform, que serve como um modelo para compilação automática de código.

As atualizações em campos como git_commitish mudam a forma como os resultados de compilação futuros são gerados, mas não alteram de forma retroativa os recursos CompilationResult atuais.

Omita o valor do parâmetro release_config.cron_schedule ao atualizar repositórios hospedados pelo Google. Para verificar, use a ferramenta get_repository. Se o campo git_remote_settings estiver ausente, o repositório será hospedado pelo Google. Para programar o pipeline, defina ou atualize a programação usando as ferramentas create_workflow_config ou update_workflow_config.

O valor de parâmetro name precisa estar no formato projects/{project_id}/locations/{location}/repositories/{repository}/releaseConfigs/{release_config}.

create_compilation_result

Cria um novo resultado de compilação do Dataform em um determinado projeto na nuvem e local do Google Cloud.

Essa ferramenta compila arquivos .sqlx em SQL executável. Os agentes precisam saber que as mudanças de código subsequentes não são refletidas nesse resultado, a menos que uma nova compilação seja acionada.

O valor de parâmetro parent precisa estar no formato projects/{project_id}/locations/{location}/repositories/{repository}.

Os agentes podem validar o SQL compilado inspecionando recursos CompilationResultAction e usando uma ferramenta do BigQuery para um teste simulado.

É necessário ter um resultado de compilação válido antes de acionar uma invocação manual de fluxo de trabalho usando a ferramenta create_workflow_invocation.

Pré-requisito: crie um repositório usando a ferramenta create_repository antes de chamar a ferramenta create_compilation_result.

list_workflow_invocations

Listar as invocações de fluxo de trabalho em um determinado repositório do Dataform.

O valor de parâmetro parent precisa estar no formato projects/{project_id}/locations/{location}/repositories/{repository}.

create_workflow_invocation

Cria uma nova invocação de fluxo de trabalho em um determinado repositório do Dataform.

O valor de parâmetro parent precisa estar no formato projects/{project_id}/locations/{location}/repositories/{repository}.

O valor do parâmetro compilation_result ou workflow_config é obrigatório.

  • Se você usar compilation_result, o valor de parâmetro precisará estar no formato projects/{project_id}/locations/{location}/repositories/{repository}/compilationResults/{compilation_result}.
  • Se você usar workflow_config, o valor de parâmetro precisará estar no formato projects/{project_id}/locations/{location}/repositories/{repository}/workflowConfigs/{workflow_config}.

Pré-requisito: para acionar uma invocação, primeiro crie um compilation_result usando a ferramenta create_compilation_result ou um workflow_config usando a ferramenta create_workflow_config. Não é possível acionar uma invocação diretamente do código bruto do repositório.

A invocação do fluxo de trabalho é executada em uma conta de serviço determinada pela origem da compilação:

  • Se você estiver usando compilation_result, defina o valor do parâmetro invocationConfig.serviceAccount. Se omitido, o service_account padrão do repositório será usado.
  • Se você estiver usando workflow_config, não defina o parâmetro invocationConfig. A invocação é executada automaticamente na conta de serviço configurada nessa configuração de fluxo de trabalho.

A conta de serviço não pode ser o agente de serviço padrão do Dataform. A conta de serviço precisa ter as permissões necessárias para executar o fluxo de trabalho, e o usuário precisa estar autorizado a atuar como a conta de serviço selecionada. Essa autorização geralmente é concedida pelo papel de Usuário da conta de serviço (roles/iam.serviceAccountUser), que pode ser concedido na própria conta de serviço ou no projeto que a contém.

cancel_workflow_invocation

Solicita o encerramento sem dificuldades de uma invocação de fluxo de trabalho do Dataform em execução.

Essa ferramenta envia um sinal de cancelamento para o fluxo de trabalho em execução. No entanto, jobs individuais do BigQuery, criações de tabelas ou asserções que já foram concluídos como parte desse fluxo de trabalho não serão revertidos.

O valor de parâmetro name precisa estar no formato projects/{project_id}/locations/{location}/repositories/{repository}/workflowInvocations/{workflow_invocation}.

get_compilation_result

Busca um único resultado de compilação do Dataform.

O valor de parâmetro name precisa estar no formato projects/{project_id}/locations/{location}/repositories/{repository}/compilationResults/{compilation_result}.

query_compilation_actions

Retorna as ações de resultado da compilação para um determinado resultado da compilação do Dataform.

O valor de parâmetro name precisa estar no formato projects/{project_id}/locations/{location}/repositories/{repository}/compilationResults/{compilation_result}.

query_workflow_invocation_actions

Retorna as ações de invocação de fluxo de trabalho para uma determinada invocação de fluxo de trabalho do Dataform.

Essas ações representam os jobs individuais do BigQuery, as criações de tabelas ou as asserções que compõem o fluxo de trabalho.

O valor de parâmetro name precisa estar no formato projects/{project_id}/locations/{location}/repositories/{repository}/workflowInvocations/{workflow_invocation}.

get_workflow_invocation

Busca uma única invocação de fluxo de trabalho do Dataform.

O valor de parâmetro name precisa estar no formato projects/{project_id}/locations/{location}/repositories/{repository}/workflowInvocations/{workflow_invocation}.

list_workspaces

Liste os espaços de trabalho de desenvolvimento em um determinado repositório do Dataform.

Use essa ferramenta para descobrir os espaços de trabalho existentes antes de realizar operações de arquivo (usando ferramentas como read_file ou write_file) ou confirmar o código (usando uma ferramenta como commit_workspace_changes).

O valor de parâmetro parent precisa estar no formato projects/{project_id}/locations/{location}/repositories/{repository}.

get_workspace

Extrai um único espaço de trabalho de desenvolvimento do Dataform.

O valor de parâmetro name precisa estar no formato projects/{project_id}/locations/{location}/repositories/{repository}/workspaces/{workspace}.

Se você não souber o nome exato do espaço de trabalho, use a ferramenta list_workspaces para encontrá-lo.

create_workspace

Cria um espaço de trabalho de desenvolvimento em um determinado repositório do Dataform.

Um espaço de trabalho é um checkout isolado e editável do repositório. Use um espaço de trabalho quando precisar criar ou revisar o código do pipeline em vários arquivos e validá-lo antes de fazer o commit. Edite arquivos no espaço de trabalho com as ferramentas write_file e remove_file, grave o resultado com a ferramenta commit_workspace_changes e publique as mudanças confirmadas no repositório com a ferramenta push_git_commits.

Não use a ferramenta commit_repository_changes para o desenvolvimento de pipelines padrão. Essa ferramenta grava diretamente no repositório, é destinada apenas a recursos de arquivo único, como notebooks ou consultas salvas, e falha em repositórios conectados a um host Git remoto.

Pré-requisito: o repositório principal precisa existir.

O valor de parâmetro parent precisa estar no formato projects/{project_id}/locations/{location}/repositories/{repository}.

O valor do parâmetro workspace_id é o ID a ser usado para o espaço de trabalho.

O valor do parâmetro workspace contém o espaço de trabalho a ser criado.

query_directory_contents

Retorna o conteúdo de um determinado diretório em um espaço de trabalho do Dataform.

Use essa ferramenta para descobrir caminhos de arquivo válidos antes de chamar as ferramentas read_file ou write_file.

O valor de parâmetro workspace precisa estar no formato projects/{project_id}/locations/{location}/repositories/{repository}/workspaces/{workspace}.

O valor do parâmetro path é o caminho relativo para o diretório da raiz do espaço de trabalho. Não use travessia de diretório, como ... Se omitido, a raiz do espaço de trabalho será usada.

search_files

Encontrar arquivos e diretórios em um espaço de trabalho do Dataform que correspondem a um filtro de pesquisa.

Use essa ferramenta em vez de listar diretórios de forma recursiva com a ferramenta query_directory_contents ao localizar um arquivo por nome ou extensão em um repositório grande.

O valor de parâmetro workspace precisa estar no formato projects/{project_id}/locations/{location}/repositories/{repository}/workspaces/{workspace}.

O valor do parâmetro filter restringe os resultados. A filtragem só é compatível com o campo path (por exemplo, path="*.sqlx" ou path="definitions/model.sqlx").

read_file

Retorna o conteúdo de um arquivo em um espaço de trabalho do Dataform, incluindo mudanças não confirmadas.

Use essa ferramenta para ler o arquivo workflow_settings.yaml do espaço de trabalho, que contém as configurações de compilação do pipeline, como o conjunto de dados padrão do BigQuery, o local padrão e a versão principal do Dataform. Esse arquivo fica na raiz do diretório do pipeline, que não é necessariamente a raiz do espaço de trabalho, já que um repositório pode conter vários pipelines em subdiretórios. Localize o arquivo com a ferramenta search_files.

Para ler um arquivo confirmado diretamente do repositório sem um espaço de trabalho, use a ferramenta read_repository_file. O read_repository_file só funciona em repositórios que não estão conectados a um host Git remoto.

O valor de parâmetro workspace precisa estar no formato projects/{project_id}/locations/{location}/repositories/{repository}/workspaces/{workspace}.

O valor de parâmetro path é o caminho relativo do arquivo na raiz do espaço de trabalho. Não use travessia de diretório, como ... Caminhos válidos podem ser obtidos usando as ferramentas query_directory_contents ou search_files.

O valor do parâmetro revision seleciona opcionalmente uma revisão específica do Git do arquivo. Se omitido, o estado atual não confirmado do arquivo será retornado.

write_file

Grave o conteúdo de um arquivo em um espaço de trabalho do Dataform, criando o arquivo se ele não existir.

O valor de parâmetro contents fornecido substitui todo o arquivo. Portanto, leia o conteúdo atual com a ferramenta read_file antes de fazer uma edição parcial. As mudanças permanecem não confirmadas até que a ferramenta commit_workspace_changes seja chamada.

O valor de parâmetro workspace precisa estar no formato projects/{project_id}/locations/{location}/repositories/{repository}/workspaces/{workspace}.

O valor de parâmetro path é o caminho relativo do arquivo na raiz do espaço de trabalho. Não use travessia de diretório, como ...

O valor do parâmetro contents precisa ser uma string codificada em base64 que contenha o conteúdo do arquivo.

remove_file

Excluir um arquivo em um espaço de trabalho do Dataform.

A exclusão permanece não confirmada até que a ferramenta commit_workspace_changes seja chamada.

O valor de parâmetro workspace precisa estar no formato projects/{project_id}/locations/{location}/repositories/{repository}/workspaces/{workspace}.

O valor de parâmetro path é o caminho relativo do arquivo na raiz do espaço de trabalho. Não use travessia de diretório, como ... Caminhos de arquivo válidos podem ser obtidos usando as ferramentas query_directory_contents ou search_files.

make_directory

Cria um diretório dentro de um espaço de trabalho do Dataform, incluindo os diretórios principais ausentes.

O valor de parâmetro workspace precisa estar no formato projects/{project_id}/locations/{location}/repositories/{repository}/workspaces/{workspace}.

O valor do parâmetro path é o caminho relativo para o diretório da raiz do espaço de trabalho. Não use travessia de diretório, como ...

commit_workspace_changes

Registrar um commit do Git para as mudanças não confirmadas em um espaço de trabalho do Dataform.

O commit permanece local no espaço de trabalho até ser publicado com a ferramenta push_git_commits.

Por padrão, todas as mudanças sem commit são confirmadas. Para fazer commit apenas de um subconjunto de arquivos, forneça o valor de parâmetro paths.

O valor de parâmetro name precisa estar no formato projects/{project_id}/locations/{location}/repositories/{repository}/workspaces/{workspace}.

O valor do parâmetro author identifica o autor do Git registrado para o commit. author.name e author.email_address são obrigatórios. Forneça os valores que identificam o usuário em nome de quem o commit é feito. Não use marcadores de posição, porque eles são gravados no histórico do Git.

O valor do parâmetro commit_message é a mensagem do commit.

push_git_commits

Envie as mudanças confirmadas de um espaço de trabalho do Dataform para o Git remoto do repositório.

Pré-requisito: é necessário confirmar as edições do espaço de trabalho usando a ferramenta commit_workspace_changes antes de enviar. As edições não confirmadas permanecem locais e não são enviadas.

Se você planeja usar a ferramenta create_release_config, primeiro envie seus commits. Uma configuração de lançamento resolve o git_commitish em relação ao Git remoto. Portanto, uma ramificação ou um commit que existe apenas no espaço de trabalho local fica invisível para ele.

O valor de parâmetro name precisa estar no formato projects/{project_id}/locations/{location}/repositories/{repository}/workspaces/{workspace}.

O valor do parâmetro remote_branch é a ramificação remota para onde o push será feito. Se omitido, um espaço de trabalho com o gerenciamento de ramificações ativado vai enviar para a ramificação atualmente verificada, e qualquer outro espaço de trabalho vai enviar para a ramificação padrão configurada do repositório.

get_repository

Busca um único repositório do Dataform, incluindo as configurações remotas do Git, as substituições de compilação do espaço de trabalho e a conta de serviço padrão.

Use essa ferramenta para verificar o campo git_remote_settings e determinar como interagir com o repositório. Se o campo git_remote_settings estiver presente, o repositório estará conectado a um host Git remoto. Isso significa que você precisa usar ferramentas baseadas em espaço de trabalho para o desenvolvimento de pipelines, como create_workspace ou commit_workspace_changes. Se o campo estiver ausente, o repositório será hospedado pelo Google. Você ainda pode usar espaços de trabalho nesse caso para o desenvolvimento de pipelines. Não recomendamos ferramentas de repositório direto, como commit_repository_changes, a menos que você esteja gerenciando recursos de arquivo único.

O valor de parâmetro name precisa estar no formato projects/{project_id}/locations/{location}/repositories/{repository}.

Se você não souber o nome exato do repositório, use a ferramenta list_repositories para encontrá-lo.

update_repository

Atualize as propriedades de um repositório do Dataform, como as configurações remotas do Git, as substituições de compilação do espaço de trabalho ou a conta de serviço padrão.

Pré-requisito: use a ferramenta get_repository para ler o estado atual do repositório antes de atualizar.

Se o valor do parâmetro update_mask for omitido, todos os campos mutáveis serão substituídos pelos valores fornecidos no valor do parâmetro repository. Para modificar apenas campos específicos sem limpar os outros, liste esses campos em update_mask.

O valor de parâmetro repository.name precisa estar no formato projects/{project_id}/locations/{location}/repositories/{repository}.

create_folder

Crie uma pasta do Dataform em um determinado projeto na nuvem e local do Google Cloud.

As pastas organizam os repositórios do Dataform em uma hierarquia. Criar uma pasta não move nenhum repositório para ela. Para colocar um repositório em uma pasta, defina o valor do parâmetro containing_folder ao usar a ferramenta create_repository.

Não tente mover um repositório para uma pasta usando a ferramenta update_repository. Depois que um repositório é criado, o campo containing_folder não pode ser modificado usando as ferramentas do MCP.

O valor de parâmetro parent precisa estar no formato projects/{project_id}/locations/{location}.

O valor do parâmetro folder.display_name é obrigatório e especifica o nome fácil de usar da pasta.

Receber especificações da ferramenta MCP

Para receber as especificações de ferramentas do MCP de todas as ferramentas em um servidor MCP, use o método tools/list. O exemplo a seguir demonstra como usar curl para listar todas as ferramentas e especificações disponíveis no servidor MCP.

Solicitação 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
}'