Ferramenta: 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.
O exemplo de código a seguir mostra como usar curl para chamar a ferramenta MCP write_file.
| 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/call", "params": { "name": "write_file", "arguments": { // Provide these details according to the MCP tool specification. } }, "jsonrpc": "2.0", "id": 1 }' |
Esquema de entrada
Mensagem de solicitação WriteFile.
WriteFileRequest
| Representação JSON |
|---|
{ "workspace": string, "path": string, "contents": string } |
| Campos | |
|---|---|
workspace |
Obrigatório. O nome do espaço de trabalho. |
path |
Obrigatório. O arquivo. |
contents |
Obrigatório. O conteúdo do arquivo. Uma string codificada em base64. |
Esquema de saída
Mensagem de resposta WriteFile.
Anotações de ferramentas
As anotações de ferramentas são enviadas aos clientes do MCP para descrever o risco básico de uma determinada ferramenta. A maioria dos clientes trata essas dicas como não confiáveis, mas elas podem ser usadas para decidir quando um pedido de confirmação pode ser enviado a um usuário.
Além da string de título, as seguintes dicas booleanas são definidas da seguinte maneira:
readOnlyHint: se for "true", a ferramenta não vai modificar o ambiente. Padrão: false.destructiveHint: se for "true", a ferramenta poderá realizar ações destrutivas. Se for "false", a ferramenta só poderá realizar ações aditivas. Padrão: verdadeiro.idempotentHint: se for "true", chamar a ferramenta repetidamente com os mesmos argumentos não terá efeito adicional no ambiente dela. Padrão: false.openWorldHint: se for "true", a ferramenta poderá interagir com um "mundo aberto" de entidades externas. Se for "false", a ferramenta só poderá interagir com entidades internas. Por exemplo, uma ferramenta de pesquisa na Web seria de mundo aberto, enquanto uma ferramenta de memória não seria.
Dica destrutiva: ✅ | Dica idempotente: ✅ | Dica somente leitura: ❌ | Dica de mundo aberto: ❌