Skip to content
WhetherAPI & MCP
This weekwDecidedRecordrGuidesg
Use it elsewhereAbout
  • This week
  • Decide
  • Record
  • Guides

Whether

We read interest rates and credit markets and tell you when to pause or resume hiring, spending and fundraising. Updated every Monday, with an email the day a line is crossed.

  • Use it elsewhere
  • API & MCP
  • About
  • Contact
  • Search
  • RSS
  • Calendar
This week
  • Why it changed
  • How much to trust this week
Decide
  • Runway planner
  • Scenarios
  • SaaS multiples
Record
  • Calibration
  • Compare periods
  • Product writing
Guides
  • Answers by decision area
  • More tools
Your decisionsPrivacyAcceptable UseTermsGitHubBuilt byKanav JainNextConsensus© 2026 Whether

API and agent tools

Read this week's guidance from an AI agent, a script, or a dashboard. Whether serves the guidance, the two scores behind it, and the pause and resume lines through a Model Context Protocol (MCP) server, REST endpoints, a CLI, and an embeddable widget. Whether is free, and the API needs no key.

Connect Claude, Cursor & AI Agents (MCP)

Streamable HTTP • No auth required

https://whether.work/api/mcp is a production-grade streamable-HTTP Model Context Protocol server. Connect Claude Desktop, Cursor, Copilot, or an autonomous agent, and the model can read this week's guidance, each score's distance from its line, and a scenario's result while it reasons.

Add to CursorAdd to VS Code

Claude Code:

claude mcp add --transport http whether https://whether.work/api/mcp

Claude or ChatGPT on the web: add a custom connector with the address above.

Claude Code, one line from any directory:
claude mcp add --transport http whether https://whether.work/api/mcp
Claude Desktop (claude_desktop_config.json) or Cursor Settings → MCP:
{
  "mcpServers": {
    "whether": {
      "url": "https://whether.work/api/mcp"
    }
  }
}

Start with get_state: one small answer with the conditions and the margin from their change lines, the data's freshness, each score against its lines with the moves behind it, and the guidance. Every tool only reads: get_state, get_brief, get_answer, get_standup_line, get_decision_rules, get_context, get_projection, get_comps, get_signals, get_recent_history, stress_test_plan, lint_commitment, lint_sprint_goal, audit_sprint_retro, get_analog_playbook, list_agent_skills. For local agents or CI pipelines, bun run mcp:whether starts the same tools over stdio.

A weather word works wherever a tool takes conditions: Freezing, Cloudy, Stormy or Sunny, in any case. A wrong argument is refused with the values that would have worked.

An agent that reads URLs can start at /llms.txt: it lists every answer page against the question it answers and states how current the reading is.

MCP tools over plain HTTP

Every MCP tool also answers a plain GET, for agents without an MCP client.

GET /api/mcp?tool=get_actions

Discovery. Lists every available tool with its parameters.

Try it →
GET /api/mcp?tool=get_state

The compact state to decide from: the answer /api/agent?view=state gives.

GET /api/mcp?tool=get_brief

A summary: current conditions, action, margin (the confidence field), record date. Optional weekly, monthly, quarterly or yearly view. The MCP tool of the same name returns the full brief.

GET /api/mcp?tool=get_context&regime=DEFENSIVE

How long these conditions have held, how long they have lasted on average, and what usually comes next. With no conditions given it uses today's.

GET /api/mcp?tool=get_projection&regime=DEFENSIVE&tightness=74&riskAppetite=32

Weeks until a score crosses its change line at a pace you give, or, with no arguments, at today's scores and pace. Scenario modeling for agents.

GET /api/mcp?tool=get_comps

Median SaaS EV/Revenue multiple across 14 public companies.

GET /api/mcp?tool=get_signals

Coverage map of which months have signal history available.

The rest (the rules behind the guidance, one signal's trailing history, plan checks) take the same form; get_actions lists each with its arguments and a call that works.

For developers

GET /.well-known/whether-agent.json

Discovery manifest. Where an agent starts, the agent endpoints and MCP tools, the supported cadences, and the revisable-delegation conformance level with the third-party verifier that can check it. Start here if you are wiring up an agent.

Try it →
GET /api/posture/current

Stable JSON endpoint for the current guidance. Returns the conditions, funding pressure, direction, margin (confidence), week, summary, url, and version. Type contract at lib/types.ts.

Try it →
GET /api/agent?view=state

The state to decide from, about a tenth the size of the full brief: the conditions and the margin from their change lines, the data's freshness (automation.ready), each score against its pause, resume and change lines with the moves behind it, and the guidance. Weekly only. Check automation.ready before acting without a person looking.

Try it →
GET /api/agent?cadence=weekly

The full structured brief, with the block an agent hands on. Supports weekly, monthly, quarterly, yearly.

Try it →
GET /api/agent?week=2026-w41

One published week, unchanged since it went out, with its permalink. A week not on the record answers 404 and lists the weeks that are.

Try it →
GET /api/agent?period=2024-q1

A past quarter or year from the archive (2024-q1, 2023), with its permalink. A period not in the archive answers 404 and lists the ones that are.

Try it →
GET /api/agent?format=jev

This week's guidance as a ready-to-send request for TypeSafe's Jev decision model (typesafe/jev on Cloudflare Workers AI). Put a short description of your plan in request.state.plan and send the request yourself. Jev answers whether the plan goes against the guidance, which decision it touches, how hard it is to undo, and whether it is safer after conditions change. Whether never sees the plan. Check automationReady before you act on an answer: it is false when this week's reading is not live or not current.

Try it →
GET /api/decision

This week's guidance in one JSON object: the action, each area's action with its pause and resume lines, the decisions to revisit, and the lines that would change the guidance.

Try it →
GET /api/scores

The two headline numbers on their own: funding pressure, risk appetite, both deltas, the distance to the line where conditions change, and the score that would cross first.

Try it →
GET /api/cadence

Weekly and monthly summaries side by side, with an alignment status naming any constraints where the two cadences disagree.

Try it →
GET /api/comps

SaaS valuation multiples, with the source that answered. Returns 503 when no market data source answers, rather than an empty basket.

Try it →
GET /api/regime-alerts

Paginated history of alerts sent when conditions changed. Read access is open; only the Monday run writes.

Try it →
GET /api/integrations/weekly-mandate?target=slack|notion|linear

This week's guidance shaped for one tool: Slack blocks (the default), a Notion page, or a Linear issue. The Slack channel and the Notion database it names are placeholders; set your own before you send it.

Try it →
GET /api/decision-memory?format=records|csv

Past guidance in NDJSON, shaped by the Revisable Delegation record schema — one belief record per week of published guidance. format=csv returns the same entries as a spreadsheet. Scoped to the caller: it reads your own decision memory, so it needs an x-whether-client-id header and answers 401 without one. No "Try it" link for that reason.

Artifacts to paste and embed

GET /api/brief/slack

The week's guidance preformatted for Slack — action, pause line, resume line. Post it to a channel without reformatting.

Try it →
GET /api/image/brief?layout=landscape|square|portrait&theme=light

The brief as a PNG card for decks and threads, 1200×800 by default. layout draws it landscape (1200×675), square (1080×1080) or portrait (1080×1350), and theme=light draws it on a light ground. month=3&year=2024 draws that month-end's reading, and stage (seed, series-a, series-b or bootstrapped) calibrates the action to a company stage. ticker and sector add a label and leave the reading unchanged.

View image →
GET /api/image/brief-screenshot?date=YYYY-MM-DD|latest

The screenshot of the homepage's guidance taken each Monday, as a PNG. date is a reading's date, and latest, the default, is the newest. Each is kept about two months; a date with none stored answers 404.

GET /api/badge

This week's conditions as an SVG badge for a README, a data room or an investor page, in the conditions' color. It says so when the reading is a saved copy.

View badge →
GET /api/image/slide?stage=seed

The guidance as a widescreen meeting slide — hand-written SVG, so it stays sharp at projector size and the labels are still editable text in Figma or Keynote. Accepts seed, series-a, series-b, or growth.

View slide →
GET /api/export/board-slide?format=pptx|pdf&stage=seed&week=2026-w41

The same slide as a file: a one-slide native PPTX with every box editable, or a one-page widescreen PDF for a pre-read. Served as an attachment. Takes the same stage values as the SVG. With `week`, the slide is the frozen brief as published — no stage, and a brief from before scores were stored prints no scores.

Download PPTX →
GET /api/embed?format=html|text|json|page&mode=call-strip

The brief as a snippet a newsletter build step can insert at send time: ready-to-paste HTML (the default), plain text, JSON, or page, a whole document for an iframe. mode=call-strip shortens it to one line. stage and runway (a band: critical, tight, balanced or abundant; or a number of months) calibrate the guidance to one company, and ticker names it.

Try it →
GET /brief.md

The current brief in Markdown format. Instant, structured, cacheable.

View brief.md →
GET /llms.txt

Agent discovery document. Linked from <link rel="llm"> in the page head.

View llms.txt →
GET /llms-full.txt

The answer pages, guides and terms in one Markdown file, for a model that reads the site's text in one fetch.

View llms-full.txt →
GET /feed.xml

RSS feed for the weekly brief. Subscribe in any RSS reader.

View feed.xml →
GET /calendar.ics

The same weeks as a calendar to subscribe to: each Monday of the last six months is an all-day event with that week's conditions and guidance. Subscribe by URL in any calendar app.

View calendar.ics →

Embeddable widget

Drop the current guidance into an internal dashboard or wiki. It updates itself each week. Add data-whether-ticker or data-whether-stage to tailor it to one company.

<div data-whether-embed="brief"></div>
<script async src="https://whether.work/embed.js"></script>
Configure it with a live preview →

Command line

The CLI's commands read public endpoints, so a script can make the same requests without it:

curl https://whether.work/api/cli/status
GET /api/cli/status?asOf=2026-03&view=expanded

What whether status reads. asOf reads a past month; view=expanded adds what would change the guidance and the signals that moved.

Try it →
GET /api/cli/history?asOf=2026-03&weeks=26

One row per month-end, newest first, going back weeks weeks (at most 52, the default). Each row carries that month-end's own margin and trend.

Try it →
GET /api/cli/scenario?tightness=74&risk-appetite=32

What whether scenario reads: the conditions the scores you give would read as, against this week's. Either score may be left out.

Try it →
GET /api/cli/changes | call | regime | diagnostics

What whether changes, call, regime and diagnostics print, in JSON. Each takes asOf.

The whether CLI ships with the Whether source, and --api-base-url https://whether.work makes it read this site rather than a local server.

whether status

This week's guidance and the numbers behind it. Add --as-of 2026-03 to read any past month.

whether state --json

The state an agent decides from, in JSON: the answer /api/agent?view=state gives.

whether brief slack | exec | board | investor

The same week rewritten for a specific audience.

whether export pdf --output brief.pdf

Export the brief to json, csv, markdown, pdf, or a full briefing pack.

whether watch --interval 60 --changes-only

Poll for a change in the guidance and print only what changed.

whether scenario --tightness 74 --risk-appetite 32

Model a hypothetical and see which guidance it produces.

whether explain flip

What would have to move, and by how much, to change this week's guidance.

Also available: diagnostics, history compare, company, share, doctor, and shell completions.

All endpoints listed here are free and need no key or account. Data is provided for informational purposes.