MCP Tools Reference: dataform.googleapis.com

Tool: write_file

Write the contents of a file inside a Dataform workspace, creating the file if it does not exist.

The supplied contents parameter value replaces the whole file, so read current contents with the read_file tool before making a partial edit. Changes stay uncommitted until the commit_workspace_changes tool is called.

The workspace parameter value must be in the format projects/{project_id}/locations/{location}/repositories/{repository}/workspaces/{workspace}.

The path parameter value is the relative path to the file from the workspace root. Don't use directory traversal, such as ...

The contents parameter value must be a base64-encoded string containing the file content.

The following code sample shows how to use curl to call the write_file MCP tool.

Curl Request
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
}'

Input Schema

WriteFile request message.

WriteFileRequest

JSON representation
{
  "workspace": string,
  "path": string,
  "contents": string
}
Fields
workspace

string

Required. The workspace's name.

path

string

Required. The file.

contents

string (bytes format)

Required. The file's contents.

A base64-encoded string.

Output Schema

WriteFile response message.

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