MCP Tools Reference: dataform.googleapis.com

工具:query_directory_contents

返回 Dataform 工作区内指定目录的内容。

在调用 read_filewrite_file 工具之前,使用此工具发现有效的文件路径。

workspace 参数值必须采用 projects/{project_id}/locations/{location}/repositories/{repository}/workspaces/{workspace} 格式。

path 参数值是相对于工作区根目录的目录相对路径。请勿使用目录遍历,例如 ..。如果省略,则使用工作区根目录。

以下代码示例展示了如何使用 curl 调用 query_directory_contents 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": "query_directory_contents",
    "arguments": {
      // Provide these details according to the MCP tool specification.
    }
  },
  "jsonrpc": "2.0",
  "id": 1
}'

输入架构

QueryDirectoryContents 请求消息。

QueryDirectoryContentsRequest

JSON 表示法
{
  "workspace": string,
  "path": string,
  "pageSize": integer,
  "pageToken": string,
  "view": enum (DirectoryContentsView)
}
字段
workspace

string

必需。工作区的名称。

path

string

可选。目录的完整路径(包括目录名称),相对于工作区根目录。如果未设置,则使用工作区根目录。

pageSize

integer

可选。要返回的路径数量上限。服务器返回的项目数量可能少于请求的数量。如果未指定,服务器将选择合适的默认值。

pageToken

string

可选。从之前的 QueryDirectoryContents 调用接收的页面令牌。利用其进行后续页面检索。

进行分页时,提供给 QueryDirectoryContents 的所有其他参数(page_size 除外)必须与提供页面令牌的调用匹配。

view

enum (DirectoryContentsView)

可选。指定要为每个目录条目返回的元数据。如果未指定,则默认值为 DIRECTORY_CONTENTS_VIEW_BASIC。目前,受 CMEK 保护的工作区不支持 DIRECTORY_CONTENTS_VIEW_METADATA 视图。

DirectoryContentsView

表示要返回的目录内容的详细程度。

枚举
DIRECTORY_CONTENTS_VIEW_UNSPECIFIED 默认未设置的值。默认为 DIRECTORY_CONTENTS_VIEW_BASIC。
DIRECTORY_CONTENTS_VIEW_BASIC 仅包含文件或目录名称。这是默认行为。
DIRECTORY_CONTENTS_VIEW_METADATA 包含每个文件或目录的所有元数据。目前不受 CMEK 保护的工作区支持。

输出架构

QueryDirectoryContents 响应消息。

QueryDirectoryContentsResponse

JSON 表示法
{
  "directoryEntries": [
    {
      object (DirectoryEntry)
    }
  ],
  "nextPageToken": string
}
字段
directoryEntries[]

object (DirectoryEntry)

目录中的条目列表。

nextPageToken

string

可作为 page_token 发送并用于检索下一页的令牌。如果省略此字段,则不存在后续页面。

DirectoryEntry

JSON 表示法
{
  "metadata": {
    object (FilesystemEntryMetadata)
  },

  // Union field entry can be only one of the following:
  "file": string,
  "directory": string
  // End of list of possible types for union field entry.
}
字段
metadata

object (FilesystemEntryMetadata)

包含元数据的条目。

联合字段 entry。相应条目的内容。entry 只能是下列其中一项:
file

string

目录中的文件。返回的路径包括从根目录开始的完整文件夹结构。

directory

string

相应目录中的子目录。返回的路径包括从根目录开始的完整文件夹结构。

FilesystemEntryMetadata

JSON 表示法
{
  "sizeBytes": string,
  "updateTime": string
}
字段
sizeBytes

string (int64 format)

仅限输出。提供条目的大小(以字节为单位)。对于目录,此值为 0。

updateTime

string (Timestamp format)

仅限输出。表示条目的上次修改时间。

采用 RFC 3339 标准,生成的输出将始终进行 Z 规范化(即转换为 UTC 零时区格式并在末尾附加 Z),并使用 0、3、6 或 9 个小数位。不带“Z”的偏差时间也是可以接受的。示例:"2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z""2014-10-02T15:01:23+05:30"

时间戳

JSON 表示法
{
  "seconds": string,
  "nanos": integer
}
字段
seconds

string (int64 format)

表示世界协调时间 (UTC) 的秒数(从 Unix 纪元 1970-01-01T00:00:00Z 开始算起)。必须介于 -62135596800 到 253402300799 之间(含边界值),对应于 0001-01-01T00:00:00Z 到 9999-12-31T23:59:59Z。

nanos

integer

秒数的非负小数部分(以纳秒为单位)。此字段是时长的纳秒部分,而不是秒的替代项。对于含小数部分的负秒数,仍必须包含按时间递升的非负纳秒值。必须在 0 到 999,999,999 之间(含边界值)。

工具注释

工具注释会发送给 MCP 客户端,用于描述指定工具的基本风险。大多数客户端会将这些提示视为不受信任的,但它们可用于确定何时向用户发送确认提示。

除了标题字符串之外,还定义了以下布尔值提示:

  • readOnlyHint:如果为 true,则工具不会修改其环境。默认值:false。
  • destructiveHint:如果为 true,则工具可以执行破坏性操作。如果为 false,则该工具只能执行添加操作。默认值:true。
  • idempotentHint:如果为 true,则使用相同实参重复调用该工具不会对其环境产生任何额外影响。默认值:false。
  • openWorldHint:如果为 true,则工具可以与外部实体的“开放世界”进行交互。如果为 false,则该工具只能与内部实体互动。例如,网络搜索工具是开放世界工具,而内存工具不是开放世界工具。

破坏性提示:❌ | 等幂性提示:✅ | 只读提示:✅ | 开放世界提示:❌