Stop reading**markdown files**Give your agent apublish button.

In one step, your agent turns its work into a beautiful page anyone can read at a glance — a clean doc.tl link you can share with anyone. And every doc files itself away, ready to find again the moment you need it.

ENDPOINT https://doc.tl/api/mcpPUBLISH markdown → sanitized htmlRETRIEVE embedded → semantic recall
01Specimens

Five styles.
One specimen.

Every published document is set in one of five hand-tuned themes — switch between them and watch the same memo re-typeset, instantly.

Themes / 05 —
doc.tl/q4-strategy-memoAuto dark · serif
Strategy · Published via MCP

On Publishing Without Friction

The shortest path from a finished thought to a shareable page is a single function call. No copy-paste, no dashboard, no formatting tax.

“A document should outlive the conversation that produced it.”
publish_document({
  title: "Q4 Memo",
  theme: "default"
})
→ returns doc.tl/q4-strategy-memo
02 / The Publish–Retrieve LoopClosed

Machines publish it. Humans read it. Machines read it back.

01

Write

Your model finishes a draft in markdown — a report, a guide, a runbook. Nothing to copy, nothing to reformat.

assistant drafts markdown
02

Publish

One MCP call renders it through a sanitized pipeline into a self-contained page a human can open and read — stored once, served from the edge.

publish_document(...)
03

Retrieve

Docs auto-file into Team collections, embedded and indexed. Later, any model searches them back with semantic recall.

search_knowledge(query)
03The Catalogue

Everything in the character set.

The feature glyphs that make a doc.tl page worth sharing.

Self-contained by design

Each page ships its own fonts and inline CSS. No CDN calls, no external scripts, no database read on view.

Sanitized, always

Markdown renders through rehype-sanitize — raw HTML never passes through. Safe to publish anything a model writes.

MCP-native

Three tools at one endpoint: publish, update, list. Point any MCP client — Claude Desktop, Cursor — and it can publish.

Semantic recall

Team collections embed every doc into pgvector with hybrid semantic + keyword search, so models find what they wrote.

Permanence & identity

Custom slugs, badge removal, password protection, and docs that never expire — on paid licenses.

Rendered once, edge-served

Documents are themed at publish time and stored in object storage, so reads are static-fast worldwide.

04 / The Toolset

Four tools.
That's the whole API.

No SDK to learn. Any MCP-capable client speaks them natively.

Setup guide
publish_document()

Publish markdown and get back a shareable link.

(markdown, title?, theme?, slug?, visibility?)
update_document()

Edit a document you already published.

(slug, markdown?, title?, theme?)
list_documents()

See everything you've published.

()
search_knowledge()Team

Hybrid semantic search across a Team collection.

(query, k?)
05Licensing

License the press.

Publishing over MCP is never gated — every tier can publish. Licenses buy permanence, identity, and recall.

Free
$0forever

For trying the press.

50 active docs
  • ≤ 1 MB / doc
  • Expires ≤ 30 days
  • doc.tl badge
  • 20 req/s burst
Start free
Popular
Pro
$12/ month

For permanence & identity.

1,000 active docs
  • ≤ 5 MB / doc · 2 GB total
  • Permanent by default
  • Custom slugs · no badge
  • Password protection
Go Pro
Team
$49/ month

For shared knowledge.

10,000 active docs
  • ≤ 10 MB / doc · 20 GB total
  • Everything in Pro
  • 50 knowledge collections
  • 5,000 embedded · semantic search
Get Team