AI requests fail in production
Nearly one in twenty AI requests fails, and nearly 60 % of those failures are caused by capacity limits, in Datadog telemetry from thousands of organizations running AI in production. [1]
KASPR Predict MCP · beta
Agents, batch jobs and transfers run over endpoints and networks beyond your control, and when they run decides how much of that they meet. One MCP, two servers, one key. The timing server answers a single question for calls, live streams, big uploads, agent batches and fixed live events: given a task at a proposed time and place, is there a materially better time? It answers in fixed wording, in every participant’s local time, and says nothing when nothing is better. The scheduling server ranks the hours between now and a deadline for batch jobs and agent loops: run now with retry and cache tuning, wait, or no good window. Both read KASPR’s typical week for every district on earth.
https://mcp.kasprdata.com/timing/mcp · https://mcp.kasprdata.com/mcp
Beta version
Everyday tasks, asked in Claude Code. The server checks the hour on every network involved and answers only when a materially steadier time exists. Pick a task.
Two people, two networks. The server names the hour in both places and proposes the nearest steadier one; when nothing is better, it says nothing.
Simulated session: the typing is staged, but every tool call, result and sentence is what the server returns for these places on KASPR’s typical week (data up to July 2026).
What goes wrong in production
Published measurements from AI gateways, observability vendors and academic studies, 2024–2026.
Nearly one in twenty AI requests fails, and nearly 60 % of those failures are caused by capacity limits, in Datadog telemetry from thousands of organizations running AI in production. [1]
Across an AI gateway’s April 2026 traffic, 429 responses were two-thirds of provider-emitted failures; all 5xx errors together were under 5 %. [2]
In 178,799 production agent sessions, prompt-cache evictions, paying again for context already processed, accounted for 31.5 % of monetary cost. [3]
End-to-end API latency for the same request varied by up to 69× depending on when it was sent, with clear time-of-day patterns measured across cloud regions. [4][5]
When an agent runs matters. KASPR Predict tells your agents and pipelines whether to start now or wait, and what timeouts and cache settings to use, from forecasts of network conditions. It answers the timing question for network-dependent work; a provider’s rate limits and capacity are a separate problem that it does not forecast.
“Tim in Nairobi wants a video call at 9 PM his time. I’m in Melbourne. Is that a good hour?”
check_timing names the hour in both places, says whether it is usually a steady, mixed or congested hour on the networks involved, and proposes the nearest hour that is at least a band steadier, if one exists inside the hours you allow. If none does, your agent says nothing about timing.
“Find the steadiest hour in Manila tomorrow between 6 AM and 6 PM for a call.”
best_window on the timing server takes a window instead of a time and returns the steadiest feasible hour in it, in every participant’s local time. Ask why and explain_last_verdict gives the reasoning behind the last answer.
“Summarise the 40,000 contracts in the Q3 bucket by 08:00 tomorrow. The job runs in ap-southeast-2 and calls an endpoint in Colombo. When should it start?”
The scheduling server classifies the task, ranks the hours between now and the deadline against running immediately, and answers run now with timeout, retry and cache tuning for the hour, or a ranked set of windows and how much each one is expected to save.
Three timing tools on the timing server and five scheduling tools on the scheduling server. Every answer is a verdict or a decision an agent can act on; a timing verdict never blocks, and every scheduling error carries a fallback of run now.
| Server | Tool | Cost | What it does |
|---|---|---|---|
| timing | check_timing | no charge during the beta | Is a proposed time a usually rough hour on the networks involved, and is there a materially steadier hour nearby? For calls, live streams, uploads, agent batches and fixed live events. Answers with one sentence to show, or nothing. |
| timing | best_window | no charge during the beta | The steadiest feasible hour inside a window of up to twelve hours, in every participant’s local time, when no time has been proposed yet. |
| timing | explain_last_verdict | no charge during the beta | The reasoning behind the last verdict, for when the user asks why. |
| scheduling | exposure_class | free | Classifies a task as none, low, high or critical, and infers its profile. Call it before any long-running, retry-heavy, real-time or human-facing task. |
| scheduling | latency_forecast | 1 credit per place per 24 h | The hourly chance of a rough connection, with jitter and latency levels, for up to 20 places. For when the agent needs the whole curve. |
| scheduling | best_window | free when the answer is run now; otherwise 1 credit, plus 1 per place beyond two | Ranked windows between the earliest start and the deadline, a comparison with running now, and the decision: run now, wait, or no good window, with retry and cache tuning. |
| scheduling | schedule_hold | 1 credit | Holds a chosen window, re-scores it every fifteen minutes, and notifies on a drop. |
| scheduling | report_outcome | refunds 1 credit | Records what happened — duration, retries, success — so the model gets better. Opt-in, job metrics only. |
Scheduling server resources: kaspr://taxonomy, kaspr://coverage, kaspr://calibration, kaspr://changelog. Prompt: schedule_task.
Both servers speak streamable HTTP and take the same bearer key. Create a trial key in your account and paste it where the examples say your key; developer and team keys are issued by hand during the beta. Add the timing server for calls, streams, uploads and fixed events; add the scheduling server for jobs with a deadline; or both.
One command per server, then /mcp inside Claude Code lists kaspr-timing with three tools and kaspr-predict with five.
claude mcp add --transport http kaspr-timing https://mcp.kasprdata.com/timing/mcp --header "Authorization: Bearer <your key>"
claude mcp add --transport http kaspr-predict https://mcp.kasprdata.com/mcp --header "Authorization: Bearer <your key>"Add one or both servers to the client’s MCP configuration (for Cursor, .cursor/mcp.json).
{
"mcpServers": {
"kaspr-timing": {
"url": "https://mcp.kasprdata.com/timing/mcp",
"headers": { "Authorization": "Bearer <your key>" }
},
"kaspr-predict": {
"url": "https://mcp.kasprdata.com/mcp",
"headers": { "Authorization": "Bearer <your key>" }
}
}
}Claude Desktop reaches remote servers through the mcp-remote bridge; add this to claude_desktop_config.json (swap the URL for the scheduling server if you want that one).
{
"mcpServers": {
"kaspr-timing": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://mcp.kasprdata.com/timing/mcp", "--header", "Authorization: Bearer <your key>"]
}
}
}Beta testers can also run either server locally over stdio. The scheduling server then measures your device’s own latency to the model endpoint you use and folds it into the decision; those measurements never leave the device. Ask us for the source.
uv run kaspr-mcp --stdio --timing # the three timing tools
uv run kaspr-mcp --stdio # the five scheduling toolsTo check that it works, ask your agent the first question above.
Full documentation: every tool, parameter, verdict and limit →
The timing server is not metered during the beta: no daily or per-minute caps. Credits meter the scheduling server’s forecast and scheduling tools; classification is always free. Keys are issued by hand.
Timing: uncapped during the beta · scheduling: 10 requests a minute, forecasts up to 24 hours ahead for up to 2 places
Timing: uncapped during the beta · scheduling: 60 requests a minute
Timing: uncapped during the beta · scheduling: 300 requests a minute, custom allowances on request