도구: 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 |
필수 항목입니다. 작업공간의 이름입니다. |
path |
필수 항목입니다. 작업공간 루트를 기준으로 하는 파일 이름이 포함된 파일의 전체 경로입니다. |
revision |
(선택사항) 반환할 파일의 Git 버전입니다. 비워 두면 |
출력 스키마
ReadFile 응답 메시지입니다.
ReadFileResponse
| JSON 표현 |
|---|
{ "fileContents": string } |
| 필드 | |
|---|---|
fileContents |
파일의 콘텐츠입니다. base64 인코딩 문자열입니다. |
도구 주석
도구 주석은 특정 도구의 기본 위험을 설명하기 위해 MCP 클라이언트로 전송됩니다. 대부분의 클라이언트는 이러한 힌트를 신뢰할 수 없는 것으로 취급하지만, 사용자에게 확인 메시지를 전송할 시점을 결정하는 데 사용할 수 있습니다.
제목 문자열과 함께 다음 불리언 힌트가 다음과 같이 정의됩니다.
readOnlyHint: true인 경우 도구가 환경을 수정하지 않습니다. 기본값: false.destructiveHint: true인 경우 도구가 파괴적인 작업을 실행할 수 있습니다. false인 경우 도구는 추가 작업만 실행할 수 있습니다. 기본값은 true입니다.idempotentHint: true인 경우 동일한 인수로 도구를 반복적으로 호출해도 환경에 추가적인 영향을 미치지 않습니다. 기본값: false.openWorldHint: true인 경우 도구가 외부 엔티티의 '오픈 월드'와 상호작용할 수 있습니다. false인 경우 도구는 내부 항목과만 상호작용할 수 있습니다. 예를 들어 웹 검색 도구는 오픈 월드이지만 메모리 도구는 오픈 월드가 아닙니다.
파괴적 힌트: ❌ | 멱등성 힌트: ✅ | 읽기 전용 힌트: ✅ | 오픈 월드 힌트: ❌