跳转到主要内容
本页属于 MCP 工具参考,该索引列出全部工具。连接、认证、套餐与错误见 MCP Server 概览。 在深入逐工具参考之前,两种机制使发现工具的成本低于从头到尾阅读本页。如果您从 REST 路由而非工具名称开始,请使用 API 覆盖表;逐工具的 API 端点 行表示确切的 _apiPaths 声明,而 none directly 表示该工具返回数据但不声明等价的 REST 路由。 MCP 覆盖是有意精选的。某些 OpenAPI 操作仅限 REST,因为它们会修改状态、传递 LLM 成本、在缓存未命中时获取付费/高基数上游,或需要手动缓存键映射。API 覆盖部分 列出了强制类别并链接了当前的跟进追踪。

describe_tool — 按需获取单个工具的定义

自 v1.34.0 起,tools/list 返回每个工具的完整 description(每条已注册描述都在 1,024 字节的逐工具预算内,由 CI 强制执行),并附带其 inputSchema 与 outputSchema(v1.6.0),使模型仅凭列表即可选择工具并编写 JMESPath 投影。describe_tool 返回同一工具的相同定义,用于在不重新列出整个目录的情况下重读单个条目:
响应 — 与该工具的 tools/list 条目完全相同:同样的 description 和同样的 inputSchema.properties 文本:
describe_tool 豁免 Pro 每日配额(每分钟速率限制仍然适用)。此豁免是有意为之 — 将元数据查询计入 50/天 的上限会阻碍探索。两种常见工作流:
  • 会话中途重读单个工具。 调用 describe_tool 把单个工具的定义重新放回上下文,而无需再次为整个 tools/list 目录付出代价。
  • 针对不熟悉的响应首次编写 JMESPath。 调用 describe_tool 读取 outputSchema(见下一节),无需为真正的 tools/call 消耗配额槽位。
describe_tool 在正常的 content[0].text 内返回两种软错误信封:
  • { "error": "missing_tool_name", "hint": "Pass tool_name as a non-empty string matching a tool from tools/list." } — tool_name 被省略、为空或非字符串。
  • { "error": "unknown_tool", "requested": "<the bad name>", "available": [...sorted list of all tool names...] } — tool_name 不匹配。available 数组让 LLM 能在额外一次调用中自我纠正。
describe_tool 的完整逐工具参考(参数、响应形状、配额策略)位于 Meta 部分的 describe_tool。

outputSchema — 无需示例调用的类型化解析

自 v1.6.0 起,每个工具的 tools/list 条目都声明了规范定义的 MCP 2025-06-18 Tool.outputSchema。该 schema 描述 result.structuredContent;其第一个 anyOf 分支是工具的文档化负载形状,也就是普通调用时 result.content[0].text 所序列化的文档(投影或 summary: true 会重塑文本,并在 structuredContent 中被包装;见下表) — 让客户端无需发起真正的 tools/call 即可编写投影、验证响应或生成类型。 Schemas 在每次 tools/list 时无条件输出,无论协商的 protocolVersion 如何。处于较早 2025-03-26 基线的客户端仍会收到它们,并且(根据规范)应忽略未知字段而不是报错。 structuredContent 与所发布 schema 的形状(v1.21.0)。 每次成功的 tools/call 都会把载荷返回两次:result.content[0].text 中的 JSON 文本,以及 result.structuredContent 中的对象。严格的 MCP 客户端要求如此:一旦工具发布了 outputSchema,官方 SDK 会拒绝不带 structuredContent 的结果(-32600),并用该 schema 校验收到的内容(-32602)。有四类响应不是工具的文档化形状,因此所发布的 schema 把它们一并列出:
文本与早期版本返回的内容逐字节一致,因此只读取 content[0].text 的客户端不会看到任何变化。要以编程方式读取工具的文档化形状,请取 outputSchema.anyOf[0]。 示例 — get_country_risk 的 outputSchema 文档化形状(即其 anyOf[0]):
缓存工具将其声明的 data 形状包装在标准的新鲜度信封中:
使用 schema 作为编译时提示的 TypeScript 类型化解析草图:
须知事项:
  • 每个 schema 的 additionalProperties 都隐式保留(= true),因此生产者侧的前向兼容新增不会突然导致验证失败。
  • 每个数组的 items.properties 列出已知字段,但不会枚举每个观察到的键 — schema 是 JMESPath 编写的提示界面,而非字节码级别的契约。
  • 文档化形状(anyOf[0])仅描述成功路径的负载。两种目录级软错误信封(_budget_exceeded、_jmespath_error)会完全替换负载;自 v1.21.0 起,它们与投影一样,在所发布的 anyOf 中各有自己的分支,因此严格的客户端会接受它们。两种信封请参见 MCP 错误目录。
通用参数:
  • 每个工具都接受 jmespath(string),一个在逐工具筛选和 summary 之后应用的可选服务端投影。
  • 每个缓存工具还接受 summary(boolean),它返回计数加 3 项样本,而非完整列表。
  • 下方的逐工具表仅列出注册表声明的工具特定参数;通用注入参数有意在此仅记录一次。