Endpoint
- URL
- https://bayeto.ai/api/mcp
- Transport
- Streamable HTTP, JSON-RPC 2.0, stateless
- Auth
Authorization: Bearer bay_…with themcp:readscope, minted in your workspace settings
There are no sessions and no resumable stream: every request carries its own key. A key is scoped to one workspace, so it can never read another — the same boundary the web UI enforces, applied at the same layer rather than at each surface.
Tools
- get_workspace
- Identity and telemetry coverage of the workspace this API key belongs to.
- get_briefing
- Executive summary: run-rate, identified and actionable value, counts, the exclusions ledger (what left the fee basis and what it still contains that is never chargeable), and the ledger version every surface reconciles to.
- list_recommendations
- Paginated list of recommendations with their ledger state. Use the returned nextCursor to continue.
- get_recommendation
- One recommendation in full, with its deterministic decision block and decisionHash.
- get_implementation_packet
- The implementation packet for a recommendation. Carries packetReadiness; implementation steps are withheld unless readiness is 'executable'.
- get_receipt
- The signed receipt attesting that Bayeto issued this recommendation's implementation packet. Verify it offline against a pinned JWKS; its signature covers both decisionHash and packetHash, so verifying the receipt verifies those hashes transitively. Pass receiptId as well to ask whether a receipt you already hold is still current — offline verification proves the artifact, never its currency.
- list_excluded_moves
- Moves the engine examined and did NOT surface as recommendations — the two populations that never appear in list_recommendations. `ruledOutByObjective` were generated and priced, then refused by a constraint you declared; `examinedNotApplicable` were examined and did not apply. Their euro figures are theoretical and are counted in NO actionable, on-the-table, captured or fee-eligible total. An agent that reads only list_recommendations is reading a shortlist with an invisible exclusion.
- get_validation_plan
- What will be measured to decide whether this change worked, and the prediction it is graded against.
- get_validation_status
- Where this recommendation is in the measured loop: not_implemented, accepted (committed, not yet shipped), observing (with what it is still waiting on), validated, or regressed. Measured states are read from the implementation marks and their derived verdicts, never inferred from ledger lanes.
What is different over this transport
- The decision is reproducible. Recommendations are produced by a deterministic engine with no model in the decision path. The same telemetry, graph and objective yield the same recommendation, and
get_recommendationreturns the decision block and its hash so you can check that rather than trust it. - The packet states its own readiness.
get_implementation_packetcarries a readiness value, and implementation steps are withheld unless it is executable. An agent can therefore tell an advisory packet from one it may act on, instead of inferring it from prose. - The receipt verifies offline.
get_receiptreturns a signed attestation that Bayeto issued a given packet. It checks against our published key with no call back to us — so it still verifies if we are down, and it still verifies if you no longer trust us. - The claim is graded later.
get_validation_planstates what will be measured and the prediction it is graded against;get_validation_statusreports where the change actually landed, including regressed. A projection that is never scored is a marketing figure.
Getting a key
Create a workspace, connect telemetry by upload or by pointing your proxy at the ingest API, then mint an mcp:read key in workspace settings. Keys are stored hashed and can be revoked individually.