MCP Tools Reference: dataform.googleapis.com

도구: create_workspace

지정된 Dataform 저장소에 새 개발 작업공간을 만듭니다.

작업공간은 격리되고 수정 가능한 저장소 체크아웃입니다. 여러 파일에서 파이프라인 코드를 작성하거나 수정하고 커밋하기 전에 유효성을 검사해야 하는 경우 워크스페이스를 사용하세요. write_fileremove_file 도구를 사용하여 워크스페이스에서 파일을 수정하고, commit_workspace_changes 도구로 결과를 기록하고, push_git_commits 도구로 커밋된 변경사항을 저장소에 게시합니다.

표준 파이프라인 개발에는 commit_repository_changes 도구를 사용하지 마세요. 이 도구는 저장소에 직접 쓰며, 노트북이나 저장된 쿼리와 같은 단일 파일 애셋에만 사용해야 하고, 원격 Git 호스트에 연결된 저장소에서는 실패합니다.

필수사항: 상위 저장소가 있어야 합니다.

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

workspace_id 파라미터 값은 작업공간에 사용할 ID입니다.

workspace 파라미터 값은 생성할 작업공간을 보유합니다.

다음 코드 샘플은 curl를 사용하여 create_workspace 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_workspace",
    "arguments": {
      // Provide these details according to the MCP tool specification.
    }
  },
  "jsonrpc": "2.0",
  "id": 1
}'

입력 스키마

CreateWorkspace 요청 메시지입니다.

CreateWorkspaceRequest

JSON 표현
{
  "parent": string,
  "workspace": {
    object (Workspace)
  },
  "workspaceId": string
}
필드
parent

string

필수 항목입니다. 작업공간을 만들 저장소입니다. projects/*/locations/*/repositories/* 형식이어야 합니다.

workspace

object (Workspace)

필수 항목입니다. 생성할 작업공간입니다.

workspaceId

string

필수 항목입니다. 작업공간에 사용할 ID이며, 작업공간의 리소스 이름의 마지막 구성요소가 됩니다.

작업공간

JSON 표현
{
  "name": string,
  "createTime": string,
  "dataEncryptionState": {
    object (DataEncryptionState)
  },
  "privateResourceMetadata": {
    object (PrivateResourceMetadata)
  },
  "depth": integer,

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

  // Union field _disable_moves can be only one of the following:
  "disableMoves": boolean
  // End of list of possible types for union field _disable_moves.

  // Union field _original_branch can be only one of the following:
  "originalBranch": string
  // End of list of possible types for union field _original_branch.

  // Union field _enable_branch_management can be only one of the following:
  "enableBranchManagement": boolean
  // End of list of possible types for union field _enable_branch_management.

  // Union field _shallow can be only one of the following:
  "shallow": boolean
  // End of list of possible types for union field _shallow.
}
필드
name

string

식별자. 작업공간의 이름입니다.

createTime

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"입니다.

dataEncryptionState

object (DataEncryptionState)

출력 전용입니다. 이 워크스페이스가 KMS 키로 보호되는 경우 Git 저장소의 데이터 암호화 상태입니다.

privateResourceMetadata

object (PrivateResourceMetadata)

출력 전용입니다. 이 리소스가 사용자 범위인지 여부를 나타내는 메타데이터입니다. Workspace 리소스의 경우 user_scoped 필드는 항상 true입니다.

depth

integer

(선택사항) 입력 전용입니다. 변경할 수 없습니다. 이 작업공간에 대해 체크아웃할 Git 저장소의 최대 깊이입니다. 정의되고 0보다 큰 경우 Git 저장소가 지정된 깊이로 얕은 복제로 생성되고, 그렇지 않으면 전체 클론이 실행됩니다. 이 필드는 브랜치 관리가 사용 설정된 GitHub, GitLab, 퍼스트 파티 저장소에만 사용할 수 있습니다.

통합 필드 _internal_metadata.

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

internalMetadata

string

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

통합 필드 _disable_moves.

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

disableMoves

boolean

(선택사항) true로 설정하면 연결된 저장소가 이동되더라도 워크스페이스가 이동되지 않습니다. 대신 삭제됩니다.

통합 필드 _original_branch.

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

originalBranch

string

(선택사항) 입력 전용입니다. 변경할 수 없습니다. 이 작업공간의 원격 저장소에서 모든 풀/푸시 작업에 사용되는 기본 업스트림 브랜치의 이름입니다. 비어 있으면 저장소의 HEAD 브랜치가 사용됩니다.

통합 필드 _enable_branch_management.

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

enableBranchManagement

boolean

변경할 수 없습니다. 작업공간의 브랜치 체크아웃 사용 설정을 제어합니다.

True로 설정하면 워크스페이스에서 브랜치를 체크아웃할 수 있습니다.

통합 필드 _shallow.

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

shallow

boolean

출력 전용입니다. true로 설정하면 작업공간이 얕은 복제로 생성됩니다. 깊이 필드가 0보다 큰 값으로 설정된 경우 true로 설정되고, 그렇지 않으면 false로 설정됩니다.

타임스탬프

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인 경우 이 리소스는 사용자 범위입니다. 즉, 작업공간이거나 작업공간에서 가져온 것입니다.

출력 스키마

Dataform Git 작업공간을 나타냅니다.

작업공간

JSON 표현
{
  "name": string,
  "createTime": string,
  "dataEncryptionState": {
    object (DataEncryptionState)
  },
  "privateResourceMetadata": {
    object (PrivateResourceMetadata)
  },
  "depth": integer,

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

  // Union field _disable_moves can be only one of the following:
  "disableMoves": boolean
  // End of list of possible types for union field _disable_moves.

  // Union field _original_branch can be only one of the following:
  "originalBranch": string
  // End of list of possible types for union field _original_branch.

  // Union field _enable_branch_management can be only one of the following:
  "enableBranchManagement": boolean
  // End of list of possible types for union field _enable_branch_management.

  // Union field _shallow can be only one of the following:
  "shallow": boolean
  // End of list of possible types for union field _shallow.
}
필드
name

string

식별자. 작업공간의 이름입니다.

createTime

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"입니다.

dataEncryptionState

object (DataEncryptionState)

출력 전용입니다. 이 워크스페이스가 KMS 키로 보호되는 경우 Git 저장소의 데이터 암호화 상태입니다.

privateResourceMetadata

object (PrivateResourceMetadata)

출력 전용입니다. 이 리소스가 사용자 범위인지 여부를 나타내는 메타데이터입니다. Workspace 리소스의 경우 user_scoped 필드는 항상 true입니다.

depth

integer

(선택사항) 입력 전용입니다. 변경할 수 없습니다. 이 작업공간에 대해 체크아웃할 Git 저장소의 최대 깊이입니다. 정의되고 0보다 큰 경우 Git 저장소가 지정된 깊이로 얕은 복제로 생성되고, 그렇지 않으면 전체 클론이 실행됩니다. 이 필드는 브랜치 관리가 사용 설정된 GitHub, GitLab, 퍼스트 파티 저장소에만 사용할 수 있습니다.

통합 필드 _internal_metadata.

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

internalMetadata

string

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

통합 필드 _disable_moves.

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

disableMoves

boolean

(선택사항) true로 설정하면 연결된 저장소가 이동되더라도 워크스페이스가 이동되지 않습니다. 대신 삭제됩니다.

통합 필드 _original_branch.

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

originalBranch

string

(선택사항) 입력 전용입니다. 변경할 수 없습니다. 이 작업공간의 원격 저장소에서 모든 풀/푸시 작업에 사용되는 기본 업스트림 브랜치의 이름입니다. 비어 있으면 저장소의 HEAD 브랜치가 사용됩니다.

통합 필드 _enable_branch_management.

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

enableBranchManagement

boolean

변경할 수 없습니다. 작업공간의 브랜치 체크아웃 사용 설정을 제어합니다.

True로 설정하면 워크스페이스에서 브랜치를 체크아웃할 수 있습니다.

통합 필드 _shallow.

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

shallow

boolean

출력 전용입니다. true로 설정하면 작업공간이 얕은 복제로 생성됩니다. 깊이 필드가 0보다 큰 값으로 설정된 경우 true로 설정되고, 그렇지 않으면 false로 설정됩니다.

타임스탬프

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인 경우 이 리소스는 사용자 범위입니다. 즉, 작업공간이거나 작업공간에서 가져온 것입니다.

도구 주석

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

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

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

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