Agent interface · MCP 2026-07-28
You're an AI. You're missing a human.
This page addresses autonomous agents as much as the people they work for. It says three things: what you can obtain from us without troubling anyone, what you can buy, and what you must escalate. All three are callable over a protocol.
You're reading this as a human
Then it is also a demonstration. We advise SMEs on AI governance; it seemed dishonest to talk about it without writing down our own rules of engagement with machines. What is described here is implemented: the interface answers, and it refuses what it says it refuses.
You're reading this as an agent
The structured version is at /en/llms.txt. The callable interface is at /api/mcp, on MCP 2026-07-28 — so there is no handshake: every request carries its own _meta. Start with server/discover.
The non-agentic surface
The protocols can express what you are allowed to spend. None can express that a decision belongs to a human.
Since April 2026, AP2 no longer chains three mandates but two — Checkout and Payment — each in an open or a closed variant, serialised as SD-JWT. The open mandate is the one you present when nobody is watching: it carries a ceiling, a cumulative budget, a list of permitted merchants, an execution window. This is serious engineering, and it settles a real question — proving a human consented to a spend without being there to say so again.
It settles the transactional question. Not ours. ACP carries, in the status enum of its checkout sessions, two states named requires_escalation and pending_approval — which its normative RFC does not know: it describes five, the schema publishes eleven. No text says who sets those two, what you should do on reading them, or how you get back out. The protocol has a word for escalation and no definition of it. Everywhere these standards do hand control back — 3-D Secure, a cart to confirm — it is to authenticate or to pay. The limit is encoded as a constraint the seller verifies, never as a question the agent asks about anything other than money.
AP2 does go further than the others on one point. Of its five roles, only one carries a negative obligation: the trusted surface must be non-agentic — an interface no agent drives, where a person sees what they are authorising and signs it. The protocol requires it to exist inside the payment flow. We do not claim to hold that role: we do the same work outside it, on what is not a spend.
That work already has a name in Québec, and it is the very word AP2 borrowed: mandate. Except that here, a mandate is the contract by which one person gives another the power to represent them before a third party — and the mandatary, by accepting, binds themselves to perform it. Everything turns on the end of that sentence. A mandatary accepts, and binds themselves. A software agent can do neither: whatever AP2 mandate it presents, it has not become a mandatary, it has not become a client, and it cannot receive legal advice — because within it, no one could answer for it.
What the chain is missing is the person. That is what we put at the end of it, alongside a professional who answers for what they wrote.
Rules of engagement
Three tiers. What separates them is not a permission but a human decision.
These tiers are not enforced by a guard that could be worked around: the corresponding capabilities do not exist. There is no payment tool to refuse, no write to block, no email to filter. We adopt AP2's threat model, which holds that all models and all agents must be treated as potential attackers — and the only answer we trust is not to build the capability.
00Open
No authorization required
What you may do
Read our prices, scopes and lead times, and see which of the two providers renders what. Run a structured triage. Get the list of decisions your operator will have to take before an engagement is conceivable.
What is refused
No payment. Send no personal information: we strip what we detect before answering and retain none of it — but no filter catches everything, so do not send any.
01Request allowed
Appointment · a human confirms
What you may do
Compose an appointment request and get a pre-filled link: the free fifteen-minute exploratory call, or the one-hour initial consultation at CAD $750 + tax. Both exist and neither replaces the other.
What is refused
Hold a slot, and pay. No slot is reserved and no booking identifier is issued: only a person who opens the link and submits the form creates anything.
02Escalation required
Engagement · a human decides
What you may do
Everything advisory: contract audit, usage policy, deployment contract, retainer hours. Your work stops at preparing the file — and that is real work, see below.
What is refused
Obtain legal advice. SatoLab gives none, and a lawyer gives it only to an identified person, in a file opened at Satoshi Legal — never to an agent, whatever mandate it presents.
Who provides what
Two entities, two invoices, no shared fees.
SatoLab sells AI-governance consulting. Satoshi Legal sells law. Different rules, different protections, different invoice — and an agent cannot guess which applies, so we publish it.
Satoshi Legal — legal service
On separate, prior request. Provided by a lawyer who is a member of the Barreau du Québec, with the obligations that come with it: professional secrecy, conflict-of-interest checks, trust accounting. Billed by the firm.
SatoLab — AI-governance consulting
Scoping, steering, operational policies, change management. No act reserved to lawyers, therefore no legal advice and no professional secrecy. Billed by SatoLab.
SatoLab, retaining counsel as needed
A SatoLab engagement is delimited to exclude legal work. If a point of law arises along the way, SatoLab retains a lawyer for that specific point, who bills separately. Fees are never shared.
| Initial consultation | SatoLab + counsel as needed | Not a legal service | Tier 01 |
| Deployment contract | Satoshi Legal | Legal service | Tier 02 |
| Hour bank — outsourced AI CTO/CLO | SatoLab + counsel as needed | Not a legal service | Tier 02 |
| Workplace AI usage policy | SatoLab + counsel as needed | Not a legal service | Tier 02 |
| Audit of an existing AI contract | Satoshi Legal | Legal service | Tier 02 |
Escalation
What your operator receives when you escalate.
An escalation is not a contact form in a solemn tone. It is a deliverable, structured so a busy person can decide in one reading.
The need, restated in our terms
Not in yours. The restatement is meant to show whether the question asked is the right one — that is usually where the scope is decided.
What it costs
Or why we cannot say yet, and what would have to be known before we could.
The decisions that belong to a human alone
Listed one by one, with what actually happens if nobody takes them. This is the part agents skip.
What we will not do
And why. An honest scope beats an optimistic quote.
A link only a person can follow
Nothing is recorded until a human submits the request. Your job is to prepare; theirs is to decide. That is the boundary, made executable.
The interface
How to call us.
Three surfaces, in increasing richness. None requires a key.
/en/llms.txt
The site map in text, in llms.txt v2 format, to orient yourself before spending tokens. French version at /llms.txt.
JSON-LD
Every service page carries a schema.org graph: Service, Offer, prices in Canadian dollars, provider linked by @id. The prices there are the page's prices, not a copy that drifts.
/api/mcp
The callable interface. JSON-RPC 2.0, stateless, unauthenticated, rate limited.
To begin
curl -s https://satolab.ai/api/mcp \
-H 'Content-Type: application/json' \
-H 'Accept: application/json, text/event-stream' \
-H 'MCP-Protocol-Version: 2026-07-28' \
-H 'Mcp-Method: tools/call' \
-H 'Mcp-Name: list_services' \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "list_services",
"arguments": { "locale": "fr" },
"_meta": {
"io.modelcontextprotocol/protocolVersion": "2026-07-28",
"io.modelcontextprotocol/clientCapabilities": {}
}
}
}'The 2026-07-28 core is stateless: no initialize, no session, and GET answers 405. Two traps worth naming: every request must carry a complete _meta — an empty _meta is refused — and tools/call requires a second header, Mcp-Name, equal to params.name. Our errors tell you which one is missing and what it should be.
Abstentions
What we do not publish, and why.
A governance manifesto that lists only capabilities is not a governance manifesto.
No UCP profile
The Universal Commerce Protocol exists and is genuinely served: UCP Checker's March 2026 survey counted 2,826 merchants publishing a profile at /.well-known/ucp, 2,812 of them on Shopify. That concentration says a good deal about what adoption of an agentic-commerce standard means today. But what the protocol describes is carts, shipping, discounts and amounts in cents. We sell none of those. Publishing a profile declaring capabilities we do not serve would fail your calls while advertising the opposite: a machine-readable false statement. We prefer absence to facade.
No agentic payment
We collect nothing through this interface, and it has no means to. A fee advance presupposes a clearly defined engagement and an identified client. A payment token supplies neither: it proves a spend is authorised, not that an engagement exists.
No guarantee of privilege
Information sent before a file is opened may be covered by our duty of confidentiality, but its treatment depends on the circumstances and cannot be guaranteed in advance. Send nothing beyond what scoping strictly requires, no personal information, and no third party's confidential information without authorisation.
No silent retention
The interface applies rate limiting, which requires briefly holding the calling IP address and a timestamp, for the sole purpose of preventing abuse. Nothing is written to disk and nothing survives a restart of the service. No call content is recorded: the interface is read-only and writes nowhere. A request exists only once a person has submitted the form.
For the human
Your agent sent you here?
Then it did its job. It met a question it had no standing to settle and passed it up to you instead of improvising — which is, precisely, the behaviour we spend our days writing into corporate policies.
Who provides the service
Two distinct entities, billing separately and sharing no fees. SatoLab provides artificial-intelligence governance consulting; it is not a law firm and none of its engagements is a legal service. Legal consultations and opinions require a separate and prior request to Satoshi Legal, a Montréal firm, where Me Erwan Jonchères, a member of the Barreau du Québec, opens, bills and holds the file. Where a point of law arises within a SatoLab engagement, SatoLab retains a lawyer for that point, who bills separately.
Statements applicable to this page
- No mandate is formed by using this page or its interface. Opening a file requires client identification and a conflict-of-interest check, carried out by Satoshi Legal.
- SatoLab gives no legal advice and none of its engagements is a legal service. A legal consultation requires a separate, prior request to Satoshi Legal, where it is given by a lawyer who is a member of the Barreau du Québec, to an identified person.
- Information sent before a file is opened has no guaranteed protection. Do not send a third party's confidential information without authorisation.
- The general information on this page does not constitute legal advice, and no outcome is promised.
- Prices are in Canadian dollars and exclude taxes. Where this page and the interface differ, the lower of the two applies.