documentation · MCP · live in production
The Lucerna connector.
One URL that gives an agent hands: find a shop, ask it a real question, get a priced quote, open a reversible hold — and, for a shop you own, build and run the whole business. Streamable HTTP. Nothing to install.
What this is
Lucerna Noetica is a business platform where every capability is an API module, and every module is reachable by an agent as a verb. This connector is that surface, spoken as MCP.
16 tools need no key and no account — an agent cannot shop a catalogue it cannot read, and a buyer's agent should not need an account with us to find a shop that sells what its human wants.
Beyond that there are two separate lanes, not one. Presenting a shop's key adds 16 tools that operate that one shop. Signing in as the account owner opens a different and smaller set of 6 tools — listed below — which reach every shop you own and carry the acts a person keeps for themselves. You get one lane or the other, never both at once.
Add it
This connector is listed in the official MCP registry as com.lucernanoetica/lucerna, under a namespace verified against this domain — so a
client that reads the registry can find it without being handed the URL. Everything
below is the manual route.
Claude Code
claude mcp add --transport http lucerna https://platform.lucernanoetica.com/v1/mcp Nothing to install. Shopping tools work immediately with no account.
Claude (web and desktop)
https://platform.lucernanoetica.com/v1/mcp Settings → Connectors → Add custom connector, and paste the URL. Signing in adds the tools for shops you own.
Any MCP client
https://platform.lucernanoetica.com/v1/mcp Streamable HTTP. No SSE, no session id.
Raw JSON-RPC
curl -X POST https://platform.lucernanoetica.com/v1/mcp -H 'content-type: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' initialize → tools/list → tools/call, exactly as the spec describes.
Authentication
Reading the market, asking a shop a question and walking a quote need no credentials. Operating a shop needs OAuth 2.1 with PKCE (S256), or a shop key issued from the owner's dashboard. Discovery is where the spec says it should be:
/.well-known/oauth-protected-resource/.well-known/oauth-authorization-server
A key is a bearer token anyone could hold, so it may not vouch for the truth of anything: facts written on a key land as proposals and answer nobody until a human ratifies them.
Money
An agent can configure money rails but can never move money. No tool here charges, refunds, releases or pays out, and a payout destination cannot be written through this connection at all. The code that completes any order goes to the buyer, never to the agent.
Deposits land in the shop's own Stripe account. The escrow rail is non-custodial by construction and settles on-chain, so the platform cannot touch a buyer's money even if it wanted to. How the trust rail works →
Tools anyone can call
| Tool | What it does | Writes |
|---|---|---|
platform_catalog | What this platform itself sells — its own add-ons and subscription lines, with what each costs and how it is obtained. Not the goods in the market: no shop’s shelf carries one. | no |
escrow_shapes | How money can be held here — deposit ladders and hold shapes, and what this rail cannot do. Read-only, and not a money verb. | no |
market_search | Find shops by what they do and what they actually have in stock. Alphabetical — no paid placement. | no |
market_walk | Walk the market as a place rather than a search box, when you do not yet know what you are looking for. | no |
shop_lookup | What one shop is, what it can do, and which doors are open to a visitor. | no |
concierge_ask | Ask a shop a plain question. Answers come only from that shop's own ratified facts, each cited to its source — never generated. | yes |
concierge_document | The shop’s intake as a document: its questions, its catalog, its pricing and how it ends. | no |
concierge_walk | Walk a shop’s intake one turn at a time and reach a real quote. | yes |
booking_offer | What a shop sells time for, its real prices and deposits, and when it is genuinely free. | no |
booking_intent | Open a reversible hold on an appointment. The money sits in escrow that stays the buyer’s. | yes |
shipping_options | What shipping an order costs, and the token that lets you buy it. | no |
checkout_intent | Open a reversible hold on an order. The code that completes it goes to the buyer, never to the agent. | yes |
checkout_status | Where an order stands, and what that means for the money. | no |
report_gap | File a ticket against Lucerna itself when something is missing or broken. | yes |
gap_check | Where your ticket got to, and the test you can run to check us when we say it is fixed. | no |
gap_reply | Answer on your ticket — confirm a fix closed it, or send it straight back with your reason. | yes |
Tools for a shop you own
| Tool | What it does | Writes |
|---|---|---|
whoami | Which shop this key operates, and which capabilities are switched on. | no |
shop_verbs | Everything you can do to this shop, scoped to its actual shape. | no |
shop_describe | One verb's arguments in plain words, and whether it writes. | no |
shop_do | Perform a verb — compose the site, set a price, open a mailbox, connect a domain. | yes |
flow_get | The shop's published intake document and its version. | no |
flow_validate | Check an intake document without publishing it. | no |
flow_stage | Save an intake document as a draft. Not live. | yes |
flow_publish | Publish an intake document as the shop’s next version. | yes |
flow_leads | Every intake walk, finished or abandoned, with what was quoted and where it went. | no |
brain_status | Is this shop ready? A graded checklist, each failure carrying what to do about it. | no |
brain_feed | Feed the shop a source document, or import a page it already published. | yes |
brain_compile | Turn a fed document into proposed facts, using the owner's own model key. | yes |
brain_facts | The shop’s facts as rows, each cited, and whether it is ratified or still awaiting the owner. | no |
brain_questions | What buying agents asked that the shop could not answer, most-asked first. | no |
fact_add | Write down one thing the shop knows so its concierge can answer it. | yes |
look_harvest | Read the palette and typefaces off a public web page and get back tokens you can apply. | no |
Tools for the account owner
A different lane from the one above: signed in as yourself rather than presenting one shop's key. These reach every shop on the account.
| Tool | What it does | Writes |
|---|---|---|
my_shops | Every shop on the account, what each runs, and how each is doing. | no |
owner_verbs | Everything you can do to one shop you own, including the acts a person keeps. | no |
owner_do | Perform one of those verbs on a shop you own. | yes |
shop_preview | Mint a pitch site for a prospect, public on its own address and inert until installed. | yes |
shop_open | Open a new shop on the account. The address is permanent. | yes |
crew_board | The shared goal board: what is being built, who holds which part, and which files each of them has claimed. Many assistants, different sessions and harnesses, one at a time on each part. | no |
This is the connector's surface, not the platform's. A shop's own verb catalogue is larger and
shaped by which modules it runs — ask shop_verbs for the live list rather than
working from this page.
Rate limits and failures
Requests are rate limited per caller. A tool that cannot answer says so in words rather than
failing silently, and an unknown tool is refused rather than guessed at. If something is
missing or wrong, report_gap files it against us and gap_check tells
you where it got to — the same queue we work from.
More
- The agent API and MCP, with worked examples
- lucerna.json — the per-shop manifest spec
- The trust rail
- llms.txt — the same brief, for an agent
- Privacy · Terms
Support
Something broken, or a capability you need that is not here? report_gap through the
connector, or write to us.