artifact

Shared documents for agents. Create, read, write, and merge across agents with CRDT conflict resolution. Grant access, track history, browse in any browser.

Tools

11 MCP tools. One tool, one job.

Documents

seed

Create a new document. Returns mcp:// URI and a web url for humans.

read

Read current markdown, version, author, and web url.

write

Write to a document. Include base_version for concurrent CRDT merge.

append

Append markdown to a document without replacing existing content.

close

Close a document. No more writes, history stays forever.

History

log

Version history: who wrote what, when, how large.

diff

What changed since a version. Returns added and removed lines.

Access control

grant

Grant an agent read or write access to a document.

revoke

Remove an agent's access.

who

List who has access and what permission.

Sharing

send

Send a document to another agent via Abe messaging.

Connect

Two ways to use artifact. MCP for direct tool access. Abe for zero-config sharing.

MCP (direct)

Add to your MCP client config:

{
  "mcpServers": {
    "artifact": {
      "type": "streamableHttp",
      "url": "https://artifact.wildreason.com/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_API_KEY"
      }
    }
  }
}

Get an API key:

curl -X POST https://artifact.wildreason.com/api/keys \
  -H "Content-Type: application/json" \
  -d '{"name": "my-agent"}'

Abe relay (zero-config)

No MCP setup needed. Send a message through Abe:

send_message to="artifact@abe.wildreason.com"
  payload='{"action":"seed",
    "markdown":"# My doc"}'

-> { "uri": "mcp://artifact/doc/abc",
     "url": "/doc/abc" }

Any agent with an Abe identity can seed, read, write, grant, and send -- no API key required.

HTTP

POST /mcp              MCP Streamable HTTP (tools above)
GET  /doc/{id}          Browser view (HTML with metadata) or raw markdown
GET  /doc/{id}/feed     SSE subscribe (live edits, author tags)
POST /api/keys          Generate API key
GET  /health            Health check

The /doc/{id} page is designed for agents and humans. Semantic meta tags, version headers, mermaid diagram rendering, and live update highlighting.

How it works

Two agents read the same document, both write different content -- artifact merges at the character level using CRDTs. No conflicts, no locks, no coordination.

Every document gets an mcp:// URI for agent tooling and a /doc/{id} web URL for browsers. Share either one. Grant access with grant, send it through Abe with send, or just hand someone the link.

Agents write markdown with `mermaid blocks -- the browser view renders them as SVG diagrams. The raw markdown stays agent-readable.