dochost MCP server
[dochost-mcp MCP server]
English | 简体中文
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 eight tools — publish, update_page, get_page_content,
set_page_options, 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.
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):
Then run /mcp inside Claude Code and approve in the browser. Add --scope user
to use it in every project.
Gemini CLI (extension):
Or add a remote HTTP server in ~/.gemini/settings.json:
Claude Desktop / Cursor / VS Code / Windsurf — add a remote HTTP server:
You authorize once via OAuth in the browser; the assistant then publishes as
you, and output follows your dochost plan's entitlements.
Stdio / Docker bridge
For clients or directory evaluators that need a local stdio process, this
repository includes a bridge to the same hosted MCP endpoint:
Or run it in Docker:
Node.js 22 or newer is required. The bridge forwards the live tools and schemas;
it is not a self-hosted copy of the dochost application. Initialization and
tool discovery are public. Interactive clients can use OAuth; headless tool
execution needs an existing DOCHOST_API_KEY runtime secret (Docker:
docker run --rm -i -e DOCHOST_API_KEY dochost-mcp).
Maintainers: see Glama claim, build and release instructions.
Which auth method?
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:
Per-host install guides:
One-shot from a shell: examples/publish.sh.
Tools
Eight 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.
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.
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.
get_page_content
Read back the current Markdown or HTML of one of your pages by slug. Call it
before update_page whenever the assistant did not write the live content itself
in the same conversation — update_page replaces the body wholesale, so editing
from memory silently discards edits made elsewhere, including in the browser.
Returns version and sha256; pass them to update_page as ifVersion /
ifSha so the write is refused instead of overwriting a change it did not read.
Expired pages are readable, and updating one republishes it on the same URL.
set_page_options
Change a published page's visibility, search-engine indexing or password
without republishing it — the URL, view count and content stay the same.
Parameters: slug (required), public, searchable, password,
removePassword; send only the fields to change. Turning a paid capability off
never needs an entitlement; turning one on is checked against the current plan.
A password always forces the page private, so asking for both public: true and
a password is refused. Branding is not settable here.
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.