MCP Tools Reference: dataform.googleapis.com

ツール: create_workspace

指定された Dataform リポジトリに新しい開発ワークスペースを作成します。

ワークスペースは、リポジトリの分離された編集可能なチェックアウトです。複数のファイルにわたってパイプライン コードを作成または修正し、コミットする前に検証する必要がある場合は、ワークスペースを使用します。write_file ツールと remove_file ツールを使用してワークスペース内のファイルを編集し、commit_workspace_changes ツールで結果を記録して、push_git_commits ツールで commit された変更をリポジトリに公開します。

標準パイプラインの開発には 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

ID。ワークスペースの名前。

createTime

string (Timestamp format)

出力専用。ワークスペースが作成されたときのタイムスタンプ。

RFC 3339 を使用します。生成された出力は常に Z 正規化され、小数点以下は 0、3、6、または 9 桁になります。「Z」以外のオフセットも使用できます。例: "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z""2014-10-02T15:01:23+05:30"

dataEncryptionState

object (DataEncryptionState)

出力専用。この Workspace が KMS 鍵で保護されている場合の Git リポジトリのデータ暗号化状態。

privateResourceMetadata

object (PrivateResourceMetadata)

出力専用。このリソースがユーザー スコープかどうかを示すメタデータ。Workspace リソースの場合、user_scoped フィールドは常に true です。

depth

integer

省略可。入力専用。変更不可。このワークスペースでチェックアウトする Git リポジトリの最大深度。定義されていて 0 より大きい場合、Git リポジトリは指定された深さのシャロー クローンとして作成されます。それ以外の場合は、フルクローンが実行されます。このフィールドは、ブランチ管理が有効になっている GitHub、GitLab、1p リポジトリでのみ使用できます。

共用体フィールド _internal_metadata

_internal_metadata は次のいずれかになります。

internalMetadata

string

出力専用。リソースの提供に内部で使用されるすべてのメタデータ情報。たとえば、タイムスタンプ、フラグ、ステータス フィールドなどです。このフィールドの形式は JSON 文字列です。

共用体フィールド _disable_moves

_disable_moves は次のいずれかになります。

disableMoves

boolean

省略可。true に設定すると、リンクされたリポジトリが移動しても、ワークスペースは移動されません。代わりに、削除されます。

共用体フィールド _original_branch

_original_branch は次のいずれかになります。

originalBranch

string

省略可。入力専用。変更不可。このワークスペースのリモート リポジトリ内のすべての pull/push オペレーションのデフォルトの上流ブランチの名前。空の場合、リポジトリの HEAD ブランチが使用されます。

共用体フィールド _enable_branch_management

_enable_branch_management は次のいずれかになります。

enableBranchManagement

boolean

変更不可。ワークスペースのブランチ チェックアウトの有効化を制御します。

True に設定すると、ワークスペースでブランチのチェックアウトが許可されます。

共用体フィールド _shallow

_shallow は次のいずれかになります。

shallow

boolean

出力専用。true に設定されている場合、ワークスペースはシャロー クローンとして作成されています。depth フィールドが 0 より大きい値に設定されている場合は true に設定され、それ以外の場合は false に設定されます。

タイムスタンプ

JSON 表現
{
  "seconds": string,
  "nanos": integer
}
フィールド
seconds

string (int64 format)

UNIX エポック 1970-01-01T00:00:00Z からの UTC 時刻の秒数を表します。-62135596800~253402300799 の範囲(両端を含む)にする必要があります(これは 0001-01-01T00:00:00Z~9999-12-31T23:59:59Z に対応します)。

nanos

integer

ナノ秒分解能による、秒の負ではない小数以下部分。このフィールドは、秒の代替ではなく、期間のナノ秒部分です。小数以下を含む負の秒の値は、時間を前方にカウントする負ではない nanos 値を持つ必要があります。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

ID。ワークスペースの名前。

createTime

string (Timestamp format)

出力専用。ワークスペースが作成されたときのタイムスタンプ。

RFC 3339 を使用します。生成された出力は常に Z 正規化され、小数点以下は 0、3、6、または 9 桁になります。「Z」以外のオフセットも使用できます。例: "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z""2014-10-02T15:01:23+05:30"

dataEncryptionState

object (DataEncryptionState)

出力専用。この Workspace が KMS 鍵で保護されている場合の Git リポジトリのデータ暗号化状態。

privateResourceMetadata

object (PrivateResourceMetadata)

出力専用。このリソースがユーザー スコープかどうかを示すメタデータ。Workspace リソースの場合、user_scoped フィールドは常に true です。

depth

integer

省略可。入力専用。変更不可。このワークスペースでチェックアウトする Git リポジトリの最大深度。定義されていて 0 より大きい場合、Git リポジトリは指定された深さのシャロー クローンとして作成されます。それ以外の場合は、フルクローンが実行されます。このフィールドは、ブランチ管理が有効になっている GitHub、GitLab、1p リポジトリでのみ使用できます。

共用体フィールド _internal_metadata

_internal_metadata は次のいずれかになります。

internalMetadata

string

出力専用。リソースの提供に内部で使用されるすべてのメタデータ情報。たとえば、タイムスタンプ、フラグ、ステータス フィールドなどです。このフィールドの形式は JSON 文字列です。

共用体フィールド _disable_moves

_disable_moves は次のいずれかになります。

disableMoves

boolean

省略可。true に設定すると、リンクされたリポジトリが移動しても、ワークスペースは移動されません。代わりに、削除されます。

共用体フィールド _original_branch

_original_branch は次のいずれかになります。

originalBranch

string

省略可。入力専用。変更不可。このワークスペースのリモート リポジトリ内のすべての pull/push オペレーションのデフォルトの上流ブランチの名前。空の場合、リポジトリの HEAD ブランチが使用されます。

共用体フィールド _enable_branch_management

_enable_branch_management は次のいずれかになります。

enableBranchManagement

boolean

変更不可。ワークスペースのブランチ チェックアウトの有効化を制御します。

True に設定すると、ワークスペースでブランチのチェックアウトが許可されます。

共用体フィールド _shallow

_shallow は次のいずれかになります。

shallow

boolean

出力専用。true に設定されている場合、ワークスペースはシャロー クローンとして作成されています。depth フィールドが 0 より大きい値に設定されている場合は true に設定され、それ以外の場合は false に設定されます。

タイムスタンプ

JSON 表現
{
  "seconds": string,
  "nanos": integer
}
フィールド
seconds

string (int64 format)

UNIX エポック 1970-01-01T00:00:00Z からの UTC 時刻の秒数を表します。-62135596800~253402300799 の範囲(両端を含む)にする必要があります(これは 0001-01-01T00:00:00Z~9999-12-31T23:59:59Z に対応します)。

nanos

integer

ナノ秒分解能による、秒の負ではない小数以下部分。このフィールドは、秒の代替ではなく、期間のナノ秒部分です。小数以下を含む負の秒の値は、時間を前方にカウントする負ではない nanos 値を持つ必要があります。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 の場合、ツールは内部エンティティとのみやり取りできます。たとえば、ウェブ検索ツールはオープン ワールドですが、メモリツールはオープン ワールドではありません。

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