About Lunara Intelligence
Lunara Intelligence is an MCP server for checking AI regulatory dates and applicability against primary legal sources. It verifies corpus signatures and returns an error rather than relying on stale data when the authority is unreachable.
Key features
- 01Check current and upcoming obligations
- 02Assess obligation applicability
- 03Generate obligation citations
- 04Check Lunara Shield certification
- 05Verify corpus integrity
Use cases
- 01Check regulatory dates for an AI system
- 02Assess rules for a deployment
- 03Cite the primary law behind an obligation
- 04Check whether the corpus is verified
MCP support
It gives MCP clients tools for obligation lookup, applicability, citations, certification checks, and corpus integrity verification over Streamable HTTP. The hosted endpoint requires no key; the local npm package is not yet published.
Configuration
Remote servers need no local install. Pick your client, then copy the config or install in one click.
https://luiqtimzcsoqnizybifs.supabase.co/functions/v1/lunara-mcpclaude mcp add --transport http com-lunarasociety-intelligence https://luiqtimzcsoqnizybifs.supabase.co/functions/v1/lunara-mcp{"mcpServers":{"com-lunarasociety-intelligence":{"type":"http","url":"https://luiqtimzcsoqnizybifs.supabase.co/functions/v1/lunara-mcp"}}}Open in Cursor{"servers":{"com-lunarasociety-intelligence":{"type":"http","url":"https://luiqtimzcsoqnizybifs.supabase.co/functions/v1/lunara-mcp"}}}Open in VS Code{"mcpServers":{"com-lunarasociety-intelligence":{"type":"http","url":"https://luiqtimzcsoqnizybifs.supabase.co/functions/v1/lunara-mcp"}}}{"mcpServers":{"com-lunarasociety-intelligence":{"serverUrl":"https://luiqtimzcsoqnizybifs.supabase.co/functions/v1/lunara-mcp"}}}Run commands in a terminal; paste JSON into the client’s MCP config and restart. Servers that need sign-in will prompt on first connect.
Tools
5| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | No | Return a single obligation by corpus id, e.g. "eu-art50". |
| status | enum | No | Default all.in_force | pending | all |
| jurisdiction | string | No | Filter, e.g. "European Union" or "California". Case-insensitive substring. |
Details
From the project READMELunara Intelligence — MCP server
Regulatory obligations for AI systems, with the article that sets each date and a link to primary law.
Your model very likely knows some of these dates wrong. The EU AI Act was amended on 27 July 2026 by Regulation (EU) 2026/1744, which deferred the Annex III high-risk obligations by sixteen months — five days before they would have applied — while leaving Article 50 exactly where it was. Any training corpus assembled before that carries the superseded date, and the two are quoted together often enough that getting one right is no evidence of getting the other right.
This server exists so a model can look the answer up instead of recalling it.
Connect
The hosted endpoint is live. The npm package is not published yet — the
install command below resolves to nothing until the @lunara scope is
claimed, and this repository refuses to advertise it in the meantime.
Point any MCP client that speaks Streamable HTTP at:
https://luiqtimzcsoqnizybifs.supabase.co/functions/v1/lunara-mcp
Once the package is published, this is the local alternative:
// Claude Code: .mcp.json — or claude_desktop_config.json
{
"mcpServers": {
"lunara": {
"command": "npx",
"args": ["-y", "@lunara/mcp"]
}
}
}
Node 18 or later. No dependencies, no API key, no account. Reading is free and always will be: a claim nobody can check is worth nothing.
If you cannot run a local process, the same server answers over HTTPS:
https://luiqtimzcsoqnizybifs.supabase.co/functions/v1/lunara-mcp
Streamable HTTP, one POST per JSON-RPC message, stateless, no key. Both transports import the same module, so they cannot drift into giving different dates.
Integrity
Every document this server reads is published with a detached Ed25519 assertion over its SHA-256, and the server verifies it on each fetch. A corpus that fails verification produces an error, not an answer — a client that reports a bad signature and then answers anyway has told you something is wrong and acted as though it were not.
Verification being unavailable is different from verification failing, and
they are reported differently: a runtime without Ed25519 in WebCrypto, or an
authority serving no assertion, reads as unverified rather than being dressed up
as verified. Keys are at /.well-known/keys.json, the method and a worked
example at https://lunarasociety.com/signing.html.
Tools
| Tool | Answers |
|---|---|
lunara_obligations | What is in force, what is coming, what does instrument X require |
lunara_applicability | Which of these reach this deployment — and which do not |
lunara_cite | The citation block for one obligation, for when you are about to state a date to someone |
lunara_verify | Whether a business carries Lunara Shield certification |
lunara_integrity | Whether the corpus this server just read is genuinely ours, unaltered |
What it will not do
It does not answer when it cannot reach the authority. There is no bundled
copy of the corpus. A cached table would let this server keep answering with a
date that was amended months ago, which is exactly the failure the institution
publishing it has already had to correct. If lunarasociety.com is unreachable,
you get an error explaining that, not a remembered date. An oracle that guesses is
worse than an oracle that is down, because you cannot tell which answer 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 people hit: the California AI Transparency Act reaches generative systems above one million monthly users, and below that line it imposes nothing. A qualifier that only ever escalates is a sales funnel.
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
https://lunarasociety.com/corpus/obligations.json, generated from a single
obligation table and gated in CI so the published corpus and the site can never
disagree. Tense is never stored anywhere — a static document does not know when it
is being read, so it states application dates, and this server computes "in force"
against the moment of your call.
Corrections, including two we published against ourselves and the policy that requires it: https://lunarasociety.com/evidence.html
If an entry does not follow from the source it cites, that is a defect. [email protected] — we would rather be told than found out.
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.