MCP Tools Reference: dataform.googleapis.com

도구: get_repository

Git 원격 설정, 작업공간 컴파일 재정의, 기본 서비스 계정을 포함한 단일 Dataform 저장소를 가져옵니다.

이 도구를 사용하여 git_remote_settings 필드를 확인하여 저장소와 상호작용하는 방법을 확인합니다. git_remote_settings 필드가 있으면 저장소가 원격 Git 호스트에 연결된 것이므로 create_workspace 또는 commit_workspace_changes와 같은 작업공간 기반 도구를 파이프라인 개발에 사용해야 합니다. 필드가 누락된 경우 저장소는 Google 호스팅입니다. 이 경우에도 파이프라인 개발을 위해 작업공간을 사용할 수 있습니다. 단일 파일 애셋을 관리하는 경우가 아니라면 commit_repository_changes과 같은 직접 저장소 도구는 권장되지 않습니다.

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

정확한 저장소 이름을 모르는 경우 list_repositories 도구를 사용하여 찾습니다.

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

입력 스키마

GetRepository 요청 메시지입니다.

GetRepositoryRequest

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

string

필수 항목입니다. 저장소 이름입니다.

출력 스키마

Dataform Git 저장소를 나타냅니다.

저장소

JSON 표현
{
  "name": string,
  "createTime": string,
  "displayName": string,
  "gitRemoteSettings": {
    object (GitRemoteSettings)
  },
  "npmrcEnvironmentVariablesSecretVersion": string,
  "workspaceCompilationOverrides": {
    object (WorkspaceCompilationOverrides)
  },
  "labels": {
    string: string,
    ...
  },
  "setAuthenticatedUserAdmin": boolean,
  "serviceAccount": string,
  "kmsKeyName": string,
  "dataEncryptionState": {
    object (DataEncryptionState)
  },

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

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

  // 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

식별자. 저장소 이름입니다.

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

displayName

string

(선택사항) 저장소의 사용자 친화적인 이름입니다.

gitRemoteSettings

object (GitRemoteSettings)

(선택사항) 설정된 경우 이 저장소가 Git 원격 저장소에 연결되도록 구성합니다.

npmrcEnvironmentVariablesSecretVersion

string

(선택사항) 패키지 설치 작업을 위해 변수를 .npmrc 파일에 삽입하는 데 사용할 Secret Manager 보안 비밀 버전의 이름입니다. projects/*/secrets/*/versions/* 형식이어야 합니다. 파일 자체는 JSON 형식이어야 합니다.

workspaceCompilationOverrides

object (WorkspaceCompilationOverrides)

(선택사항) 설정된 경우 workspace_compilation_overrides 필드는 작업공간 범위 컴파일 결과를 만들 때 dataform.json에 지정된 기본 컴파일 설정을 재정의합니다. 자세한 내용은 WorkspaceCompilationOverrides 문서를 참고하세요.

labels

map (key: string, value: string)

(선택사항) 저장소 사용자 라벨입니다.

"key": value 쌍 목록을 포함하는 객체입니다. 예: { "name": "wrench", "mass": "1.3kg", "count": "3" }

setAuthenticatedUserAdmin

boolean

(선택사항) 입력 전용입니다. true로 설정하면 인증된 사용자에게 생성된 저장소에 대한 roles/dataform.admin 역할이 부여됩니다. 나중에 생성된 저장소에 대한 액세스 권한을 수정하려면 https://cloud.google.com/dataform/reference/rest#rest-resource:-v1beta1.projects.locations.repositories에서 setIamPolicy를 적용하세요.

serviceAccount

string

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

kmsKeyName

string

(선택사항) KMS 암호화 키에 대한 참조입니다. 제공된 경우 저장소와 모든 하위 리소스의 사용자 데이터를 암호화하는 데 사용됩니다. 저장소를 만든 후에는 암호화 키를 추가하거나 업데이트할 수 없습니다. 예: projects/{kms_project}/locations/{location}/keyRings/{key_location}/cryptoKeys/{key}

dataEncryptionState

object (DataEncryptionState)

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

통합 필드 _containing_folder.

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

containingFolder

string

(선택사항) 저장소의 포함 폴더 이름입니다. 이 필드는 변경할 수 없으며 MoveRepository 작업을 통해 수정할 수 있습니다. 형식은 projects/*/locations/*/folders/*입니다. 또는 projects/*/locations/*/teamFolders/*입니다.

통합 필드 _team_folder_name.

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

teamFolderName

string

출력 전용입니다. 이 저장소가 연결된 TeamFolder의 리소스 이름입니다. projects/{project}/locations/{location}/teamFolders/{teamFolder} 형식이어야 합니다. 이 값이 설정되지 않으면 저장소가 TeamFolder와 연결되지 않습니다.

통합 필드 _internal_metadata.

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

internalMetadata

string

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

타임스탬프

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(포함) 사이여야 합니다.

GitRemoteSettings

JSON 표현
{
  "url": string,
  "defaultBranch": string,
  "effectiveDefaultBranch": string,
  "authenticationTokenSecretVersion": string,
  "sshAuthenticationConfig": {
    object (SshAuthenticationConfig)
  },
  "tokenStatus": enum (TokenStatus),

  // Union field _git_repository_link can be only one of the following:
  "gitRepositoryLink": string
  // End of list of possible types for union field _git_repository_link.
}
필드
url

string

필수 항목입니다. Git 원격의 URL입니다.

defaultBranch

string

(선택사항) Git 원격의 기본 브랜치 이름입니다. 설정하지 않으면 main이 사용됩니다.

effectiveDefaultBranch

string

출력 전용입니다. Git 원격의 유효 기본 브랜치 이름입니다. 설정된 경우 Git 원격의 기본 브랜치 이름입니다. 그렇지 않으면 main입니다.

authenticationTokenSecretVersion

string

(선택사항) Git 작업의 인증 토큰으로 사용할 Secret Manager 보안 비밀 버전의 이름입니다. projects/*/secrets/*/versions/* 형식이어야 합니다.

sshAuthenticationConfig

object (SshAuthenticationConfig)

(선택사항) SSH 프로토콜을 사용하는 원격 URI의 인증 필드입니다.

tokenStatus
(deprecated)

enum (TokenStatus)

출력 전용입니다. 지원 중단됨: 필드에 토큰 상태 정보가 포함되어 있지 않습니다. 대신 https://cloud.google.com/dataform/reference/rest/v1beta1/projects.locations.repositories/computeAccessTokenStatus를 사용하세요.

통합 필드 _git_repository_link.

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

gitRepositoryLink

string

(선택사항) 머신 사용자 인증 정보에 사용되는 GitRepositoryLink의 리소스 이름입니다. projects/*/locations/*/connections/*/gitRepositoryLinks/* 형식이어야 합니다.

SshAuthenticationConfig

JSON 표현
{
  "userPrivateKeySecretVersion": string,
  "hostPublicKey": string
}
필드
userPrivateKeySecretVersion

string

필수 항목입니다. Git 작업의 ssh 비공개 키로 사용할 Secret Manager 보안 비밀 버전의 이름입니다. projects/*/secrets/*/versions/* 형식이어야 합니다.

hostPublicKey

string

필수 항목입니다. 원격 Git 호스트의 ID를 확인하는 공개 SSH 키의 콘텐츠입니다.

WorkspaceCompilationOverrides

JSON 표현
{
  "defaultDatabase": string,
  "schemaSuffix": string,
  "tablePrefix": string
}
필드
defaultDatabase

string

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

schemaSuffix

string

(선택사항) 모든 스키마 (BigQuery 데이터 세트 ID) 이름에 추가해야 하는 서픽스입니다.

tablePrefix

string

(선택사항) 모든 테이블 이름 앞에 추가되어야 하는 프리픽스입니다.

LabelsEntry

JSON 표현
{
  "key": string,
  "value": string
}
필드
key

string

value

string

DataEncryptionState

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

string

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

TokenStatus

인증 토큰의 상태입니다.

열거형
TOKEN_STATUS_UNSPECIFIED 기본값 이 값은 사용되지 않습니다.
NOT_FOUND Secret Manager에서 토큰을 찾을 수 없거나 Dataform 서비스 계정에 액세스 권한이 없습니다.
INVALID 토큰을 사용하여 Git 원격 저장소를 인증할 수 없습니다.
VALID 토큰이 Git 원격에 대해 인증하는 데 성공적으로 사용되었습니다.

도구 주석

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

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

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

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