MCP Tools Reference: dataform.googleapis.com

ツール: read_file

コミットされていない変更を含む、Dataform ワークスペース内のファイルの内容を返します。

このツールを使用して、ワークスペースの workflow_settings.yaml ファイルを読み取ります。このファイルには、デフォルトの BigQuery データセット、デフォルトのロケーション、Dataform コア バージョンなど、パイプラインのコンパイル設定が保持されています。このファイルは、パイプラインのディレクトリのルートにあります。リポジトリにはサブディレクトリに複数のパイプラインを保持できるため、必ずしもワークスペースのルートであるとは限りません。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 の場合、ツールは内部エンティティとのみやり取りできます。たとえば、ウェブ検索ツールはオープン ワールドですが、メモリツールはオープン ワールドではありません。

破壊的ヒント: ❌ | べき等ヒント: ✅ | 読み取り専用ヒント: ✅ | オープン ワールド ヒント: ❌