MCP Tools Reference: dataform.googleapis.com

도구: create_workflow_invocation

지정된 Dataform 저장소에서 새 워크플로 호출을 만듭니다.

parent 매개변수 값은 projects/{project_id}/locations/{location}/repositories/{repository} 형식이어야 합니다.

compilation_result 또는 workflow_config 매개변수 값이 필요합니다.

  • compilation_result를 사용하는 경우 파라미터 값은 projects/{project_id}/locations/{location}/repositories/{repository}/compilationResults/{compilation_result} 형식이어야 합니다.
  • workflow_config를 사용하는 경우 파라미터 값은 projects/{project_id}/locations/{location}/repositories/{repository}/workflowConfigs/{workflow_config} 형식이어야 합니다.

기본 요건: 호출을 트리거하려면 먼저 create_compilation_result 도구를 사용하여 compilation_result를 만들거나 create_workflow_config 도구를 사용하여 workflow_config를 만들어야 합니다. 원시 저장소 코드에서 직접 호출을 트리거할 수는 없습니다.

워크플로 호출은 컴파일 소스에 따라 결정되는 서비스 계정으로 실행됩니다.

  • compilation_result를 사용하는 경우 invocationConfig.serviceAccount 파라미터 값을 설정합니다. 생략하면 저장소의 기본 service_account이 사용됩니다.
  • workflow_config를 사용하는 경우 invocationConfig 매개변수를 설정하지 마세요. 호출은 해당 워크플로 구성에 구성된 서비스 계정으로 자동 실행됩니다.

서비스 계정은 기본 Dataform 서비스 에이전트일 수 없습니다. 서비스 계정에는 워크플로를 실행하는 데 필요한 권한이 있어야 하며 사용자에게는 선택한 서비스 계정으로 작업할 수 있는 권한이 있어야 합니다. 이 승인은 일반적으로 서비스 계정 자체 또는 서비스 계정이 포함된 프로젝트에 부여할 수 있는 서비스 계정 사용자 역할 (roles/iam.serviceAccountUser)을 통해 부여됩니다.

다음 코드 샘플은 curl를 사용하여 create_workflow_invocation MCP 도구를 호출하는 방법을 보여줍니다.

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

입력 스키마

CreateWorkflowInvocation 요청 메시지입니다.

CreateWorkflowInvocationRequest

JSON 표현
{
  "parent": string,
  "workflowInvocation": {
    object (WorkflowInvocation)
  }
}
필드
parent

string

필수 항목입니다. 워크플로 호출을 만들 저장소입니다. projects/*/locations/*/repositories/* 형식이어야 합니다.

workflowInvocation

object (WorkflowInvocation)

필수 항목입니다. 생성할 워크플로 호출 리소스입니다.

WorkflowInvocation

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.
}
필드
name

string

출력 전용입니다. 워크플로 호출의 이름입니다.

invocationConfig

object (InvocationConfig)

변경할 수 없습니다. 설정하지 않으면 기본 InvocationConfig가 사용됩니다.

state

enum (State)

출력 전용입니다. 이 워크플로 호출의 현재 상태입니다.

invocationTiming

object (Interval)

출력 전용입니다. 이 워크플로 호출의 타이밍 세부정보입니다.

resolvedCompilationResult

string

출력 전용입니다. 이 호출을 만드는 데 사용된 확인된 컴파일 결과입니다. projects/*/locations/*/repositories/*/compilationResults/* 형식입니다.

dataEncryptionState

object (DataEncryptionState)

출력 전용입니다. 저장소에 KMS 키가 있는 경우에만 설정됩니다.

privateResourceMetadata

object (PrivateResourceMetadata)

출력 전용입니다. 이 리소스가 사용자 범위인지 여부를 나타내는 메타데이터입니다. WorkflowInvocation 리소스는 컴파일 결과에서 가져오고 컴파일 결과가 사용자 범위인 경우에만 user_scoped입니다.

pipelineConfig

object (PipelineConfig)

출력 전용입니다. Git 저장소 내의 파이프라인 유형과 경로를 정의하는 파이프라인 옵션입니다.

통합 필드 compilation_source. 이 호출에 사용할 컴파일 결과의 소스입니다. compilation_source은 다음 중 하나여야 합니다.
compilationResult

string

변경할 수 없습니다. 이 호출에 사용할 컴파일 결과의 이름입니다. projects/*/locations/*/repositories/*/compilationResults/* 형식이어야 합니다.

workflowConfig

string

변경할 수 없습니다. 호출할 워크플로 구성의 이름입니다. projects/*/locations/*/repositories/*/workflowConfigs/* 형식이어야 합니다.

통합 필드 _internal_metadata.

_internal_metadata는 다음 중 하나여야 합니다.

internalMetadata

string

출력 전용입니다. 리소스를 제공하기 위해 내부적으로 사용되는 모든 메타데이터 정보입니다. 예: 타임스탬프, 플래그, 상태 필드 등 이 필드의 형식은 JSON 문자열입니다.

InvocationConfig

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.
}
필드
includedTargets[]

object (Target)

(선택사항) 포함할 작업 식별자 집합입니다.

includedTags[]

string

(선택사항) 포함할 태그 집합입니다.

transitiveDependenciesIncluded

boolean

(선택사항) true로 설정하면 포함된 작업의 임시 종속 항목이 실행됩니다.

transitiveDependentsIncluded

boolean

(선택사항) true로 설정하면 포함된 작업의 임시 하위 항목이 실행됩니다.

fullyRefreshIncrementalTablesEnabled

boolean

(선택사항) true로 설정하면 증분 테이블이 완전히 새로고침됩니다.

serviceAccount

string

(선택사항) 워크플로 호출을 실행할 서비스 계정입니다.

통합 필드 _query_priority.

_query_priority는 다음 중 하나여야 합니다.

queryPriority

enum (QueryPriority)

(선택사항) BigQuery에서 쿼리 실행의 우선순위를 지정합니다. 자세한 내용은 https://cloud.google.com/bigquery/docs/running-queries#queries를 참고하세요.

대상

JSON 표현
{
  "database": string,
  "schema": string,
  "name": string
}
필드
database

string

(선택사항) 작업의 데이터베이스 (Google Cloud 프로젝트 ID)입니다.

schema

string

(선택사항) database 내의 작업 스키마 (BigQuery 데이터 세트 ID)입니다.

name

string

(선택사항) database 및 schema 내의 작업 이름입니다.

간격

JSON 표현
{
  "startTime": string,
  "endTime": string
}
필드
startTime

string (Timestamp format)

선택사항입니다. 간격의 시작(포함)입니다.

지정된 경우 이 간격과 일치하는 타임스탬프는 시작과 같거나 시작 이후여야 합니다.

생성된 출력은 항상 Z-정규화되고 소수점 이하 0, 3, 6 또는 9자리인 RFC 3339를 사용합니다. 'Z' 이외의 오프셋도 허용됩니다. 예를 들면 "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" 또는 "2014-10-02T15:01:23+05:30"입니다.

endTime

string (Timestamp format)

선택사항입니다. 간격의 끝(제외)입니다.

지정된 경우 이 간격과 일치하는 타임스탬프는 종료 시간 이전이어야 합니다.

생성된 출력은 항상 Z-정규화되고 소수점 이하 0, 3, 6 또는 9자리인 RFC 3339를 사용합니다. 'Z' 이외의 오프셋도 허용됩니다. 예를 들면 "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" 또는 "2014-10-02T15:01:23+05:30"입니다.

타임스탬프

JSON 표현
{
  "seconds": string,
  "nanos": integer
}
필드
seconds

string (int64 format)

Unix epoch 1970-01-01T00:00:00Z 이후 UTC 시간의 초 단위로 표현합니다. -62135596800~253402300799 (0001-01-01T00:00:00Z~9999-12-31T23:59:59Z) 사이여야 합니다.

nanos

integer

나노초 단위의 음수가 아닌 초수입니다. 이 필드는 기간의 나노초 부분이며 초의 대안이 아닙니다. 음수의 초수 값에는 시간에 반영되는 음수가 아닌 나노초 값이 있어야 합니다. 0~999,999,999(포함) 사이여야 합니다.

DataEncryptionState

JSON 표현
{
  "kmsKeyVersionName": string
}
필드
kmsKeyVersionName

string

필수 항목입니다. 리소스의 데이터가 암호화되는 KMS 키 버전 이름입니다.

PrivateResourceMetadata

JSON 표현
{
  "userScoped": boolean
}
필드
userScoped

boolean

출력 전용입니다. true인 경우 이 리소스는 사용자 범위입니다. 즉, 작업공간이거나 작업공간에서 가져온 것입니다.

PipelineConfig

JSON 표현
{
  "pipelineType": enum (PipelineType),
  "path": string
}
필드
pipelineType

enum (PipelineType)

필수 항목입니다. 파이프라인 유형입니다.

path

string

필수 항목입니다. 파이프라인이 정의된 Git 저장소 내의 상대 경로입니다. 예를 들어 Dataform 파이프라인의 경우 workflow_settings.yaml 또는 dataform.json이 있는 폴더의 경로입니다.

QueryPriority

BigQuery의 쿼리 실행 우선순위 유형입니다.

열거형
QUERY_PRIORITY_UNSPECIFIED 기본값 이 값은 사용되지 않습니다.
INTERACTIVE 쿼리가 BigQuery에서 대화형 우선순위로 실행됩니다. 자세한 내용은 https://cloud.google.com/bigquery/docs/running-queries#queries를 참고하세요.
BATCH 쿼리가 BigQuery에서 일괄 우선순위로 실행됩니다. 자세한 내용은 https://cloud.google.com/bigquery/docs/running-queries#batchqueries를 참고하세요.

주

워크플로 호출의 현재 상태를 나타냅니다.

열거형
STATE_UNSPECIFIED 기본값 이 값은 사용되지 않습니다.
RUNNING 현재 워크플로 호출이 실행 중입니다.
SUCCEEDED 워크플로 호출이 성공했습니다. 터미널 상태입니다.
CANCELLED 워크플로 호출이 취소되었습니다. 터미널 상태입니다.
FAILED 워크플로 호출이 실패했습니다. 터미널 상태입니다.
CANCELING 워크플로 호출이 취소되고 있지만 일부 작업은 아직 실행 중입니다.

PipelineType

파이프라인 유형입니다. 향후 연장될 수 있습니다. UNSPECIFIED인 경우 오류가 발생합니다.

열거형
PIPELINE_TYPE_UNSPECIFIED 기본값 이 값은 사용되지 않습니다.
DATAFORM 일반 Dataform 파이프라인입니다.
SQL SQL 단일 파일 애셋입니다.
NOTEBOOK 노트북 단일 파일 애셋입니다.

출력 스키마

컴파일 결과의 단일 호출을 나타냅니다.

WorkflowInvocation

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.
}
필드
name

string

출력 전용입니다. 워크플로 호출의 이름입니다.

invocationConfig

object (InvocationConfig)

변경할 수 없습니다. 설정하지 않으면 기본 InvocationConfig가 사용됩니다.

state

enum (State)

출력 전용입니다. 이 워크플로 호출의 현재 상태입니다.

invocationTiming

object (Interval)

출력 전용입니다. 이 워크플로 호출의 타이밍 세부정보입니다.

resolvedCompilationResult

string

출력 전용입니다. 이 호출을 만드는 데 사용된 확인된 컴파일 결과입니다. projects/*/locations/*/repositories/*/compilationResults/* 형식입니다.

dataEncryptionState

object (DataEncryptionState)

출력 전용입니다. 저장소에 KMS 키가 있는 경우에만 설정됩니다.

privateResourceMetadata

object (PrivateResourceMetadata)

출력 전용입니다. 이 리소스가 사용자 범위인지 여부를 나타내는 메타데이터입니다. WorkflowInvocation 리소스는 컴파일 결과에서 가져오고 컴파일 결과가 사용자 범위인 경우에만 user_scoped입니다.

pipelineConfig

object (PipelineConfig)

출력 전용입니다. Git 저장소 내의 파이프라인 유형과 경로를 정의하는 파이프라인 옵션입니다.

통합 필드 compilation_source. 이 호출에 사용할 컴파일 결과의 소스입니다. compilation_source은 다음 중 하나여야 합니다.
compilationResult

string

변경할 수 없습니다. 이 호출에 사용할 컴파일 결과의 이름입니다. projects/*/locations/*/repositories/*/compilationResults/* 형식이어야 합니다.

workflowConfig

string

변경할 수 없습니다. 호출할 워크플로 구성의 이름입니다. projects/*/locations/*/repositories/*/workflowConfigs/* 형식이어야 합니다.

통합 필드 _internal_metadata.

_internal_metadata는 다음 중 하나여야 합니다.

internalMetadata

string

출력 전용입니다. 리소스를 제공하기 위해 내부적으로 사용되는 모든 메타데이터 정보입니다. 예: 타임스탬프, 플래그, 상태 필드 등 이 필드의 형식은 JSON 문자열입니다.

InvocationConfig

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.
}
필드
includedTargets[]

object (Target)

(선택사항) 포함할 작업 식별자 집합입니다.

includedTags[]

string

(선택사항) 포함할 태그 집합입니다.

transitiveDependenciesIncluded

boolean

(선택사항) true로 설정하면 포함된 작업의 임시 종속 항목이 실행됩니다.

transitiveDependentsIncluded

boolean

(선택사항) true로 설정하면 포함된 작업의 임시 하위 항목이 실행됩니다.

fullyRefreshIncrementalTablesEnabled

boolean

(선택사항) true로 설정하면 증분 테이블이 완전히 새로고침됩니다.

serviceAccount

string

(선택사항) 워크플로 호출을 실행할 서비스 계정입니다.

통합 필드 _query_priority.

_query_priority는 다음 중 하나여야 합니다.

queryPriority

enum (QueryPriority)

(선택사항) BigQuery에서 쿼리 실행의 우선순위를 지정합니다. 자세한 내용은 https://cloud.google.com/bigquery/docs/running-queries#queries를 참고하세요.

대상

JSON 표현
{
  "database": string,
  "schema": string,
  "name": string
}
필드
database

string

(선택사항) 작업의 데이터베이스 (Google Cloud 프로젝트 ID)입니다.

schema

string

(선택사항) database 내의 작업 스키마 (BigQuery 데이터 세트 ID)입니다.

name

string

(선택사항) database 및 schema 내의 작업 이름입니다.

간격

JSON 표현
{
  "startTime": string,
  "endTime": string
}
필드
startTime

string (Timestamp format)

선택사항입니다. 간격의 시작(포함)입니다.

지정된 경우 이 간격과 일치하는 타임스탬프는 시작과 같거나 시작 이후여야 합니다.

생성된 출력은 항상 Z-정규화되고 소수점 이하 0, 3, 6 또는 9자리인 RFC 3339를 사용합니다. 'Z' 이외의 오프셋도 허용됩니다. 예를 들면 "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" 또는 "2014-10-02T15:01:23+05:30"입니다.

endTime

string (Timestamp format)

선택사항입니다. 간격의 끝(제외)입니다.

지정된 경우 이 간격과 일치하는 타임스탬프는 종료 시간 이전이어야 합니다.

생성된 출력은 항상 Z-정규화되고 소수점 이하 0, 3, 6 또는 9자리인 RFC 3339를 사용합니다. 'Z' 이외의 오프셋도 허용됩니다. 예를 들면 "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" 또는 "2014-10-02T15:01:23+05:30"입니다.

타임스탬프

JSON 표현
{
  "seconds": string,
  "nanos": integer
}
필드
seconds

string (int64 format)

Unix epoch 1970-01-01T00:00:00Z 이후 UTC 시간의 초 단위로 표현합니다. -62135596800~253402300799 (0001-01-01T00:00:00Z~9999-12-31T23:59:59Z) 사이여야 합니다.

nanos

integer

나노초 단위의 음수가 아닌 초수입니다. 이 필드는 기간의 나노초 부분이며 초의 대안이 아닙니다. 음수의 초수 값에는 시간에 반영되는 음수가 아닌 나노초 값이 있어야 합니다. 0~999,999,999(포함) 사이여야 합니다.

DataEncryptionState

JSON 표현
{
  "kmsKeyVersionName": string
}
필드
kmsKeyVersionName

string

필수 항목입니다. 리소스의 데이터가 암호화되는 KMS 키 버전 이름입니다.

PrivateResourceMetadata

JSON 표현
{
  "userScoped": boolean
}
필드
userScoped

boolean

출력 전용입니다. true인 경우 이 리소스는 사용자 범위입니다. 즉, 작업공간이거나 작업공간에서 가져온 것입니다.

PipelineConfig

JSON 표현
{
  "pipelineType": enum (PipelineType),
  "path": string
}
필드
pipelineType

enum (PipelineType)

필수 항목입니다. 파이프라인 유형입니다.

path

string

필수 항목입니다. 파이프라인이 정의된 Git 저장소 내의 상대 경로입니다. 예를 들어 Dataform 파이프라인의 경우 workflow_settings.yaml 또는 dataform.json이 있는 폴더의 경로입니다.

QueryPriority

BigQuery의 쿼리 실행 우선순위 유형입니다.

열거형
QUERY_PRIORITY_UNSPECIFIED 기본값 이 값은 사용되지 않습니다.
INTERACTIVE 쿼리가 BigQuery에서 대화형 우선순위로 실행됩니다. 자세한 내용은 https://cloud.google.com/bigquery/docs/running-queries#queries를 참고하세요.
BATCH 쿼리가 BigQuery에서 일괄 우선순위로 실행됩니다. 자세한 내용은 https://cloud.google.com/bigquery/docs/running-queries#batchqueries를 참고하세요.

주

워크플로 호출의 현재 상태를 나타냅니다.

열거형
STATE_UNSPECIFIED 기본값 이 값은 사용되지 않습니다.
RUNNING 현재 워크플로 호출이 실행 중입니다.
SUCCEEDED 워크플로 호출이 성공했습니다. 터미널 상태입니다.
CANCELLED 워크플로 호출이 취소되었습니다. 터미널 상태입니다.
FAILED 워크플로 호출이 실패했습니다. 터미널 상태입니다.
CANCELING 워크플로 호출이 취소되고 있지만 일부 작업은 아직 실행 중입니다.

PipelineType

파이프라인 유형입니다. 향후 연장될 수 있습니다. UNSPECIFIED인 경우 오류가 발생합니다.

열거형
PIPELINE_TYPE_UNSPECIFIED 기본값 이 값은 사용되지 않습니다.
DATAFORM 일반 Dataform 파이프라인입니다.
SQL SQL 단일 파일 애셋입니다.
NOTEBOOK 노트북 단일 파일 애셋입니다.

도구 주석

도구 주석은 특정 도구의 기본 위험을 설명하기 위해 MCP 클라이언트로 전송됩니다. 대부분의 클라이언트는 이러한 힌트를 신뢰할 수 없는 것으로 취급하지만, 사용자에게 확인 메시지를 전송할 시점을 결정하는 데 사용할 수 있습니다.

제목 문자열과 함께 다음 불리언 힌트가 다음과 같이 정의됩니다.

  • readOnlyHint: true인 경우 도구가 환경을 수정하지 않습니다. 기본값: false.
  • destructiveHint: true인 경우 도구가 파괴적인 작업을 실행할 수 있습니다. false인 경우 도구는 추가 작업만 실행할 수 있습니다. 기본값은 true입니다.
  • idempotentHint: true인 경우 동일한 인수로 도구를 반복적으로 호출해도 환경에 추가적인 영향을 미치지 않습니다. 기본값: false.
  • openWorldHint: true인 경우 도구가 외부 엔티티의 '오픈 월드'와 상호작용할 수 있습니다. false인 경우 도구는 내부 항목과만 상호작용할 수 있습니다. 예를 들어 웹 검색 도구는 오픈 월드이지만 메모리 도구는 오픈 월드가 아닙니다.

파괴적 힌트: ❌ | 멱등성 힌트: ❌ | 읽기 전용 힌트: ❌ | 오픈 월드 힌트: ❌