MCP Tools Reference: monitoring.googleapis.com

工具:query_range

在一定时间范围内评估 PromQL 查询

以下代码示例展示了如何使用 curl 调用 query_range MCP 工具。

Curl 请求
curl --location 'https://monitoring.googleapis.com/mcp' \
--header 'content-type: application/json' \
--header 'accept: application/json, text/event-stream' \
--data '{
  "method": "tools/call",
  "params": {
    "name": "query_range",
    "arguments": {
      // Provide these details according to the MCP tool specification.
    }
  },
  "jsonrpc": "2.0",
  "id": 1
}'

输入架构

QueryRangeRequest 包含 Prometheus 上游范围查询 API 的所有参数以及 GCM 特有的参数。

QueryRangeRequest

JSON 表示法
{
  "name": string,
  "query": string,
  "start": string,
  "end": string,
  "step": string,
  "timeout": string,
  "location": string
}
字段
name

string

必需。在其中执行请求的项目。与存储在下的项目工作区相关联的数据。格式为:projects/[PROJECT_ID_OR_NUMBER]。开源 API,但用作请求路径前缀,以区分 Google Prometheus Engine 的不同虚拟 Prometheus 实例。

query

string

PromQL 查询字符串。查询语言文档:https://prometheus.io/docs/prometheus/latest/querying/basics/。

start

string

用于评估查询的开始时间。浮点 UNIX 秒数或 RFC3339 格式的时间戳。

end

string

用于评估查询的结束时间。浮点 UNIX 秒数或 RFC3339 格式的时间戳。

step

string

查询结果的分辨率。Prometheus 时长字符串 (https://prometheus.io/docs/prometheus/latest/querying/basics/#time-durations) 或浮点秒数。必须使用此非标准编码,以与开源 API 兼容。客户端可能仍会在连接级别实现超时,同时忽略此字段。

timeout

string

查询的超时上限。Prometheus 时长字符串 (https://prometheus.io/docs/prometheus/latest/querying/basics/#time-durations) 或浮点秒数。必须使用此非标准编码,以与开源 API 兼容。客户端可能仍会在连接级别实现超时,同时忽略此字段。

location

string

资源信息的位置。现在必须为“global”。

输出架构

表示任意 HTTP 正文的消息。它应仅用于无法表示为 JSON 的负载格式,例如原始二进制文件或 HTML 网页。

此消息可同时用于请求和响应中的流式传输和非流式传输 API 方法。

它可以用作顶级请求字段,如果想要将网址或 HTTP 模板中的参数提取到请求字段中,并且还希望访问原始 HTTP 正文,这会很方便。

示例:

message GetResourceRequest {
  // A unique request id.
  string request_id = 1;

  // The raw HTTP body is bound to this field.
  google.api.HttpBody http_body = 2;

}

service ResourceService {
  rpc GetResource(GetResourceRequest)
    returns (google.api.HttpBody);
  rpc UpdateResource(google.api.HttpBody)
    returns (google.protobuf.Empty);

}

流式传输方法示例:

service CaldavService {
  rpc GetCalendar(stream google.api.HttpBody)
    returns (stream google.api.HttpBody);
  rpc UpdateCalendar(stream google.api.HttpBody)
    returns (stream google.api.HttpBody);

}

使用此类型仅会更改请求和响应正文的处理方式,所有其他功能将继续保持不变。

HttpBody

JSON 表示法
{
  "contentType": string,
  "data": string,
  "extensions": [
    {
      "@type": string,
      field1: ...,
      ...
    }
  ]
}
字段
contentType

string

指定正文内容类型的 HTTP Content-Type 标头值。

data

string (bytes format)

作为原始二进制文件的 HTTP 请求/响应正文。

base64 编码的字符串。

extensions[]

object

应用专用响应元数据。必须在流式传输 API 的第一个响应中设置。

此对象可以包含任意类型的字段。附加字段 "@type" 包含用于标示相应类型的 URI。示例:{ "id": 1234, "@type": "types.example.com/standard/id" }。

不限

JSON 表示法
{
  "typeUrl": string,
  "value": string
}
字段
typeUrl

string

使用 URI 引用(由以斜杠结尾的前缀和完全限定的类型名称组成)标识序列化的 Protobuf 消息的类型。

示例:type.googleapis.com/google.protobuf.StringValue

此字符串必须包含至少一个 / 字符,并且最后一个 / 后的内容必须是规范形式的类型的完全限定名称,且不带前导句点。请勿在这些 URI 引用中写入架构,以免客户端尝试与它们联系。

前缀是任意的,Protobuf 实现应仅剥离最后一个 / 之前(包括最后一个 /)的所有内容,以标识类型。type.googleapis.com/ 是某些旧版实现所需的常见默认前缀。此前缀不表示类型的来源,并且包含该前缀的 URI 不应响应任何请求。

所有类型网址字符串都必须是合法的 URI 引用,并且(对于文本格式)引用内容必须仅包含字母数字字符、百分比编码的转义符以及以下集合中的字符(不包括外部反引号):/-.~_!$&()*+,;=。尽管我们允许百分比编码,但实现不应取消转义,以防止与现有解析器混淆。例如,type.googleapis.com%2FFoo 应被拒绝。

在 Any 的原始设计中,我们考虑了在这些类型网址中启动类型解析服务的可能性,但 Protobuf 从未实现过此类服务,并且认为与这些网址联系存在问题,并且可能存在安全问题。请勿尝试与类型网址联系。

value

string (bytes format)

包含 type_url 所描述类型的 Protobuf 序列化。

base64 编码的字符串。

工具注释

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

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

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

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