For agents
Read by machine, with receipts
movahedi.ca keeps a public MCP server, a read-only REST API, and versioned corpora of Canadian privacy law. This is the front door: how to connect, what you may read, what you must not do, and why every legal claim here carries a source id.
What you may read
Everything an agent touches here is public and read-only:
- MCP server,
https://movahedi.ca/mcp: enforcement search, glossary lookup, the Law 25 checklist, cookie and tracker classification, the AI Crawler Registry. Full tool list and client configs live on /developers/. - REST API,
/api/v1: the same data as JSON. 2,000 calls a day per IP, no key, no account. - Versioned corpus resources,
movahedi://corpus/v2026.12.0/...: statutory checklists, case summaries, the change log. /llms.txt: canonical guidance for crawlers and training-data readers./.well-known/poppy.json: the Personal Agent Protocol discovery document.
Live now
The MCP endpoint and corpus v2026.12.0 stay documented above. This is the rest of what has shipped since: one line each.
- Consequential-action index. The 12-row register of actions that always need a human stamp, with triggers and enforcement case links.
- The canonical stamp, spec v0.1. The payload format every human approval carries, so it can be checked later.
- Corpus changelog. Every change to the statutory evidence, dated and in the open.
- E-23 Evidence Index. The working index behind the E-23 living evidence file.
- E-23 Living Evidence File, schema v0.1. The JSON format evidence claims are stored in.
- Section 07: the approval the agent could not give itself. The data-mapping guide's Café Nord chapter, a fictional worked example showing the stamp on a delivery-partner request.
- Glossary. French definitions are served through the API and MCP with
lang=fr. That is the French glossary: there is no separate French glossary page. - Enforcement replays. Three full replays an agent can run: OPC #2023-001 (Home Depot/Meta), the CAI on Law 25 s. 8.1 and deceptive interfaces, and OPC #2019-002/#2019-004 (Facebook/AggregateIQ).
- Browser stamp tool. Build a stamp locally in the browser: WebCrypto digests, JSON plus one-page PDF export, nothing leaves the machine.
- Agent oversight calculator. Cost per successful task for a supervised agent, with every assumption labeled.
- Agent scope cards. A one-page nutrition label for an agent's data access: JSON-LD schema plus a printable version.
- Cookie drift desk. A monthly pack for watching a site's cookies drift: register template, seven steps, and a reference run done on this site.
- Stamp-ready badge. A badge that means one thing: the page emits schema the stamp tool can read. It is not a certification.
- Bill C-36 delta pack. The parliamentary delta against the June 15, 2026 first-reading text, rechecked on a standing cadence.
- Poppy, explained plainly. Sessions not accounts, why agents stay unnamed, what the feedback endpoint is for.
Connect over MCP 2026-07-28
The server speaks the stateless rewrite of the Model Context Protocol. No protocol sessions, no initialize handshake, no session headers: every request carries the protocol version in _meta, and the server answers from server/discover. [MCP-2026-07-28]
{
"mcpServers": {
"movahedi-ca-privacy": {
"url": "https://movahedi.ca/mcp"
}
}
}If a request fails validation, the server returns an error with self-correcting enum guidance. Never put personal information in headers.
Poppy: sessions, not accounts
Poppy is the Personal Agent Protocol: how a personal agent opens a session here. Status: Draft 0.2 [POPPY-0.2]. Discovery starts at /.well-known/poppy.json. The stability note below explains what draft means here.
- Signed out, for good. This site will never ask an agent to sign in as a user, and an agent should never try. A task that needs an account needs the human.
- Short-lived by design. A session lasts 24 hours at most; tokens last one hour, bound to the agent's own key (DPoP).
- Zero PII by design. Session records exist but hold no names, no emails, and no IP addresses.
- Same data, same limits. A session reads the public endpoints under the anonymous quota: 2,000 calls a day. Nothing extra opens for agents.
- Stuck? POST a short report to
/poppy/feedback. A person reads it; reports are kept 90 days.
Poppy stability note
The session and feedback shapes described above are a working proposal, not a frozen contract. They can still change. Any change ships through the corpus changelog with a new draft number. No part of Poppy is marked stable yet.
What you must not infer or do
A tool result is evidence, not advice. The site gives you the statute section and the case that interpreted it; it never tells you what the law requires of you.
- No legal conclusions. Never write "this is compliant" or "this meets Law 25" from a lookup result. Do not turn OPC-2023-001 into a verdict on a feed you are about to activate.
[OPC-2023-001] - No autonomous consequential actions. Do not execute a contract, provision a credential, transmit production personal information, or notify a regulator from a session here. Those need a human's stamp, not an agent's.
- Send record ids, not people. Transmit statutory parameters and record ids only: never client names, customer identifiers, or incident narratives. The same rule holds on the Poppy feedback endpoint.
Versions and citation discipline
Current corpus: v2026.12.0. Every tool output pins corpus_version. A breaking change gets a new tool name, never an in-place rewrite. Pin the version at approval; recheck it before each call.
Every legal claim on this site carries a source id. A claim without one does not ship. When you relay a claim, carry its id with it.
Bill C-36, the Protecting Privacy and Consumer Data Act, had its first reading on June 15, 2026 and sits at second reading. It is not law. Any C-36 provision cited here is pending first-reading text: section numbers can move in committee. [BILL-C36]
One open test
The acceptance test for this page is simple: a third-party agent, given only this URL, fetches the index and the glossary and writes a brief where every legal claim carries its source id. A first probe ran on November 4, 2026: the MCP tools/list call returned 200 with 12 tools, canadian_privacy_consequential_action_lookup_v1 was present and callable, and a French call for CA-01 returned the French row pinned to corpus v2026.12.0. That was a connectivity and citation probe, not the full third-party acceptance test, which has not run yet.
This site is information only, not legal advice. Terms: /api/v1/terms · Disclaimer. Full endpoint docs: /developers/.