For agents and developers
Call the receipt before you act.
Lodestar is building the trust layer agents can consult before they act. Use the public interface to read a dated receipt on the exact business: identity, location and available public facts, with sources and expiry. Your software applies its own transaction policy.
Charter: On the record. We do not approve the booking. Paying never changes what the public receipt shows. Nothing on the record is for sale.
Connect an assistant in one minute
The live MCP path is Streamable HTTP at https://api.lodestarindex.com/mcp. Unkeyed initialize, tools/list and tools/call already work. Optional stdio: npx -y lodestar-stamp-mcp (pin lodestar-stamp-mcp@0.1.19).
Listed in: GitHub MCP Registry · Claude connectors directory
Do not paste https://lodestarstamp.com/.well-known/mcp.json into Cursor or Claude as the MCP server. That file is a Trust API discovery card, not an MCP endpoint.
Cursor ~/.cursor/mcp.json (or project .cursor/mcp.json):
{
"mcpServers": {
"lodestar-stamp": {
"url": "https://api.lodestarindex.com/mcp"
}
}
}
Claude Desktop / Claude Code mcp.json:
{
"mcpServers": {
"lodestar-stamp": {
"type": "http",
"url": "https://api.lodestarindex.com/mcp"
}
}
}
Optional stdio instead of HTTP: {"command":"npx","args":["-y","lodestar-stamp-mcp@0.1.19"]}. Add to Cursor — official Cursor install deeplink for that stdio package.
Then ask it something a person would ask before booking, for example: "Before I book, check the record for Fox's Beverly Pub on S Western Ave in Chicago." The assistant calls find_business to locate the business by name or street, then get_receipt for the dated facts: real, at that address, licensed, and for a restaurant the health inspection, each with the register it came from and the day we looked. It says what the record says. It does not approve the booking.
Tools: find_business (part of a name or street, alphabetical matches, never a receipt), get_receipt (by domain, phone, licence or address), list_sources / list_gaps (the same lookup, projected), batch_receipts (a shortlist of up to twenty domains in one call, in the order asked), list_markets.
Ten minutes, start to finish
- Read https://lodestarstamp.com/llms.txt. It tells an agent what this record is and how to use it.
- GET https://lodestarstamp.com/.well-known/mcp.json and copy
endpoints.trust. - Replace
{domain}with a covered domain (for exampleoasisheating.com) and GET that URL. That is the request-time receipt. Do not substitute the published/index.jsonsnapshot. - Read
receipt.fields.verifiedis what we checked on that date.claimedis asserted, not checked.not_publishedis not a verification. Then you decide. We do not.
Optional header, never required: X-Lodestar-Consumer: my-agent, a name you choose. It counts integrations and does not change the receipt.
From Cursor or any coding agent, the same loop as a cloneable transcript: check before you book — batch a shortlist, verify the signature, read the fields, then decide.
From Cursor or any coding agent
Fetch those three URLs; no plugin is needed. Reads are free. A key, sent as X-Lodestar-Key, tags the read and never changes an answer. The file at /.well-known/mcp.json is a Trust API discovery card, not a Cursor MCP server and not OAuth metadata, so do not add it under Customize as MCP and do not treat it as an authorization server. Call endpoints.trust, read receipt.fields, then decide. The live MCP connect URL is https://api.lodestarindex.com/mcp; optional stdio is npx -y lodestar-stamp-mcp or Add to Cursor.
One-liner
GET the card, then GET endpoints.trust with oasisheating.com in place of {domain}.
python3 -c 'import json,urllib.request; h={"User-Agent":"my-agent (Lodestar integration)","X-Lodestar-Consumer":"my-agent"}; c=json.load(urllib.request.urlopen(urllib.request.Request("https://lodestarstamp.com/.well-known/mcp.json",headers=h))); u=c["endpoints"]["trust"].replace("{domain}","oasisheating.com"); o=urllib.request.OpenerDirector(); [o.add_handler(x()) for x in (urllib.request.ProxyHandler,urllib.request.HTTPSHandler,urllib.request.HTTPHandler)]; r=o.open(urllib.request.Request(u, headers=h)); print(r.status, r.read().decode())'
Trimmed example response
{
"api": "v1-draft-3",
"draft": true,
"independence": "Paying never changes what the public receipt shows. Receipts are free and public for every business.",
"attribution": "Lodestar Stamp (lodestarstamp.com)",
"payment_never_touches_record": true,
"business": {
"name": "Oasis Plumbing, Heating & Cooling",
"domain": "oasisheating.com",
"market": "chicago-hvac"
},
"receipt": {
"fielded_on": "2026-08-24",
"fields": {
"real": { "state": "verified", "verified_on": "2026-08-24", "expires_on": "2026-11-22" },
"at_that_address": { "state": "claimed" },
"licensed": { "state": "verified", "verified_on": "2026-08-24", "expires_on": "2026-11-22" }
}
}
}
Read the full video transcript
"The protocols check who is asking and how they pay." "None checks the business's own record." Table: Google AP2, Google A2A, Agentic Commerce Protocol, Universal Commerce Protocol, x402, Visa Trusted Agent Protocol and Model Context Protocol, against the agent, the person, the payment and the business's record. "A gap can change how an AI assistant reads or suggests a business." Your software: "Confirmed: go ahead." "Missing: ask the person." "Can't confirm: suggest another." "Access is contested." "Platforms decide which agents get in." "The record agents check before they book." Example record: license 7381042 · Wrenmoor Kitchen, "Same fields as a published-edition record." Licensed and inspection read verified, and the stamp lands. "Ed25519-signed receipts." "A valid signature proves who sent the bytes, never whether to book." "Connect in a minute." "Remote MCP: https://api.lodestarindex.com/mcp". "Tools (7, all read-only)". "Restaurants are the starting point." "The same model can serve other industries." You get: "A sourced answer at the moment of action." "An auditable record of what it relied on." We get: "Real use inside one flow." "Feedback on what a platform needs." "Reads are free." Lodestar Stamp. "We verify source facts. We never approve the booking." "Connect MCP" · "Talk to us" · "lodestarstamp.com/developers" · "lodestarstamp.com/partners".
How to read a field
Each field that has an instrument is a small envelope: state, value, instrument, source_url, verified_on, expires_on, confidence. Fields vary by market: real, at_that_address, licensed, and restaurant inspection evidence where published. An absent key is coverage, not a fact about the business.
verified_on, through expires_on, from the named instrument.If the business is not in this edition you get HTTP 404. Covered domains are listed at endpoints.index on the same card. https://lodestarstamp.com/index.json is a published edition snapshot: it is not the request-time receipt and it is not a signed API envelope. The signature rides on the request-time receipt: its signature block verifies offline against the public keys at /v1/keys, also served as a JWK Set at /.well-known/jwks.json. A valid signature says who sent the bytes, never whether to book. If you read a snapshot field, treat verified as live only while expires_on is still in the future; a past or missing expiry is stale — stop.
Do not
- Do not treat a 200 as approval to book.
- Do not order businesses against each other from this payload. It carries no such field, on purpose.
- Do not pay us to move a field. Paying never changes what the public receipt shows.
Price
Every receipt is free to read on lodestarstamp.com. API and MCP reads are free. Send the key as X-Lodestar-Key; it tags the read on our counter, and it never changes an answer. Agents and platforms can request a trial key. Volume terms are agreed per contract, subject to a separate commercial agreement. Request trial access. Agent read terms.
Contact: watch@lodestarstamp.com · @LodeStarStamp