MCP Tools Reference: dataform.googleapis.com

Herramienta: create_workflow_invocation

Crea una nueva invocación de flujo de trabajo en un repositorio de Dataform determinado.

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

Se requiere el valor del parámetro compilation_result o workflow_config.

  • Si usas compilation_result, el valor del parámetro debe tener el formato projects/{project_id}/locations/{location}/repositories/{repository}/compilationResults/{compilation_result}.
  • Si usas workflow_config, el valor del parámetro debe tener el formato projects/{project_id}/locations/{location}/repositories/{repository}/workflowConfigs/{workflow_config}.

Requisito previo: Para activar una invocación, primero debes crear un compilation_result con la herramienta create_compilation_result o un workflow_config con la herramienta create_workflow_config. No puedes activar una invocación directamente desde el código sin procesar del repositorio.

La invocación del flujo de trabajo se ejecuta con una cuenta de servicio determinada por la fuente de compilación:

  • Si usas compilation_result, establece el valor del parámetro invocationConfig.serviceAccount. Si se omite, se usa el service_account predeterminado del repositorio.
  • Si usas workflow_config, no establezcas el parámetro invocationConfig. La invocación se ejecuta automáticamente con la cuenta de servicio configurada en esa configuración del flujo de trabajo.

La cuenta de servicio no puede ser el agente de servicio predeterminado de Dataform. La cuenta de servicio debe tener los permisos necesarios para ejecutar el flujo de trabajo, y el usuario debe estar autorizado para actuar como la cuenta de servicio seleccionada. Por lo general, esta autorización se otorga a través del rol de usuario de cuenta de servicio (roles/iam.serviceAccountUser), que se puede otorgar en la cuenta de servicio o en el proyecto que la contiene.

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

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

Esquema de entrada

Mensaje de solicitud de CreateWorkflowInvocation.

CreateWorkflowInvocationRequest

Representación JSON
{
  "parent": string,
  "workflowInvocation": {
    object (WorkflowInvocation)
  }
}
Campos
parent

string

Obligatorio. Es el repositorio en el que se creará la invocación del flujo de trabajo. Debe tener el formato projects/*/locations/*/repositories/*.

workflowInvocation

object (WorkflowInvocation)

Obligatorio. Es el recurso de invocación del flujo de trabajo que se creará.

WorkflowInvocation

Representación JSON
{
  "name": string,
  "invocationConfig": {
    object (InvocationConfig)
  },
  "state": enum (State),
  "invocationTiming": {
    object (Interval)
  },
  "resolvedCompilationResult": string,
  "dataEncryptionState": {
    object (DataEncryptionState)
  },
  "privateResourceMetadata": {
    object (PrivateResourceMetadata)
  },
  "pipelineConfig": {
    object (PipelineConfig)
  },

  // Union field compilation_source can be only one of the following:
  "compilationResult": string,
  "workflowConfig": string
  // End of list of possible types for union field compilation_source.

  // Union field _internal_metadata can be only one of the following:
  "internalMetadata": string
  // End of list of possible types for union field _internal_metadata.
}
Campos
name

string

Solo salida. Es el nombre de la invocación del flujo de trabajo.

invocationConfig

object (InvocationConfig)

Inmutable. Si no se configura, se usará un InvocationConfig predeterminado.

state

enum (State)

Solo salida. Es el estado actual de la invocación del flujo de trabajo.

invocationTiming

object (Interval)

Solo salida. Son los detalles de la sincronización de la invocación del flujo de trabajo.

resolvedCompilationResult

string

Solo salida. Es el resultado de la compilación resuelto que se usó para crear esta invocación. Tendrá el formato projects/*/locations/*/repositories/*/compilationResults/*.

dataEncryptionState

object (DataEncryptionState)

Solo salida. Solo se configura si el repositorio tiene una clave de KMS.

privateResourceMetadata

object (PrivateResourceMetadata)

Solo salida. Metadatos que indican si este recurso está centrado en el usuario. El recurso WorkflowInvocation es user_scoped solo si proviene de un resultado de compilación y este se limita al usuario.

pipelineConfig

object (PipelineConfig)

Solo salida. Son las opciones de canalización que definen el tipo y la ruta de acceso de la canalización dentro del repositorio de Git.

Campo de unión compilation_source. Es la fuente del resultado de la compilación que se usará para esta invocación. compilation_source puede ser solo uno de los parámetros siguientes:
compilationResult

string

Inmutable. Nombre del resultado de la compilación que se usará para esta invocación. Debe tener el formato projects/*/locations/*/repositories/*/compilationResults/*.

workflowConfig

string

Inmutable. Es el nombre de la configuración del flujo de trabajo que se invocará. Debe tener el formato projects/*/locations/*/repositories/*/workflowConfigs/*.

Campo de unión _internal_metadata.

_internal_metadata puede ser una de las siguientes opciones:

internalMetadata

string

Solo salida. Toda la información de metadatos que se usa de forma interna para entregar el recurso. Por ejemplo, marcas de tiempo, marcas, campos de estado, etcétera. El formato de este campo es una cadena JSON.

InvocationConfig

Representación JSON
{
  "includedTargets": [
    {
      object (Target)
    }
  ],
  "includedTags": [
    string
  ],
  "transitiveDependenciesIncluded": boolean,
  "transitiveDependentsIncluded": boolean,
  "fullyRefreshIncrementalTablesEnabled": boolean,
  "serviceAccount": string,

  // Union field _query_priority can be only one of the following:
  "queryPriority": enum (QueryPriority)
  // End of list of possible types for union field _query_priority.
}
Campos
includedTargets[]

object (Target)

Es opcional. Es el conjunto de identificadores de acciones que se incluirán.

includedTags[]

string

Es opcional. Es el conjunto de etiquetas que se incluirán.

transitiveDependenciesIncluded

boolean

Es opcional. Cuando se establece como verdadero, se ejecutarán las dependencias transitivas de las acciones incluidas.

transitiveDependentsIncluded

boolean

Es opcional. Cuando se establece como verdadero, se ejecutarán las dependencias transitivas de las acciones incluidas.

fullyRefreshIncrementalTablesEnabled

boolean

Es opcional. Cuando se establece en verdadero, se actualizan por completo todas las tablas incrementales.

serviceAccount

string

Es opcional. Es la cuenta de servicio con la que se ejecutan las invocaciones de flujo de trabajo.

Campo de unión _query_priority.

_query_priority puede ser una de las siguientes opciones:

queryPriority

enum (QueryPriority)

Es opcional. Especifica la prioridad para la ejecución de la consulta en BigQuery. Puedes encontrar más información en https://cloud.google.com/bigquery/docs/running-queries#queries.

Objetivo

Representación JSON
{
  "database": string,
  "schema": string,
  "name": string
}
Campos
database

string

Es opcional. Es la base de datos de la acción (ID del proyecto de Google Cloud) .

schema

string

Es opcional. Es el esquema de la acción (ID del conjunto de datos de BigQuery) dentro de database.

name

string

Es opcional. Nombre de la acción, dentro de database y schema.

Intervalo

Representación JSON
{
  "startTime": string,
  "endTime": string
}
Campos
startTime

string (Timestamp format)

Opcional. Es el inicio inclusivo del intervalo.

Si se especifica, la marca de tiempo que coincida con este intervalo deberá ser igual o posterior al inicio.

Usa el formato RFC 3339, en el que el resultado generado siempre usará la normalización Z y los dígitos fraccionarios 0, 3, 6 o 9. También se aceptan otras compensaciones que no sean “Z”. Ejemplos: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" o "2014-10-02T15:01:23+05:30".

endTime

string (Timestamp format)

Opcional. Es el final exclusivo del intervalo.

Si se especifica, la marca de tiempo que coincida con este intervalo deberá ser anterior al final.

Usa el formato RFC 3339, en el que el resultado generado siempre usará la normalización Z y los dígitos fraccionarios 0, 3, 6 o 9. También se aceptan otras compensaciones que no sean “Z”. Ejemplos: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" o "2014-10-02T15:01:23+05:30".

Marca de tiempo

Representación JSON
{
  "seconds": string,
  "nanos": integer
}
Campos
seconds

string (int64 format)

Representa los segundos de la hora UTC desde la época de Unix 1970-01-01T00:00:00Z. Debe estar entre -62135596800 y 253402300799 inclusive (lo que corresponde a 0001-01-01T00:00:00Z a 9999-12-31T23:59:59Z).

nanos

integer

Fracciones no negativas de un segundo a una resolución de nanosegundos. Este campo es la parte de nanosegundos de la duración, no una alternativa a los segundos. Los valores de segundos negativos con fracciones deben tener valores nanos no negativos que se cuentan hacia adelante en el tiempo. Debe ser un valor entre 0 y 999,999,999, inclusive.

DataEncryptionState

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

string

Obligatorio. Es el nombre de la versión de la clave de KMS con la que se encriptan los datos de un recurso.

PrivateResourceMetadata

Representación JSON
{
  "userScoped": boolean
}
Campos
userScoped

boolean

Solo salida. Si es verdadero, este recurso está centrado en el usuario, lo que significa que es un espacio de trabajo o se obtuvo de uno.

PipelineConfig

Representación JSON
{
  "pipelineType": enum (PipelineType),
  "path": string
}
Campos
pipelineType

enum (PipelineType)

Obligatorio. Es el tipo de canalización.

path

string

Obligatorio. Es la ruta de acceso relativa dentro del repositorio de Git en la que se define la canalización. Por ejemplo, para una canalización de Dataform, es una ruta de acceso a la carpeta en la que se encuentra workflow_settings.yaml o dataform.json.

QueryPriority

Tipos de prioridad para la ejecución de consultas en BigQuery.

Enums
QUERY_PRIORITY_UNSPECIFIED Valor predeterminado. Este valor no se usa.
INTERACTIVE La consulta se ejecutará en BigQuery con prioridad interactiva. Puedes encontrar más información en https://cloud.google.com/bigquery/docs/running-queries#queries.
BATCH La consulta se ejecutará en BigQuery con prioridad por lotes. Puedes encontrar más información en https://cloud.google.com/bigquery/docs/running-queries#batchqueries.

Estado

Representa el estado actual de una invocación de flujo de trabajo.

Enums
STATE_UNSPECIFIED Valor predeterminado. Este valor no se usa.
RUNNING La invocación del flujo de trabajo se está ejecutando en este momento.
SUCCEEDED Se invocó correctamente el flujo de trabajo. Es un estado terminal.
CANCELLED Se canceló la invocación del flujo de trabajo. Es un estado terminal.
FAILED No se pudo invocar el flujo de trabajo. Es un estado terminal.
CANCELING Se está cancelando la invocación del flujo de trabajo, pero algunas acciones aún se están ejecutando.

PipelineType

Es el tipo de canalización. Es posible que se extienda en el futuro. En caso de que sea UNSPECIFIED, se arrojará el error.

Enums
PIPELINE_TYPE_UNSPECIFIED Valor predeterminado. Este valor no se usa.
DATAFORM Es una canalización de Dataform normal.
SQL Es un recurso de archivo único en SQL.
NOTEBOOK Es el recurso de archivo único del notebook.

Esquema de salida

Representa una sola invocación de un resultado de compilación.

WorkflowInvocation

Representación JSON
{
  "name": string,
  "invocationConfig": {
    object (InvocationConfig)
  },
  "state": enum (State),
  "invocationTiming": {
    object (Interval)
  },
  "resolvedCompilationResult": string,
  "dataEncryptionState": {
    object (DataEncryptionState)
  },
  "privateResourceMetadata": {
    object (PrivateResourceMetadata)
  },
  "pipelineConfig": {
    object (PipelineConfig)
  },

  // Union field compilation_source can be only one of the following:
  "compilationResult": string,
  "workflowConfig": string
  // End of list of possible types for union field compilation_source.

  // Union field _internal_metadata can be only one of the following:
  "internalMetadata": string
  // End of list of possible types for union field _internal_metadata.
}
Campos
name

string

Solo salida. Es el nombre de la invocación del flujo de trabajo.

invocationConfig

object (InvocationConfig)

Inmutable. Si no se configura, se usará un InvocationConfig predeterminado.

state

enum (State)

Solo salida. Es el estado actual de la invocación del flujo de trabajo.

invocationTiming

object (Interval)

Solo salida. Son los detalles de la sincronización de la invocación del flujo de trabajo.

resolvedCompilationResult

string

Solo salida. Es el resultado de la compilación resuelto que se usó para crear esta invocación. Tendrá el formato projects/*/locations/*/repositories/*/compilationResults/*.

dataEncryptionState

object (DataEncryptionState)

Solo salida. Solo se configura si el repositorio tiene una clave de KMS.

privateResourceMetadata

object (PrivateResourceMetadata)

Solo salida. Metadatos que indican si este recurso está centrado en el usuario. El recurso WorkflowInvocation es user_scoped solo si proviene de un resultado de compilación y este se limita al usuario.

pipelineConfig

object (PipelineConfig)

Solo salida. Son las opciones de canalización que definen el tipo y la ruta de acceso de la canalización dentro del repositorio de Git.

Campo de unión compilation_source. Es la fuente del resultado de la compilación que se usará para esta invocación. compilation_source puede ser solo uno de los parámetros siguientes:
compilationResult

string

Inmutable. Nombre del resultado de la compilación que se usará para esta invocación. Debe tener el formato projects/*/locations/*/repositories/*/compilationResults/*.

workflowConfig

string

Inmutable. Es el nombre de la configuración del flujo de trabajo que se invocará. Debe tener el formato projects/*/locations/*/repositories/*/workflowConfigs/*.

Campo de unión _internal_metadata.

_internal_metadata puede ser una de las siguientes opciones:

internalMetadata

string

Solo salida. Toda la información de metadatos que se usa de forma interna para entregar el recurso. Por ejemplo, marcas de tiempo, marcas, campos de estado, etcétera. El formato de este campo es una cadena JSON.

InvocationConfig

Representación JSON
{
  "includedTargets": [
    {
      object (Target)
    }
  ],
  "includedTags": [
    string
  ],
  "transitiveDependenciesIncluded": boolean,
  "transitiveDependentsIncluded": boolean,
  "fullyRefreshIncrementalTablesEnabled": boolean,
  "serviceAccount": string,

  // Union field _query_priority can be only one of the following:
  "queryPriority": enum (QueryPriority)
  // End of list of possible types for union field _query_priority.
}
Campos
includedTargets[]

object (Target)

Es opcional. Es el conjunto de identificadores de acciones que se incluirán.

includedTags[]

string

Es opcional. Es el conjunto de etiquetas que se incluirán.

transitiveDependenciesIncluded

boolean

Es opcional. Cuando se establece como verdadero, se ejecutarán las dependencias transitivas de las acciones incluidas.

transitiveDependentsIncluded

boolean

Es opcional. Cuando se establece como verdadero, se ejecutarán las dependencias transitivas de las acciones incluidas.

fullyRefreshIncrementalTablesEnabled

boolean

Es opcional. Cuando se establece en verdadero, se actualizan por completo todas las tablas incrementales.

serviceAccount

string

Es opcional. Es la cuenta de servicio con la que se ejecutan las invocaciones de flujo de trabajo.

Campo de unión _query_priority.

_query_priority puede ser una de las siguientes opciones:

queryPriority

enum (QueryPriority)

Es opcional. Especifica la prioridad para la ejecución de la consulta en BigQuery. Puedes encontrar más información en https://cloud.google.com/bigquery/docs/running-queries#queries.

Objetivo

Representación JSON
{
  "database": string,
  "schema": string,
  "name": string
}
Campos
database

string

Es opcional. Es la base de datos de la acción (ID del proyecto de Google Cloud) .

schema

string

Es opcional. Es el esquema de la acción (ID del conjunto de datos de BigQuery) dentro de database.

name

string

Es opcional. Nombre de la acción, dentro de database y schema.

Intervalo

Representación JSON
{
  "startTime": string,
  "endTime": string
}
Campos
startTime

string (Timestamp format)

Opcional. Es el inicio inclusivo del intervalo.

Si se especifica, la marca de tiempo que coincida con este intervalo deberá ser igual o posterior al inicio.

Usa el formato RFC 3339, en el que el resultado generado siempre usará la normalización Z y los dígitos fraccionarios 0, 3, 6 o 9. También se aceptan otras compensaciones que no sean “Z”. Ejemplos: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" o "2014-10-02T15:01:23+05:30".

endTime

string (Timestamp format)

Opcional. Es el final exclusivo del intervalo.

Si se especifica, la marca de tiempo que coincida con este intervalo deberá ser anterior al final.

Usa el formato RFC 3339, en el que el resultado generado siempre usará la normalización Z y los dígitos fraccionarios 0, 3, 6 o 9. También se aceptan otras compensaciones que no sean “Z”. Ejemplos: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" o "2014-10-02T15:01:23+05:30".

Marca de tiempo

Representación JSON
{
  "seconds": string,
  "nanos": integer
}
Campos
seconds

string (int64 format)

Representa los segundos de la hora UTC desde la época de Unix 1970-01-01T00:00:00Z. Debe estar entre -62135596800 y 253402300799 inclusive (lo que corresponde a 0001-01-01T00:00:00Z a 9999-12-31T23:59:59Z).

nanos

integer

Fracciones no negativas de un segundo a una resolución de nanosegundos. Este campo es la parte de nanosegundos de la duración, no una alternativa a los segundos. Los valores de segundos negativos con fracciones deben tener valores nanos no negativos que se cuentan hacia adelante en el tiempo. Debe ser un valor entre 0 y 999,999,999, inclusive.

DataEncryptionState

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

string

Obligatorio. Es el nombre de la versión de la clave de KMS con la que se encriptan los datos de un recurso.

PrivateResourceMetadata

Representación JSON
{
  "userScoped": boolean
}
Campos
userScoped

boolean

Solo salida. Si es verdadero, este recurso está centrado en el usuario, lo que significa que es un espacio de trabajo o se obtuvo de uno.

PipelineConfig

Representación JSON
{
  "pipelineType": enum (PipelineType),
  "path": string
}
Campos
pipelineType

enum (PipelineType)

Obligatorio. Es el tipo de canalización.

path

string

Obligatorio. Es la ruta de acceso relativa dentro del repositorio de Git en la que se define la canalización. Por ejemplo, para una canalización de Dataform, es una ruta de acceso a la carpeta en la que se encuentra workflow_settings.yaml o dataform.json.

QueryPriority

Tipos de prioridad para la ejecución de consultas en BigQuery.

Enums
QUERY_PRIORITY_UNSPECIFIED Valor predeterminado. Este valor no se usa.
INTERACTIVE La consulta se ejecutará en BigQuery con prioridad interactiva. Puedes encontrar más información en https://cloud.google.com/bigquery/docs/running-queries#queries.
BATCH La consulta se ejecutará en BigQuery con prioridad por lotes. Puedes encontrar más información en https://cloud.google.com/bigquery/docs/running-queries#batchqueries.

Estado

Representa el estado actual de una invocación de flujo de trabajo.

Enums
STATE_UNSPECIFIED Valor predeterminado. Este valor no se usa.
RUNNING La invocación del flujo de trabajo se está ejecutando en este momento.
SUCCEEDED Se invocó correctamente el flujo de trabajo. Es un estado terminal.
CANCELLED Se canceló la invocación del flujo de trabajo. Es un estado terminal.
FAILED No se pudo invocar el flujo de trabajo. Es un estado terminal.
CANCELING Se está cancelando la invocación del flujo de trabajo, pero algunas acciones aún se están ejecutando.

PipelineType

Es el tipo de canalización. Es posible que se extienda en el futuro. En caso de que sea UNSPECIFIED, se arrojará el error.

Enums
PIPELINE_TYPE_UNSPECIFIED Valor predeterminado. Este valor no se usa.
DATAFORM Es una canalización de Dataform normal.
SQL Es un recurso de archivo único en SQL.
NOTEBOOK Es el recurso de archivo único del notebook.

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