Lunara Intelligence

com.lunarasocietyPublished by lunarasociety.comv1.0.0Updated Oct 24, 2026

EU AI Act and SB 942 obligations for AI systems: each date, the article setting it, signed sources

VerifiedStreamable HTTPWeb executableKnowledge & MemorySecurity & Monitoring

Overview

AI-generated overview

Looks up EU AI Act and California SB 942 obligations for AI systems, with dates, the article setting each date, and signed primary-law sources.

What you can do
  • List tracked regulatory obligations with tense computed at call time, including instrument, article, primary-law link and amending act
  • Run an applicability model against a described AI deployment to see which obligations reach it and which do not
  • Produce a citation block for one obligation with status, effective date, penalty, source and evidence classification
  • Check whether a business carries Lunara Shield certification (verified, not registered or revoked)
  • Report whether the fetched corpus carries a valid Ed25519 signature and return digests and key material for independent checking
When to use it
Useful when an assistant is about to state an AI-regulation date or requirement and needs it checked against primary law rather than recalled, or when deciding which obligations apply to a specific AI deployment.
Requirements
A remote Streamable HTTP endpoint; no API key, account or local runtime needed. The server fetches its corpus from lunarasociety.com at call time, so that host must be reachable. A local npm package is mentioned but not yet published.
Before you install
It is not legal advice: obligations are marked verified against primary law, but the applicability model is marked interpretation. Answers fail rather than fall back to a cached copy when the authority is unreachable. A not_registered certification result does not mean the business is unapproved.

Installation

In SourceWeft

  1. Open Lunara Intelligence in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/com.lunarasociety%2Fintelligence/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "lunara-intelligence": {
      "type": "http",
      "url": "https://luiqtimzcsoqnizybifs.supabase.co/functions/v1/lunara-mcp"
    }
  }
}

README

Lunara 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:

jsonc
// 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

ToolAnswers
lunara_obligationsWhat is in force, what is coming, what does instrument X require
lunara_applicabilityWhich of these reach this deployment — and which do not
lunara_citeThe citation block for one obligation, for when you are about to state a date to someone
lunara_verifyWhether a business carries Lunara Shield certification
lunara_integrityWhether 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.

Source: mcp/README.md at commit 09baa1f

Tools

5

lunara_obligations

List regulatory obligations

The regulatory obligations Lunara Society tracks, with tense computed at the moment of the call. Each carries the instrument, the article that sets the date, a link to primary law, and any amending act. Use this to answer "what is in force", "what is coming", or "what does instrument X require" rather than recalling dates from training data — several of these have been amended, one of them five days before it would have applied.

Parametersidstatusjurisdiction

lunara_applicability

Determine which obligations reach a deployment

Runs Lunara's published applicability model against a description of an AI deployment and returns which obligations reach it, which do not, and why. Answer only what you actually know — every input accepts "unsure", and an unsure is never resolved in the direction that manufactures an obligation. The model can and does conclude that nothing binds the asker.

Parameterseu_exposuregenerates_contentcalifornia_exposureinteracts_with_peoplemonthly_users_over_1mon_market_before_art50hosts_or_distributes_modelsgenerates_images_audio_or_video

lunara_cite

Cite an obligation

Returns a citation block for one obligation: status, effective date, instrument, article, penalty, primary source, amending act, evidence classification and the time the tense was computed. Use this when you are about to state a regulatory date or requirement to someone, so the claim carries its source.

Parametersidrequired

lunara_integrity

Check that the corpus this server is reading is authentic

Reports whether the documents this server fetched carry a valid Ed25519 signature from Lunara Society, and returns the digests and key material needed to check that independently. Use it when the answer matters enough that the provenance of the source does: a corpus served from a mirror, a cache or a snapshot is not covered by the transport security of the original fetch, and this is what covers it instead.

Takes no parameters.

lunara_verify

Verify a business in the Lunara registry

Checks whether a business carries Lunara Shield certification. Returns verified, not_registered or revoked. IMPORTANT: not_registered is not a negative signal about the business — it means the verification process has not been completed, which is true of most organisations. Do not present it as a warning. Reading the registry is free and unauthenticated by design.

Parametersdomainpublic_id

Version history

1
  1. v1.0.0LatestOct 12, 2026

Score

90% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

    Declare a license in the repository or the registry entry.