Lets an AI agent query real-time queue wait distributions and conditions to decide whether to run LLM jobs synchronously or via batch queues.
Also known as batchwatch/client
- Stars
- 0
- Tools
- 6
- Downloads, 30 days
- —
- Latest version
- 0.1.1
- Last commit
- Aug 31, 2026
- License
- —
What is batchwatch MCP?
batchwatch lets an AI agent query real-time queue wait distributions and conditions to decide whether to run LLM jobs synchronously or via batch queues. It exposes 6 tools, such as should_i_batch, estimate_batchtime, conditions.
Summary generated from the project's README
About batchwatch MCP server
Deciding whether to run LLM jobs synchronously or via batch queues is what batchwatch-mcp enables for developers using AI agents like Claude, Cursor, or Cline. Instead of guessing, an agent can query real-time queue wait distributions and current conditions to make informed routing decisions. The server acts as a faithful proxy that passes through raw JSON data from the batchwatch API, including metrics like confidence, basis, and freshness, without inventing numbers or fabricating ETAs.
Users connect the server to their MCP-compatible client via stdio. It requires a BATCHWATCH_TOKEN for live data, though it still provides public data with a 15-minute delay if no token is provided. The server includes specific tools such as should_i_batch to check if a queue honors a maximum wait time, estimate_batchtime to view wait distributions, and conditions to compare current states against recent norms. It relies on a BATCHWATCH_URL and a BATCHWATCH_TIMEOUT_MS setting to manage API communication.
What you can do with it
- 1Determine optimal job routingAsk an agent to decide if a specific model job should be sent to a batch queue or run synchronously.
- 2Estimate potential wait timesRequest a distribution of how long a specific job is likely to wait in the queue.
- 3Monitor queue healthCheck if current queue conditions are deviating from the recent norm.
- 4Verify provider availabilityIdentify which provider and model combinations currently have available data.
Written from the project's README. Every use case is checked against a quote from it.
How to install batchwatch MCP
Formats verified 10 Nov 2026Add to CursorAdd to GooseInstall batchwatch MCP in Claude Code
$ claude mcp add batchwatch-mcp -- npx -y batchwatch-mcpInstall batchwatch MCP in Cursor
~/.cursor/mcp.json
{
"mcpServers": {
"batchwatch-mcp": {
"command": "npx",
"args": [
"-y",
"batchwatch-mcp"
]
}
}
}Install batchwatch MCP in VS Code
.vscode/mcp.json
{
"servers": {
"batchwatch-mcp": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"batchwatch-mcp"
]
}
}
}Install batchwatch MCP in VS Code CLI
$ code --add-mcp '{"name":"batchwatch-mcp","type":"stdio","command":"npx","args":["-y","batchwatch-mcp"]}'Install batchwatch MCP in Claude Desktop
claude_desktop_config.json
{
"mcpServers": {
"batchwatch-mcp": {
"command": "npx",
"args": [
"-y",
"batchwatch-mcp"
]
}
}
}Install batchwatch MCP in Codex
$ codex mcp add batchwatch-mcp -- npx -y batchwatch-mcpInstall batchwatch MCP in Codex config.toml
~/.codex/config.toml
[mcp_servers.batchwatch-mcp] command = "npx" args = ["-y", "batchwatch-mcp"]
Install batchwatch MCP in Gemini CLI
$ gemini mcp add -s user batchwatch-mcp npx -- -y batchwatch-mcpInstall batchwatch MCP in Gemini settings.json
~/.gemini/settings.json
{
"mcpServers": {
"batchwatch-mcp": {
"command": "npx",
"args": [
"-y",
"batchwatch-mcp"
]
}
}
}batchwatch MCP tools 6
Detected from the READMEshould_i_batchestimate_batchtimeconditionsdistributioncoveragewait
| should_i_batch | — | |
| estimate_batchtime | — | |
| conditions | — | |
| distribution | — | |
| coverage | — | |
| wait | — |
Configuration
BATCHWATCH_LIVEBATCHWATCH_TOKEN
| Name | Description | |
|---|---|---|
| BATCHWATCH_LIVE | — | |
| BATCHWATCH_TOKEN | — |
Automated checks
Ran Nov 14, 2026Full report →Passed our automated checks. That is not a security audit: read the code and give the server the narrowest access it needs. How checks work · What to fix for more points
- Source repository linked and reachablebatchwatch/client is public and reachablegithub.com/batchwatch/client ↗Pass
- Package names this repository as its sourcebatchwatch-mcp names batchwatch/client as sourcenpmjs.com/package/batchwatch-mcp ↗Pass
- Build provenance (Sigstore attestation)No build attestation published for this releaseNot checked
- Open source license (OSI)No licenseFinding
- Commit or release in the last yearLast commit or release 2026-08-31github.com/batchwatch/client ↗Pass
- OpenSSF ScorecardNot checked
- Package name not close to a popular packageNo popular package one edit away from batchwatch-mcpPass
- No critical advisory in the package or its dependencies99 resolved dependencies checked; no critical advisoryosv.dev ↗Pass
- No hidden instructions to the model6 tool descriptions and the README read; no override phrases, credential paths or hidden charactersPass
- Destructive tools are labelledNo tool named like delete, drop or execPass
- Remote endpoint answers the MCP handshakeNot checked
README
View on GitHubbatchwatch MCP server
Let an AI agent ask batchwatch "should I batch this job?" instead of guessing.
When a developer asks Claude, Cursor, Cline or any MCP-speaking agent "should I send this to the batch queue or run it synchronously?", this server lets the agent call batchwatch and get the real queue evidence — the measured wait distribution, the current conditions, a graded confidence, and how fresh the data is.
It wraps batchwatch's existing read routes as MCP tools. It is a thin,
faithful proxy: it makes no decision and invents no numbers. Every answer
is the provider's own JSON, passed through verbatim, carrying the n,
confidence, why, basis and freshness the API already returns. If the API
is down or slow, the tool returns an error — never a fabricated figure.
Access & tiers — the same gate as the rest of batchwatch
Because it is a faithful proxy, the server runs on the same tiers as the
batchwatch API — there is no separate MCP plan and no MCP fast lane. Each
tool carries your BATCHWATCH_TOKEN and earns exactly the tier that key earns
anywhere else:
- No token → you read the public data, delayed 15 minutes. You still get every answer — the distribution, the conditions, the verdict — as fresh as the open API serves them.
- A token → the agent earns that key's tier and its freshness, volume and
livebehaviour. Live figures are what let an agent route real traffic on the answer, and they are bought here the same way they are bought at the API.
One access model, gated in one place — the batchwatch tier system (see the
Tiers, delay, quota and the free trial reference in the batchwatch API docs).
Tools
Each tool maps to a real route in src/index.js (there is deliberately no
tradeoff tool — /v1/tradeoff is named in the KRAVSPEC but not built yet, and
a tool for a route that does not answer would be exactly the fabricated
capability this project refuses to ship).
| Tool | Route | What it answers |
|---|---|---|
should_i_batch |
GET /v1/should-i-batch |
Given a model and your own max_wait, does the batch queue currently honour it? The verdict. |
estimate_batchtime |
GET /v1/estimate-batchtime |
How long is my job likely to wait? A distribution, never a single ETA. |
conditions |
GET /v1/conditions |
Current conditions vs the recent norm — "is it me or them?" |
distribution |
GET /v1/distribution |
The full measured wait distribution (the raw evidence). |
coverage |
GET /v1/coverage |
Which provider+model combos have data, and how answerable each is. |
wait |
GET /v1/wait |
The public "is the queue moving now?" reading (delayed without a key). |
batchwatch reports distributions and current conditions, not point ETAs. A personal history of 3-minute medians once produced a 480-minute job; "your job finishes at 14:32" is a lie the one time it matters. The tools' descriptions say so, so the calling model uses the answer correctly.
Install & run
cd mcp
npm install
node index.js # speaks MCP over stdio
Requires Node ≥ 18 (uses the built-in fetch).
Configuration (environment)
| Var | Default | Meaning |
|---|---|---|
BATCHWATCH_URL |
https://batchwatch.dev |
API base. |
BATCHWATCH_TOKEN |
(unset) | Optional API key. Without it the data is delayed, not absent — you still get answers, just older ones. |
BATCHWATCH_TIMEOUT_MS |
8000 |
Per-call timeout. On timeout the tool errors; it never guesses. |
Wiring into a client
Claude Desktop / Cursor / Cline mcpServers entry:
{
"mcpServers": {
"batchwatch": {
"command": "node",
"args": ["/absolute/path/to/batchwatch/mcp/index.js"],
"env": { "BATCHWATCH_TOKEN": "tk_your_key_optional" }
}
}
}
Tests
npm test # offline unit tests (mocked fetch) — deterministic
BATCHWATCH_LIVE=1 npm test # also runs the live smoke against BATCHWATCH_URL
The unit tests assert the load-bearing properties: omitted numeric fields are
never sent as 0; the provider JSON is passed through unchanged; only the real
routes are exposed (no tradeoff); and an API error yields an error, never a
number.
Publishing (registry reach — the point of #57)
The highest-leverage distribution channel for a 2026 dev tool is being the
answer an agent reaches for by default. Once this is published so agents can
install it, batchwatch wins the call instead of merely being mentioned. Targets:
the Anthropic MCP registry, Smithery, and
mcp.so. The package is publish-ready (bin: batchwatch-mcp,
zero build step); registry submission is tracked on Vikunja task #57.
Why this exists
batchwatch measures how long jobs actually wait in LLM providers' async batch queues. Batch is half price, but "done within 24 hours" cannot be planned around, so most callers pay full price out of habit. This server puts the queue evidence one tool-call away from the agent that is about to make that choice.
batchwatch MCP questions
How do I add batchwatch MCP to Claude Code?
Run claude mcp add batchwatch-mcp -- npx -y batchwatch-mcp in your terminal. Add --scope user to make it available in every project.
How do I add batchwatch MCP to Cursor?
Open ~/.cursor/mcp.json and add the server under mcpServers, using the Cursor config shown in the install section above.
What tools does batchwatch MCP provide?
It exposes 6 tools, including should_i_batch, estimate_batchtime, conditions, distribution, coverage.
Do I need an API key to use batchwatch?
No, you can use it without a token to read public data, though the data will be delayed by 15 minutes.
Does the server provide specific ETAs for job completion?
No, the server reports measured wait distributions and current conditions rather than single point ETAs to ensure accuracy.
What happens if the batchwatch API is unavailable?
The tool will return an error instead of providing a fabricated or guessed figure.