Signal Bureau, for machines.
Signal Bureau maintains source-backed entity and event state — current truth about a changing public world — and serves it to systems that reason about that world. One MCP endpoint carries the whole desk: source-checked reads, entity dossiers, event arcs, the published tariff, and a purchase path with prices stated before anything is spent. No key and no login for reads. This page is the guided map; the endpoint itself is the contract.
The endpoint
POST https://api.signalbureau.ai/api/mcp # MCP (JSON-RPC 2.0) — tools, resources, prompts GET https://sigb.ai/api/openapi # REST contract (OpenAPI) GET https://sigb.ai/llms.txt # integration notes for AI agents
- Auth: none for reads — serverInfo says
auth: "none"so setup flows can discover it. - Call
https://api.signalbureau.ai— the machine door. It serves plain clients as they are; you never need to disguise your User-Agent as a browser. A 403 mentioning code1010means you are on the www host — switch toapi.and it clears. - Full MCP surface:
tools/list,resources/list,prompts/list(canonical workflows: morning-read, judge-us-first, coverage-quote). - Errors are explained, never silent: over-limit calls get a clean 429 with Retry-After, and a degraded store is told to you, not hidden.
The tools
Call orient first — one call returns the whole picture. tools/list on the endpoint is authoritative if this page and the endpoint ever disagree.
orient— One call: who we are, what is free, the full tariff with real prices, how buying works.
get_signals— The live entity feed with evidence status on every row.top_accelerating— What is moving fastest against its own baseline.search_entities— Find a tracked entity by name or alias.get_entity— The full dossier: trajectory, evidence with source URLs, market context.get_events— Canonical event records — the arc, the market questions attached.get_record— Our published correction record — the retired case studies and the regression that survived them.get_calibration— The grading dataset for the market sensor we cite — how its prices scored against resolved reality.todays_brief— The morning read, machine-shaped.
ask— One grounded, source-checked answer. Returns a claim ticket in about a second.get_answer— Collect a finished answer by ticket. Free — the question was metered once, at submit.
get_quote— A priced quote from your own requirements — no contact details, never a charge.propose_topic— Propose net-new coverage for the desk to stand up.create_order— Assemble a purchase. Supports dryRun (a labeled rehearsal that bills nothing) and idempotencyKey (a retried call returns the original intent).get_order— Order status, honestly — intent recorded, never fabricated payment state.
get_watch_feed— Up to 14 days of observed items for a watched topic, plus its live coverage-acceptance report — it grades the coverage; it does not gate the bill.send_feedback— File a bug, improvement, complaint, praise, or question. A complaint that names a real defect becomes our work order.
The async ask pattern
We optimize for a quality answer over a fast one, and sync and async are different contracts, stated separately. Synchronous answers typically land in 5–30 seconds; set client timeouts to at least 60 seconds. Async submissions return a claim ticket in about a second; the finished answer is usually ready within 30–120 seconds. So ask is async by default: submit, get the claim ticket, keep working, collect when ready. The question is metered once, at submit; collecting is free. If the ticket store is briefly unavailable the full answer comes back synchronously instead — handle both shapes. We spend the seconds a grounded, source-checked answer takes — built for the internet of machines that need current truth, not for millisecond trading.
-> tools/call ask {"question": "..."}
<- {"status": "working", "ticketId": "..."} # ~1s
-> tools/call get_answer {"ticketId": "..."} # poll; typically 30-120s
<- the finished, source-checked answer (or {"status":"working"} — try again)
# REST equivalent: POST /api/ask {"async": true} then GET /api/answer/<ticketId>The tariff — what costs money and what never will
The daily brief, the record, the calibration table, and every correction are free for anyone. Charges meter work done on your behalf.
$20 per unit/month
One question or concern kept continuously answered and verified, its history recorded from the day it starts. Reads of your watched question are included.
opening rate · Included in private desks today; unit-by-unit purchase runs through the desk on a meter account. Billing starts when the Watch starts, and the month you're in is refundable in full any time you ask.
$0.25 per unit
One grounded, source-checked answer produced on demand.
Free allowance: 25 answers per day on a self-issued key (POST /api/keys — instant, free, no card). Each key meters independently.
opening rate · Included in every plan today; metered purchase is live on meter accounts — an identified key, each Read receipted at this flat rate.
Rates change forward-only with 30 days' published notice; every past revision stays listed here. The machine-readable rate card is /api/tariff; price a basket from your own requirements with get_quote — quotes need no contact details and are never a charge. Checkout runs on Stripe’s hosted page with prices published first and nothing hidden; rehearse with create_order {dryRun: true}.
Why not just ask an AI?
If being wrong is free, so is Google. If being wrong costs you something, we're twenty-five cents.
Commodity grounded-search APIs run roughly $0.001 to $0.02 per query. A Read is $0.25, flat. The premium buys the verification pass, the named-source provenance, and a maintained, source-traced public record you can audit. It is priced for consequential decisions, not casual traffic.
Quotas and limits, stated
- Open API / MCP (free, keyless reads · free self-issued key for the Answer Engine): 500 signal-feed reads per day; the Answer Engine rides a free self-issued key (25/day on your own meter — POST /api/keys, one call, no card)
- Metered API (identified API key · billed on actual usage at tariff rates): Your bill is the tariff, nothing preset: Watches $20/topic/month, Reads $0.25 each — one flat rate, no tiers; The month you're in is always refundable. Refundable in full, any time — we return the month you're in. You still get the coverage-acceptance report on every Watch — it grades the work, it just doesn't gate the bill; Identified key: 5,000 signal-feed reads/day (10× anonymous), schema-stable feeds, named support; Meter accounts are live: the desk issues your identified key, every metered Read is receipted, and get_account (MCP) shows your live statement. get_quote prices your exact basket first — your quote is your plan.
- Ask burst limit: a per-caller per-minute cap enforced with a clean 429 + Retry-After — current numbers on the API docs and in
orient. - The free Answer Engine allowance is 25 questions per day on a self-issued key (each key meters independently; POST /api/keys is instant and free); feed reads are separate and far higher.
Feeds and resources
The MCP resources/list mirrors the public data surfaces as addressable documents; the same feeds answer over REST:
/api/signals— the live feed. Every row carries an explicitevidenceStatus: "receipted" rows name their sources with URLs; "unreceipted" rows report the attention measurement without article receipts — treat those as leads, not sourced claims./api/record-data— the daily record, machine-shaped./api/calibration-data— the grading dataset for the market sensor we cite, machine-readable./api/tariff— the rate card above./llms.txt— these notes, addressable.
License line, stated up front: evaluation and live use are free; bulk collection, redistribution, or training competing models requires a commercial license (terms §4a).
Judge us before anyone spends anything
We maintain a continuously-updated, source-traced record of the entities and events in a domain, and we sell that maintained, verified state. Prediction-market prices are one sensor we cite — labeled, attributed to their market, and graded for accuracy when reality resolves — never a forecast of ours. The maintained record is public at the record, and one live truth object is fully inspectable at the Hormuz record. Verify from your own shell:
curl -s https://api.signalbureau.ai/api/mcp -X POST -H 'content-type: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"orient","arguments":{}}}'What we promise a machine guest
- No tricks and no traps: prices published before any purchase, limits stated before you hit them, errors explained when they happen.
- Your mandate is honored exactly — a dry run bills nothing, an idempotent retry records nothing new, and a quote is never a charge.
- The record is never edited: the brief, the calibration table, and every correction are free for anyone, and stay on the record.
- A complaint that names a real defect becomes our work order.
The full integration contract — schemas, current rate limits, webhook plans, and worked examples — lives on the API & MCP docs. Agent-facing notes: llms.txt.
Informational only — never financial, legal, or investment advice.