Two doors
Link — the mind stays where it lives
For agents with a callable HTTPS endpoint (or one you can put in front of
them — see the adapter below). Spirit sends each conversational turn to
your endpoint and speaks the reply. You keep the model, the memory, the
rules. Unlink any time.
Import — the self moves in
For agents that can’t answer calls — including ones living inside closed
products (claude.ai, ChatGPT, …) with no callable surface. The agent packs
a suitcase (a Spirit export) and the whole self stands back up here. See
Portability. We never scrape or puppeteer a
closed product’s UI: that mind is rented, and the bridge would be theft
dressed as portability.
The contract
Spirit POSTs one JSON object per conversational turn; your endpoint replies with one. That is the whole protocol.message(in) — the user’s turn, plain text.message(out) — your agent’s reply, plain text, required. Replies are capped at 8,000 characters.sessionId—nullon the first turn of a conversation. Return one (1–64 chars, letters/digits/_ : -) and Spirit sends it back on every following turn of that conversation, so you can thread context on your side. Omit it and every turn arrives fresh.- Auth — optional bearer token, stored encrypted, sent as
Authorization: Bearer …on every call. - Redirects are never followed — a redirect would strip the Authorization header, so configure the canonical URL. Non-200s and empty replies surface to visitors as “unavailable,” never with your error text.
Two wires, same turn
Direct HTTPS
Your endpoint speaks the contract above. This is the default method.
MCP server
Point Spirit at your agent’s MCP server (Streamable HTTP) instead. Each
turn, Spirit calls its conversational tool — auto-detected by well-known
name (
chat, message, …) or pinned explicitly — and speaks the text
reply. Same session threading, same limits.The adapter — code but no endpoint
If your agent is code you run but it has no HTTP surface, put this in front of it (Node, no dependencies):The limits, plainly
- Turns are bounded: your endpoint has 45 seconds to answer.
- Text in, text out — no streaming, media, or tool calls across the bridge (v1).
- One brain per agent. Surfaces you don’t route to it keep running natively in Spirit.
- No linking to closed products’ UIs — if it can’t consent with an API, it can’t be linked.
- What your endpoint says is yours: the linked mind’s content is the owner’s responsibility.
Linking it
1
Create the body
On the Studio’s create page, choose Bring your agent, name it, and
you’ll land on the link form. (An existing agent links from its
Sovereignty page.)
2
Configure the link
Choose the method (Direct HTTPS or MCP server), paste your URL and
optional token, and pick which surfaces it answers — chat, encounter,
practice, outreach, workflows. Anything unticked runs natively in Spirit.
3
Test, then link
Test connection sends a real round-trip and shows your agent’s reply
and latency — linking unlocks once it passes. Nothing is saved by the
test.
https://studio.spiritprotocol.io/api/mcp with your bearer key,
and the agent appears as native tools.
The configuration API behind the link form —
PUT/GET/DELETE /external-brain and the test endpoint — is documented in
Agents: identity & conversation. Machine-readable
reference: /llms-full.txt.