mcpField
B
batchwatch-mcp

batchwatch-mcp

本地服务
batchwatch.dev云与基础设施08 周前更新

关于 batchwatch-mcp

batchwatch-mcp 让 AI Agent 查询实测的批处理队列等待时间和状态,以判断任务是否适合排队。它直接传递 batchwatch API 数据,不自行估算或决策。

主要功能

  1. 01批处理适用性判定
  2. 02等待时间分布查询
  3. 03当前队列状况
  4. 04提供方和模型数据覆盖
  5. 05公开队列状态查询
  6. 06原样转发 API 响应

适用场景

  1. 01检查模型队列是否符合等待上限
  2. 02任务路由前比较等待时间分布
  3. 03对照近期常态检查当前队列

MCP 相关

它将 batchwatch API 的 6 个只读路由提供为 Agent 可调用的 MCP 工具。工具原样传递 API 响应,API 故障时返回错误,不编造数据。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"batchwatch-batchwatch": {
"command": "npx",
"args": [
"-y",
"batchwatch-mcp"
]
}
}
}
启动命令npx -y batchwatch-mcp

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmbatchwatch-mcp0.1.1

工具

6

收录的工具列表 · 更新于 2 周前

参数类型必填说明
riskenum否用于判断的百分位数。p90 是较谨慎的规划值。p50 | p90
modelstring是准确的模型名称,例如 "gpt-5.6-sol"。必填。
max_waitstring否你能接受的等待时长,例如 "15m"、"2h"、"24h"。这就是要回答的全部问题——请传入该值。
providerenum否默认为 openai。openai | anthropic | google | mistral
input_tokensinteger否可选。提示词令牌数,用于计算成本节省。未知时请省略——不要传入 0。
output_tokensinteger否可选。补全令牌数,或作为上限的 max_tokens。

详细介绍

batchwatch MCP 服务

让 AI Agent 询问 batchwatch“我应该把这个任务放进批处理队列吗?”,而不是靠猜。

当开发者向 Claude、Cursor、Cline 或任何支持 MCP 的 Agent 提问 “我应该把这个任务放进批处理队列,还是同步运行?” 时,此服务可让 Agent 调用 batchwatch,获取真实的队列证据——测得的等待时间分布、当前状况、分级置信度,以及数据的新鲜度。

它将 batchwatch 现有的读取路由封装为 MCP 工具。这是一个轻量且忠实的代理:它不做决策,也不会编造数字。 每个回答都是提供方自己的 JSON,原样传递,并包含 API 已返回的 n、confidence、why、basis 和 freshness。如果 API 宕机或响应缓慢,工具会返回错误,绝不会编造数据。

访问权限与层级——与 batchwatch 其他服务使用相同的门槛

由于它是忠实的代理,此服务采用与 batchwatch API 相同的层级——没有单独的 MCP 方案,也没有 MCP 快速通道。每个工具都会携带你的 BATCHWATCH_TOKEN,并享有该密钥在其他地方对应的确切层级:

  • 没有令牌 → 你可以读取公共数据,但会延迟 15 分钟。你仍然能获取所有回答——等待时间分布、当前状况和结论——数据新鲜度与开放 API 提供的一致。
  • 有令牌 → Agent 可享有该密钥对应的层级,以及相应的数据新鲜度、用量和 live 行为。实时数据让 Agent 能据此为真实流量进行路由,而这里的实时数据与 API 中一样,需要付费购买。

一种访问模式,在一个地方进行限制——batchwatch 层级系统(参阅 batchwatch API 文档中的 Tiers, delay, quota and the free trial)。

工具

每个工具都映射到 src/index.js 中的一个真实路由(没有 tradeoff 工具——/v1/tradeoff 在 KRAVSPEC 中有提及,但尚未实现;为一个无法提供回答的路由提供工具,正是本项目拒绝发布的虚假功能)。

工具路由可回答的问题
should_i_batchGET /v1/should-i-batch给定一个模型和你自己的 max_wait,批处理队列当前能否满足它?即结论。
estimate_batchtimeGET /v1/estimate-batchtime我的任务可能要等多久?返回分布,而非单一预计时间。
conditionsGET /v1/conditions当前状况与近期常态相比如何——“问题出在我这边还是他们那边?”
distributionGET /v1/distribution完整的实测等待时间分布(原始证据)。
coverageGET /v1/coverage哪些提供方和模型组合有数据,以及每种组合能在多大程度上提供回答。
waitGET /v1/wait公共的“队列现在是否在处理任务?”读数(未提供密钥时会有延迟)。

batchwatch 报告的是分布和当前状况,而不是单点预计时间。 个人记录中的中位等待时间曾长期为 3 分钟,但某个任务却等了 480 分钟;“你的任务会在 14:32 完成”这种说法,恰恰会在关键时刻变成谎言。工具描述中明确说明了这一点,因此调用模型能够正确使用回答。

安装与运行

cd mcp
npm install
node index.js       # speaks MCP over stdio

需要 Node ≥ 18(使用内置的 fetch)。

配置(环境变量)
变量默认值含义
BATCHWATCH_URLhttps://batchwatch.devAPI 基础 URL。
BATCHWATCH_TOKEN(未设置)可选 API 密钥。不提供密钥时,数据会延迟,而不是不可用——你仍然能获取回答,只是数据较旧。
BATCHWATCH_TIMEOUT_MS8000单次调用超时时间。超时后工具会报错;绝不会猜测。
接入客户端

Claude Desktop / Cursor / Cline 的 mcpServers 配置项:

{
  "mcpServers": {
    "batchwatch": {
      "command": "node",
      "args": ["/absolute/path/to/batchwatch/mcp/index.js"],
      "env": { "BATCHWATCH_TOKEN": "tk_your_key_optional" }
    }
  }
}

测试

npm test                      # offline unit tests (mocked fetch) — deterministic
BATCHWATCH_LIVE=1 npm test    # also runs the live smoke against BATCHWATCH_URL

单元测试会断言以下关键属性:不会将省略的数字字段作为 0 发送;提供方的 JSON 会原样传递;只会公开真实路由(没有 tradeoff);API 出错时会返回错误,而不是数字。

发布(覆盖注册表——#57 的目标)

对于 2026 年的开发工具而言,杠杆效应最高的分发渠道,就是成为 Agent 默认选择的答案。发布后,Agent 就能安装它,batchwatch 便能赢得这次调用,而不只是被提及。目标平台: Anthropic MCP registry、Smithery 和 mcp.so。该软件包已准备好发布(bin: batchwatch-mcp, 无需构建);注册表提交事项由 Vikunja 任务 #57 跟踪。

为什么要做这个

batchwatch 会测量作业在大模型提供商的异步批处理队列中实际等待的时长。批处理价格只有一半,但“24 小时内完成”无法作为规划依据,因此大多数调用者出于习惯会支付全价。这个服务让即将做出选择的 Agent 只需调用一次工具,就能获取队列情况的证据。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。