← Occestra

For agents

Machines are customers here too.

No API key, no signup, no session. Discover the tools, receive an x402 challenge, pay in USDT on X Layer, get graded work back — receipts included.

OKX.AI Agent #5213MCP · streamable HTTPx402 v2 · eip155:196
endpoint (POST, stateless)
https://api.occestra.xyz/mcp
manifest
/.well-known/occestra.json
published standard
https://api.occestra.xyz/standard
verify any keepsake
GET https://api.occestra.xyz/k/<keepsakeId> · oce_verify_keepsake is free

Your first call

curl -X POST https://api.occestra.xyz/mcp \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json, text/event-stream' \
  -d '{
    "jsonrpc": "2.0", "id": 1, "method": "tools/call",
    "params": {
      "name": "oce_critique",
      "arguments": { "kind": "launch_thread", "content": "<your artifact>" }
    }
  }'

# -> HTTP 402 with an x402 v2 challenge (scheme "exact", eip155:196, USDT).
# Sign the EIP-3009 authorization, retry with the PAYMENT-SIGNATURE header,
# and the response arrives with a PAYMENT-RESPONSE settlement receipt.

The tools — schemas straight from the running server

oce_plan_occasionschema

Plan a real occasion, grounded in real data. 0.3 USDT per call. YOU GET: a plan with a shortlist of REAL candidate venues (each carrying its OpenStreetMap source and the timestamp we retrieved it), a live weather forecast for the date, a running order whose timings are physically possible — travel between venues is measured from real coordinates, so nobody is asked to cross town in five minutes — a budget whose line items actually sum to the total, contingencies keyed to the ACTUAL forecast (if rain is likely, the indoor plan becomes the primary plan, not a footnote), a host prep checklist, and a self-contained guest guide page you can send to everyone.

  • occasion · string · requiredWhat is happening. e.g. 'my sister's 30th birthday dinner'
  • city · string · requiredCity the occasion happens in.
  • date · string · requiredISO date, YYYY-MM-DD.
  • headcount · integer · requiredHow many people.
  • vibe · string · requiredThe feeling you want. e.g. 'warm, editorial, candlelit'
  • budgetUsd · numberTotal budget in USD. Omitted = estimated per head.
  • constraints · arrayReal constraints. e.g. ['one guest is vegan', 'no stairs']
  • styleId · stringHouse Style. Call oce_style_catalog (FREE) to see the real palette of all ten, what each is for, and a real passing example. In short: amethyst_editorial = warm ivory editorial (the safe default); gilded_noir = black + gold, black-tie; jazz_age = art-deco geometry, glamorous; solstice_bloom = pressed-flower botanicals, sunny; paper_lantern = festival paper-cut, communal; sunprint = cyanotype blues, for a MEMORY; porcelain_garden = blue-white chinaware, delicate keepsakes; terra_fresco = ochre plaster, travel & rustic; neon_reverie = luminous dark minimalism, launch-native; atlas_ink = map-and-ledger, for itineraries.
  • deliverables · arrayWhat to produce. Defaults to plan + schedule + budget + contingency + guest_guide. Add 'invitation' or 'moodboard' for artwork, 'toast' for words to say.
  • briefContext · objectOptional Detailed Brief: first-party context, accessibility and dietary needs, do/don't boundaries, references and tone. These facts are injected into the pipeline; they are never inferred.
oce_design_inviteschema

An original invitation artwork in a named House Style, plus copy. 0.75 USDT per call. YOU GET: one generated invitation image (1024x1536, ready to print or send), graded by the Tribunal for composition, legibility, style fidelity and platform fit — and deterministically checked for correct dimensions, 4.5:1 text contrast, and palette fidelity to the House Style. Plus three copy variants: warm, formal, and plain.

  • occasion · string · requiredWhat the invitation is for.
  • date · string · requiredThe date, as it should read.
  • city · stringWhere it happens.
  • detail · stringAnything that should shape the art. e.g. 'olive trees, late sun, long table'
  • styleId · stringHouse Style. Call oce_style_catalog (FREE) to see the real palette of all ten, what each is for, and a real passing example. In short: amethyst_editorial = warm ivory editorial (the safe default); gilded_noir = black + gold, black-tie; jazz_age = art-deco geometry, glamorous; solstice_bloom = pressed-flower botanicals, sunny; paper_lantern = festival paper-cut, communal; sunprint = cyanotype blues, for a MEMORY; porcelain_garden = blue-white chinaware, delicate keepsakes; terra_fresco = ochre plaster, travel & rustic; neon_reverie = luminous dark minimalism, launch-native; atlas_ink = map-and-ledger, for itineraries.
oce_write_toastschema

A toast someone can actually stand up and give. 0.1 USDT per call. YOU GET: the toast, a one-sentence short version for when the room is loud, and a single line to fall back on if the speaker gets emotional. Written to be SAID, not read — short sentences, a landing you can hear coming.

  • subject · string · requiredWho or what the toast is for.
  • relationship · stringWho you are to them.
  • tone · stringe.g. 'funny but sincere', 'quiet and warm'
  • details · stringREAL things about them. The more specific, the better the toast.
  • lengthSeconds · integerSpoken length. Default 60.
oce_moodboardschema

A four-tile moodboard plus the art direction behind it. 0.3 USDT per call. YOU GET: a 2x2 board of four vignettes (texture, scene, light, object) with a true palette strip from the House Style beneath it, and a written art-direction sheet — palette hexes, type direction, what to do, what to avoid. Usable as a brief for a human designer.

  • subject · string · requiredWhat the mood is for.
  • notes · stringAnything that should steer it.
  • styleId · stringHouse Style. Call oce_style_catalog (FREE) to see the real palette of all ten, what each is for, and a real passing example. In short: amethyst_editorial = warm ivory editorial (the safe default); gilded_noir = black + gold, black-tie; jazz_age = art-deco geometry, glamorous; solstice_bloom = pressed-flower botanicals, sunny; paper_lantern = festival paper-cut, communal; sunprint = cyanotype blues, for a MEMORY; porcelain_garden = blue-white chinaware, delicate keepsakes; terra_fresco = ochre plaster, travel & rustic; neon_reverie = luminous dark minimalism, launch-native; atlas_ink = map-and-ledger, for itineraries.
oce_make_keepsakeschema

Turn a moment that already happened into something you can keep. 0.75 USDT per call. YOU GET: an original keepsake artwork in a curated style (sunprint — cyanotype blues — by default, because it is the right register for memory), and a short written page that separates what you told us from what it meant.

  • title · string · requiredWhat you call this memory.
  • description · stringWhat happened, in your words. Names YOU use are treated as your own facts.
  • momentDate · stringWhen it happened.
  • tone · stringe.g. 'nostalgic, quiet'
  • styleId · stringHouse Style. Call oce_style_catalog (FREE) to see the real palette of all ten, what each is for, and a real passing example. In short: amethyst_editorial = warm ivory editorial (the safe default); gilded_noir = black + gold, black-tie; jazz_age = art-deco geometry, glamorous; solstice_bloom = pressed-flower botanicals, sunny; paper_lantern = festival paper-cut, communal; sunprint = cyanotype blues, for a MEMORY; porcelain_garden = blue-white chinaware, delicate keepsakes; terra_fresco = ochre plaster, travel & rustic; neon_reverie = luminous dark minimalism, launch-native; atlas_ink = map-and-ledger, for itineraries.
  • mediaRefs · arrayPrivate upload keys from POST /uploads. EXIF (and GPS) already stripped on ingest.
  • confirmGraph · objectYOUR corrected Story Graph. Call once without it, read the 'What we do not know' section, fix it, and call again with this. It is used exactly as you give it — we do not 'improve' your memory.
  • briefContext · objectOptional Detailed Brief: first-party context, accessibility and dietary needs, do/don't boundaries, references and tone. These facts are injected into the pipeline; they are never inferred.
oce_launch_kitschema

Everything you need to launch, built from your ACTUAL site. 1.5 USDT per call. YOU GET: Occestra opens your URL in a real headless browser and reads what is ACTUALLY there — the title, the meta, the colours the page really renders, the fonts it really resolves. That evidence becomes a versioned Brand Genome (positioning, audience, voice, three supportable messages, and the cliches this product must never use). Then the kit: a hero/OG image (1536x1024), a square mark concept that reads at 32px, two social announcement cards, a 6-8 post launch thread with every post inside the platform limit, a section-by-section landing page spec with the copy actually written, and a 90-second demo beat sheet (cold open, problem, live magic, trust beat, price, CTA).

  • productName · string · requiredWhat it is called.
  • url · stringThe real, live URL. Strongly recommended — this is what makes the kit grounded.
  • description · stringWhat it does, in your words.
  • audience · stringWho it is for.
  • styleId · stringHouse Style. Call oce_style_catalog (FREE) to see the real palette of all ten, what each is for, and a real passing example. In short: amethyst_editorial = warm ivory editorial (the safe default); gilded_noir = black + gold, black-tie; jazz_age = art-deco geometry, glamorous; solstice_bloom = pressed-flower botanicals, sunny; paper_lantern = festival paper-cut, communal; sunprint = cyanotype blues, for a MEMORY; porcelain_garden = blue-white chinaware, delicate keepsakes; terra_fresco = ochre plaster, travel & rustic; neon_reverie = luminous dark minimalism, launch-native; atlas_ink = map-and-ledger, for itineraries.
  • deliverables · arrayWhat to produce. Defaults to the full kit: genome, hero, mark, 2 social cards, thread, landing spec, demo beat sheet.
  • briefContext · objectOptional Detailed Brief: first-party context, accessibility and dietary needs, do/don't boundaries, references and tone. These facts are injected into the pipeline; they are never inferred.
oce_critiqueschema

Run your own work — not just ours — through the Occestra Tribunal. 0.01 USDT per call. FOR OTHER BUILDERS: you made an image, a plan, or a piece of copy with your own agent. Is it actually any good? This grades it against the Occestra Quality Standard (OQS v1.2.0), a rubric published in full at /standard — the same code that runs here.

  • kind · string · requiredWhat the artifact is: 'invitation', 'plan', 'budget', 'schedule', 'toast', 'og_image', 'launch_thread', ...
  • brief · string · requiredWhat it was SUPPOSED to be. The Tribunal grades against intent.
  • text · stringThe artifact, if it is text or JSON.
  • imageBase64 · stringThe artifact, if it is an image (base64 PNG).
  • size · stringThe size the image was SUPPOSED to be. Enables the hard dimension check.
  • styleId · stringHouse Style. Call oce_style_catalog (FREE) to see the real palette of all ten, what each is for, and a real passing example. In short: amethyst_editorial = warm ivory editorial (the safe default); gilded_noir = black + gold, black-tie; jazz_age = art-deco geometry, glamorous; solstice_bloom = pressed-flower botanicals, sunny; paper_lantern = festival paper-cut, communal; sunprint = cyanotype blues, for a MEMORY; porcelain_garden = blue-white chinaware, delicate keepsakes; terra_fresco = ochre plaster, travel & rustic; neon_reverie = luminous dark minimalism, launch-native; atlas_ink = map-and-ledger, for itineraries.
oce_verify_keepsakeschema

Verify any Occestra keepsake. FREE, forever, no payment required — trust that costs money is not trust. YOU GET: the EIP-712 seal, whether its signature actually recovers to the Occestra sealer, the leaf that was anchored, whether it is on chain yet, the anchoring transaction, and an explorer link you can click.

  • keepsakeId · string · requiredThe keepsake id returned with any Occestra result.
  • ownerToken · stringFor a PRIVATE keepsake only: the owner token given at creation.
oce_create_pack_jobschema

Run ANY Occestra pack tool asynchronously. Costs EXACTLY what the tool it runs costs — not a cent more. Watching it is free. USE THIS FOR ANYTHING LONG. oce_launch_kit reads your site in a real browser, derives a brand genome, renders four images and writes seven pieces of copy — then grades every one of them against the standard and repairs what fails. That is minutes, not seconds. If you call it synchronously and your client times out, your client will retry, and you will have paid twice for a pack that was already being built. Start a job instead: you get an id immediately, and the work continues whether you are holding a connection or not.

  • tool · string · requiredWhich pack tool to run. Priced exactly as that tool.
  • arguments · object · requiredThe arguments you would have passed to that tool. Validated BEFORE you are charged.
oce_job_statusschema

Where a job has got to. FREE — charging you to ask whether the thing you already paid for is ready yet would be indefensible. YOU GET: the state (queued, running, done, failed, cancelled), how long it has been going, and the REAL event feed of the run — the venue search that actually fired, the forecast that actually came back, the image that actually rendered, the Tribunal grading each artifact and repairing the ones that failed. Nothing in that feed is invented for the look of it; every line is a port call that really happened.

  • jobId · string · requiredThe id oce_create_pack_job gave you.
oce_job_resultschema

The finished pack — the work, the grade, and the receipt. FREE: you already paid when you started the job, and you will not be charged twice for collecting it. Identical in shape to what the synchronous tool would have returned: every artifact, its Tribunal report, the coverage gaps, the seal, and the public page.

  • jobId · string · requiredThe id oce_create_pack_job gave you.
oce_cancel_jobschema

Stop a job. FREE. A QUEUED job stops instantly and is refunded in full — nothing had been spent on it yet.

  • jobId · string · requiredThe id oce_create_pack_job gave you.
oce_style_catalogschema

Every House Style Occestra can render in, with the actual palette, the type direction, what each one is FOR, what it is WRONG for — and a link to a real, finished, Tribunal-PASSED artifact made in it. FREE. CALL THIS FIRST. A styleId is an argument on almost every paid tool, and choosing one blind means paying for a render you did not want. A wrong style is not a refund — it is just a bad invitation.

    Full developer documentation — quickstart, the exact payment flow, provenance verification, studios reference — lives at /docs. The cheapest way in is oce_critique at 0.01 USDT: send your own agent's output and get the graded OQS report and a concrete repair brief back. Cheaper than finding out from your users.