MCP Tools Reference: dataform.googleapis.com

도구: read_file

커밋되지 않은 변경사항을 포함하여 Dataform 작업공간 내 파일의 콘텐츠를 반환합니다.

이 도구를 사용하여 기본 BigQuery 데이터 세트, 기본 위치, Dataform 핵심 버전과 같은 파이프라인의 컴파일 설정을 보유하는 작업공간의 workflow_settings.yaml 파일을 읽습니다. 이 파일은 파이프라인 디렉터리의 루트에 있습니다. 저장소는 하위 디렉터리에 여러 파이프라인을 포함할 수 있으므로 작업공간 루트가 아닐 수도 있습니다. search_files 도구를 사용하여 파일을 찾습니다.

작업공간 없이 저장소에서 커밋된 파일을 직접 읽으려면 대신 read_repository_file 도구를 사용하세요. read_repository_file는 원격 Git 호스트에 연결되지 않은 저장소에서만 작동합니다.

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

path 파라미터 값은 작업공간 루트에서 파일까지의 상대 경로입니다. ..와 같은 디렉터리 탐색을 사용하지 마세요. 유효한 경로는 query_directory_contents 또는 search_files 도구를 사용하여 가져올 수 있습니다.

revision 파라미터 값은 선택적으로 파일의 특정 Git 버전을 선택합니다. 생략하면 파일의 현재 커밋되지 않은 상태가 반환됩니다.

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

입력 스키마

ReadFile 요청 메시지입니다.

ReadFileRequest

JSON 표현
{
  "workspace": string,
  "path": string,
  "revision": string
}
필드
workspace

string

필수 항목입니다. 작업공간의 이름입니다.

path

string

필수 항목입니다. 작업공간 루트를 기준으로 하는 파일 이름이 포함된 파일의 전체 경로입니다.

revision

string

(선택사항) 반환할 파일의 Git 버전입니다. 비워 두면 path의 현재 콘텐츠가 반환됩니다.

출력 스키마

ReadFile 응답 메시지입니다.

ReadFileResponse

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

string (bytes format)

파일의 콘텐츠입니다.

base64 인코딩 문자열입니다.

도구 주석

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

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

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

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