MCP Tools Reference: dataform.googleapis.com

Herramienta: read_file

Devuelve el contenido de un archivo dentro de un lugar de trabajo de Dataform, incluidos los cambios no confirmados.

Usa esta herramienta para leer el archivo workflow_settings.yaml del espacio de trabajo, que contiene la configuración de compilación de la canalización, como el conjunto de datos predeterminado de BigQuery, la ubicación predeterminada y la versión principal de Dataform. Este archivo se encuentra en la raíz del directorio de la canalización, que no necesariamente es la raíz del espacio de trabajo, ya que un repositorio puede contener varias canalizaciones en subdirectorios. Ubica el archivo con la herramienta search_files.

Para leer un archivo confirmado directamente desde el repositorio sin un espacio de trabajo, usa la herramienta read_repository_file. Ten en cuenta que read_repository_file solo funciona en repositorios que no están conectados a un host remoto de Git.

El valor del parámetro workspace debe tener el formato projects/{project_id}/locations/{location}/repositories/{repository}/workspaces/{workspace}.

El valor del parámetro path es la ruta de acceso relativa al archivo desde la raíz del espacio de trabajo. No uses la transversalidad de directorios, como ... Las rutas válidas se pueden obtener con las herramientas query_directory_contents o search_files.

El valor del parámetro revision selecciona de forma opcional una revisión de Git específica del archivo. Si se omite, se devuelve el estado actual sin confirmar del archivo.

En la siguiente muestra de código, se muestra cómo usar curl para llamar a la herramienta de MCP read_file.

Solicitud de 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": "read_file",
    "arguments": {
      // Provide these details according to the MCP tool specification.
    }
  },
  "jsonrpc": "2.0",
  "id": 1
}'

Esquema de entrada

Mensaje de solicitud de ReadFile.

ReadFileRequest

Representación JSON
{
  "workspace": string,
  "path": string,
  "revision": string
}
Campos
workspace

string

Obligatorio. Es el nombre del espacio de trabajo.

path

string

Obligatorio. Ruta de acceso completa del archivo, incluido el nombre, en relación con la raíz del espacio de trabajo.

revision

string

Es opcional. Es la revisión de Git del archivo que se devolverá. Si se deja vacío, se mostrará el contenido actual de path.

Esquema de salida

Mensaje de respuesta de ReadFile.

ReadFileResponse

Representación JSON
{
  "fileContents": string
}
Campos
fileContents

string (bytes format)

Contenido del archivo

Es una cadena codificada en Base64.

Anotaciones de herramientas

Las anotaciones de herramientas se envían a los clientes de MCP para describir el riesgo básico de una herramienta determinada. La mayoría de los clientes tratan estas sugerencias como no confiables, pero se pueden usar para decidir cuándo se le puede enviar un mensaje de confirmación a un usuario.

Junto con la cadena de título, se definen las siguientes sugerencias booleanas:

  • readOnlyHint: Si es verdadero, la herramienta no modifica su entorno. Valor predeterminado: false.
  • destructiveHint: Si es verdadero, la herramienta puede realizar acciones destructivas. Si es falso, la herramienta solo puede realizar acciones aditivas. Valor predeterminado: true.
  • idempotentHint: Si es verdadero, llamar a la herramienta de forma repetida con los mismos argumentos no tendrá ningún efecto adicional en su entorno. Valor predeterminado: false.
  • openWorldHint: Si es verdadero, la herramienta puede interactuar con un "mundo abierto" de entidades externas. Si es falso, la herramienta solo puede interactuar con entidades internas. Por ejemplo, una herramienta de búsqueda web sería de mundo abierto, mientras que una herramienta de memoria no lo sería.

Sugerencia destructiva: ❌ | Sugerencia idempotente: ✅ | Sugerencia de solo lectura: ✅ | Sugerencia de mundo abierto: ❌