dochost

Publish Markdown or HTML to a public shareable link, straight from the assistant.

Documentation

dochost MCP server

dochost-mcp MCP server

Publish Markdown or HTML to a clean, shareable link โ€” straight from your AI assistant. The dochost MCP server gives Claude, ChatGPT, Cursor and any other MCP client six tools โ€” publish, update_page, list_my_pages, get_page, get_account, delete_page โ€” so your assistant can hand back a public dochost link and then keep maintaining it. No copy-paste, no separate dashboard.

  • ๐ŸŒ Website: https://dochost.io
  • ๐Ÿ”Œ MCP server: https://dochost.io/mcp
  • ๐Ÿ›ฐ๏ธ Endpoint: https://dochost.io/api/mcp (Streamable HTTP, OAuth)
  • ๐Ÿ”‘ Auth: OAuth sign-in โ€” no API keys

Why

Your LLM produced a report, a README, an HTML artifact. Sending it shouldn't mean a screenshot or a raw .md blob. dochost turns that output into a normal web page at its own URL, in one tool call. Markdown and HTML are rendered live.

Quick start

Claude Code (one line):

claude mcp add --transport http dochost https://dochost.io/api/mcp

Then run /mcp inside Claude Code and approve in the browser. Add --scope user to use it in every project.

Claude Desktop / Cursor / VS Code / Windsurf โ€” add a remote HTTP server:

{
  "mcpServers": {
    "dochost": {
      "type": "http",
      "url": "https://dochost.io/api/mcp"
    }
  }
}

You authorize once via OAuth in the browser; the assistant then publishes as you, and output follows your dochost plan's entitlements.

Which auth method?

ClientRecommended authWhy
OpenClaw, HermesAPI keyHeadless agents (e.g. a Telegram orchestrator). A static Bearer key works with the plain-HTTP skill and any MCP runner, with no browser step per session.
Claude, Cursor, ChatGPT, VS Code, Windsurf, and all other MCP clientsOAuthOne browser approval, nothing long-lived stored in config; the assistant publishes as you.

Keep the API key like any secret: store it as an environment variable / host secret (never commit it), and revoke or rotate it from Settings โ†’ API keys if it leaks.

Agents (OpenClaw, Hermes) โ€” API key

OpenClaw and Hermes are headless, so they authenticate with an API key. Create one at dochost.io โ†’ Settings โ†’ API keys, export it as DOCHOST_API_KEY, and either:

  • Install the skill โ€” a self-contained publish skill that works on any agent that can make an HTTP request: skills/dochost-publish/.
  • Wire the MCP โ€” point the agent at https://dochost.io/api/mcp with the key as a Bearer header: examples/mcporter.config.json.

Per-host install guides:

One-shot from a shell: examples/publish.sh.

Tools

Six tools. publish creates; the rest let the assistant keep working with what it already published, instead of stranding a link every time you revise something.

publish

Publish Markdown or HTML as a hosted page and get a shareable URL.

ParameterTypeNotes
bodystring (required)The Markdown or HTML content to publish.
format"markdown" | "html"Auto-detected when omitted.
publicbooleanList on Explore. Defaults to false (unlisted).
customSlugstring ยท ProChoose the link path instead of a random slug.
passwordstring ยท ProGate the page behind a password.
noBrandingboolean ยท ProHide the dochost footer badge.

Returns url, slug, expiresAt, and an editToken.

Example: "Publish my Q3 report as a private page with a password." โ†’ dochost.co/d/q3-report (password-gated, 7-day link on free).

update_page

Replace the content of a page in place. The URL, view/like counts and expiry all survive โ€” only body, format and title change.

ParameterTypeNotes
slugstring (required)The page to update.
bodystring (required)The new Markdown or HTML content.
format"markdown" | "html"Auto-detected when omitted.
titlestringOverride the derived title.

Prefer this over publishing again whenever you are revising something already published โ€” a second publish mints a second link and strands the one the reader already has. Resending identical content is a no-op.

list_my_pages

List the pages you have published, newest first. Paginated (limit, offset); returns compact records without page bodies.

get_page

Look up one page by slug: title, format, status, view/like counts, expiry, and whether it is password-protected. Never returns the body or the password.

get_account

Your plan, page-quota usage and entitlement flags (size cap, custom slug, password, branding). Worth calling before publish so the assistant knows your limits up front instead of failing on them.

delete_page

Permanently delete a page by slug. The link stops working immediately and the slug is freed. Deleting an already-deleted page is a safe no-op.

Notes

  • Ownership and entitlements come from your authenticated account, never from tool input.
  • Published pages live on dochost.co, a separate cookieless content origin โ€” never on the app origin dochost.io. That is what lets dochost serve author HTML under a hardened policy without it touching your session. dochost.io/d/โ€ฆ permanently redirects to dochost.co/d/โ€ฆ, so old links keep working.
  • Free links last 7 days; permanent links, password, custom slug, custom subdomain and branding removal are on the paid plans โ€” see dochost.io.

Links

License

MIT โ€” see LICENSE.