get_sources、open_news_dashboard、analyze_news_headlines。
curl 示例假设已执行 export WM_KEY="wm_…";使用 OAuth 时,请将 -H "X-WorldMonitor-Key: $WM_KEY" 替换为 -H "Authorization: Bearer $TOKEN"。
get_mcp_allowance
读取当前已验证账户的现有额度快照。客户端不支持 worldmonitor://account/mcp-allowance 资源读取时,请调用此工具。
工具专用参数: 无。只接受通用可选的 jmespath 投影,在分配前拒绝账户选择器、summary 及 panel_request。
响应: { access, used, limit, remaining, resetsAt, requestWindows, sharedWithRestApi }。免费账户还获得请求窗口的使用量、上限、剩余数、空闲间隔、活动状态和到期时间。无限额度的 limit 与 remaining 为 null。计数器不可读取或格式错误时返回错误,而不是成功的零使用量快照。文本和 structuredContent 沿用普通工具的投影协议。
- 访问:
free-account。要求已验证、绑定用户的 OAuth 或wm_…凭据,并保留现有权益检查。匿名和运营方凭据无法读取账户快照。 - 配额: 不预留每日额度、免费账户调用或窗口、面板分配或内部读取次数。每日额度耗尽后仍可读取;两种凭据共享账户每分钟 192 次的协议限流。
- API 共享:
sharedWithRestApi表示计数器是否包含 REST 请求。影子模式的 API 计数器仍使用已售 API 上限。账户总数不能识别具体调用者。 - API 端点: 无。工具与账户资源共用一个强制执行计数器读取器。响应为
no-store。
start_upgrade
为已登录账户创建绑定该账户的付费套餐结账链接。当拒绝响应的 error.data 带有 checkoutTool: "start_upgrade" 时调用,并传入该拒绝中的 recommendedPlan。只有免费账户会收到 checkoutTool;付费调用方的拒绝只带 recommendedPlan,因为同一套餐系列内的升级通过账单门户完成。用户在浏览器中打开链接完成付款;此工具从不扣款,智能体也不接触付款信息。
不向 ChatGPT 提供:其应用规范不允许发起结账,因此 ChatGPT 的请求在 tools/list 和 describe_tool 中看不到此工具,调用会返回 Unknown tool。Codex 和其他客户端仍可使用。
响应:
{ checkoutUrl, plan, nextStep }。每次调用都会创建新的结账会话。此工具不接受 jmespath 投影(返回 -32602):投影运行前结账会话已经创建,投影可能丢掉唯一一份 checkoutUrl。
- 访问:
free-account。要求绑定用户的 OAuth 或wm_…凭据。匿名调用返回常规的-32001no-account拒绝;运营方密钥返回-32002。 - 配额: 不消耗每日额度,也不消耗免费账户调用次数,因此额度用尽后仍可调用。每分钟限流照常适用。
- 结账路径: 与定价页相同,因此账户结账限流以及已有订阅、待处理付款检查都适用。账户已持有同一系列的套餐时返回
-32002,error.data.reason为"already-subscribed";从 Pro 升级到 Pro Business 是用户在 worldmonitor.app/pro 确认的按比例原地升级,从 API Starter 升级到 API Business 则在账单门户中按比例变更。存在 15 分钟内的待处理付款时返回reason: "payment-in-progress"。触发结账限流(每个账户每 10 分钟 5 个会话,与定价页共用)时返回 HTTP 429 的-32029,并带Retry-After。 - 服务条款: 创建会话时会记录该账户接受服务条款,与定价页相同。服务条款将 MCP 请求视为接受。
- 付款之后: 付款 webhook 到达后,下一次
get_mcp_allowance调用即报告付费套餐的额度,无需重新授权。 - API 端点: 无。响应为
no-store。
describe_tool
按名称返回任何其他工具的完整定义 — 与其 tools/list 条目相同的 description、inputSchema(每个属性的描述)、outputSchema、annotations 和 _meta。自 v1.34.0 起,tools/list 在 1,024 字节的逐工具预算内完整返回每条描述,因此这是对单个工具的重读,而不再是获取完整文本的唯一途径(v1.5.0 至 v1.33.0 期间列表被截断为第一句,≤120 字节)。
响应形状: 与单个
tools/list 条目相同 — { name, description, inputSchema, outputSchema, annotations, _meta } — 含相同的 description 和相同的 inputSchema.properties(包括缓存工具注入的 summary 和每个工具的 jmespath)。
软错误(HTTP 200,在正常的 content[0].text 信封内返回 — 非 JSON-RPC 错误):
-
{ "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 能在额外一次调用中自我纠正。 - API 端点: 无 — 服务器本地查询,无上游调用。
- 类型: 元数据查询 — 亚毫秒级,无 Redis、无 LLM。
- 配额: 豁免 Pro 每日配额(50/天)。每分钟速率限制(60/分钟)仍然适用。
report_issue
为 WorldMonitor 维护者存储一份报告:缺陷、缺失的能力、错误或过期的数据,或安全问题。它是 POST /api/feedback/v1/submit-report 的 MCP 对应工具,使用相同的校验、脱敏和限额。每份报告都由人工阅读,不会公开,不会被自动处理,也不会回复。
响应:
{ reportId, status }。status 为 received,安全报告为 private,并附带 advisoryUrl 和 notice。10 分钟内重发相同报告会返回第一次的 reportId,不会重复存储。
- 访问:free。 无需凭据。通过权益检查的 Pro 或 API 账户使用自己的额度;其他调用方(包括免费账户和未通过检查的密钥)均以匿名身份报告。身份始终来自请求凭据,从不来自参数。
- 限额: 匿名调用方每个 IP 每小时 5 份,每个账户每天 30 份,另有全站上限。超过 24 KB 的参数在任何报告限额或存储调用之前即被拒绝。此工具不消耗每日额度。
- 脱敏: 凭据和电子邮件地址在存储前被替换。报告中不应包含密钥或个人数据。
- 安全报告:
security报告仅用于标记存在漏洞。详细信息请通过私密的安全公告表单提交。 - 错误:
-32602指出无效字段。-32029(HTTP 429,Retry-After: 3600)表示额度已用完。-32603(HTTP 503,Retry-After: 60)表示限流器或存储不可用,报告未被存储。-32002(HTTP 403)表示账户正在删除。被拒绝的安全报告在error.data中保留advisoryUrl。 - API 端点: 无。报告直接写入存储。
