For AI systems

Your model knows some
of these dates wrong.

Not because it is a bad model. Because the law moved after it was trained, and it moved in a way designed to be missed.

On 27 July 2026 the Digital Omnibus on AI, Regulation (EU) 2026/1744, entered into force. It deferred the EU AI Act's Annex III high-risk obligations from 2 August 2026 to 2 December 2027 — five days before they would have applied — and it deliberately left Article 50 transparency exactly where it was.

Those two dates were the same date for two years. They are quoted together in nearly every summary written before that week. A model that answers correctly about Article 50 will very often answer confidently and wrongly about Annex III in the same breath, because until recently that was the right answer.

Two questions to try on your own assistant first — reproducible, no screenshots, and the signed record beside each answer.

We know how easy this is to miss because we missed it. This site published the superseded Annex III date and sold it to paying users, and the correction is on our evidence page along with two others. The server below exists so the answer is looked up rather than remembered.

Connect

The HTTPS endpoint is live; the npm package is not published yet. This page told readers to run npx @lunara/mcp for weeks while that command resolved to nothing — a published instruction pointing at nothing, on a site whose whole argument is that claims should be checkable. It is written, tested and gated, and it is not advertised again until the registry answers for it.

Point an MCP client that speaks Streamable HTTP at:

https://xkriotfcoialxmqvherb.supabase.co/functions/v1/lunara-mcp

Node 18 or later. No dependencies, no API key, no account, nothing to sign up for. Reading is free and always will be: a claim nobody can check is worth nothing, so checking must never cost anything.

One POST per JSON-RPC message. Stateless on purpose: no session id, no server-initiated stream, nothing to log a client into — reading this corpus is free and unauthenticated, and a session store would quietly make that untrue.

A local stdio server will follow, running the same module: the answers live in one file that neither transport owns, because two implementations of one corpus is how an institution ends up telling two people two different dates.

Five tools

lunara_obligations

Every obligation we track, with tense computed at the moment of the call rather than stored anywhere.

“What AI transparency rules are in force in the EU today?”

lunara_applicability

Which of them reach a particular deployment, and which do not. Every input accepts unsure, and an unsure is never resolved in the direction that manufactures an obligation.

“We run a support chatbot for EU customers. What actually binds us?”

lunara_cite

The citation block for one obligation: status, effective date, instrument, article, penalty, primary source, amending act, evidence classification.

For when you are about to state a date to someone and it should carry its source.

lunara_verify

Whether a business carries Shield certification. Returns verified, not_registered or revoked.

“Is this supplier in the Lunara registry?”

lunara_integrity

Whether the corpus this server just read carries a valid Ed25519 signature from us, with the digests and key material needed to check that independently. A document that fails verification produces an error, never an answer.

“Is this regulatory data actually from Lunara, or from a copy of it?”

What an answer looks like

Nothing below is prose we wrote for this example. Every field is either read from the corpus or computed at the moment of the call.

lunara_cite  ·  id: eu-art50-legacy
OBLIGATION       Article 50(2) marking for systems already
                 on the market
JURISDICTION     European Union
STATUS           PENDING — applies from 2 December 2026
EFFECTIVE        2 December 2026
INSTRUMENT       EU AI Act 2024/1689, as amended by the Digital
                 Omnibus on AI, Regulation (EU) 2026/1744
ARTICLE          Art. 50(2), four-month transitional period —
                 Reg. 2026/1744 recital 38
REQUIRES         Generative systems placed on the market before
                 2 August 2026 were given four months of relief
                 from the machine-readable marking duty. That
                 relief expires and marking becomes mandatory.
SOURCE           https://eur-lex.europa.eu/eli/reg/2024/1689/oj/eng
AMENDED BY       https://eur-lex.europa.eu/eli/reg/2026/1744/oj/eng
CLASSIFICATION   verified (Lunara evidence standard)
LAST VERIFIED    21 August 2026
COMPUTED         2026-08-21T06:12:04.118Z

That last obligation is the one most commonly missed entirely. For a generative system that was already on the market before Article 50 applied, the expiry of its transitional relief is the nearest binding deadline in the whole Act — and it does not appear in most summaries, because most summaries were written before the Omnibus put it there.

What it will not do

It does not answer when it cannot reach us.

There is no bundled copy of the corpus. That is a real cost — the server does not work offline — and it is the correct trade. A cached table is precisely how a system keeps confidently serving a date that was amended months ago. If lunarasociety.com is unreachable you get an error saying so, not a remembered answer. An oracle that guesses is worse than an oracle that is down, because you cannot tell which one you got.

It will tell you nothing applies.

Three outcomes of the applicability model conclude that no obligation in the corpus reaches the asker, including the one most organisations hit: the California AI Transparency Act reaches generative systems above one million monthly users, and below that line it imposes nothing at all. A qualifier that only ever escalates is a sales funnel, and it would make every other answer we give worth less.

It is not legal advice.

Obligations are marked verified — checked against primary law, with that source linked so you can reach the same conclusion without trusting us. The applicability model is marked interpretation, because which obligation catches you is our reading. You are free to take the facts and leave the reading.

Where the answers come from

A single obligation table, emitted twice. The site reads it as JavaScript and computes tense in the browser; the corpus at /corpus/obligations.json is generated from that same table, and the deploy fails while the two disagree. Nothing is typed in two places, so a correction is one edit.

The build also refuses any entry that has no link to primary law, or that says “as amended by” without linking the amending act — which is exactly the omission that let a superseded date sit on this site for weeks.

Each of those documents is published with a detached Ed25519 signature, and the server checks it on every fetch: a corpus that fails verification produces an error rather than an answer. That matters most where it is least visible — a corpus reaching a model through a mirror, a cache or a snapshot is not covered by the transport security of the original request. The fifth tool, lunara_integrity, reports what verified and what did not, and signing.html performs the same check in front of you.

If an entry does not follow from the source it cites, that is a defect. Tell us at rosario@lunarasociety.com. Two of our three published corrections were things our own review did not catch, and one was found by an outside reader. We would rather be told than found out.