
How to Publish a Page From Gemini CLI, Codex, Cursor, VS Code or Windsurf
Five coding assistants, one MCP server. The exact install command or config file for each — including the Gemini CLI extension — what the first tool call looks like, and how to ask for a page and get a link back without leaving the terminal.
Coding assistants produce a lot of pages: a README you want a teammate to read on their phone, a generated HTML prototype, release notes, a report. Every assistant on this list speaks MCP, and dochost's server gives all of them the same publish tool. This guide is the per-client setup — the general MCP guide covers Claude, ChatGPT and API keys — followed by what actually happens on the first call.
The server URL is the same everywhere:
https://dochost.io/api/mcpGemini CLI
Gemini CLI installs dochost as an extension, which bundles the MCP server and a short context file that tells Gemini when to reach for it. One command:
gemini extensions install https://github.com/zyli5313/dochost-gemini-extensionGemini asks you to confirm the install (add --consent to skip the prompt in scripts). Then check it is registered:
$ gemini extensions list
✓ dochost (1.0.0)
Path: ~/.gemini/extensions/dochost
Source: https://github.com/zyli5313/dochost-gemini-extension (Type: git)
Context files:
~/.gemini/extensions/dochost/GEMINI.md
MCP servers:
dochost
$ gemini mcp list
dochost (from dochost): https://dochost.io/api/mcp (http)No key, no config edit. The first time Gemini calls a dochost tool it opens your browser to a dochost sign-in page; approve once and the CLI keeps the session. Update later with gemini extensions update dochost.
Codex
Two commands — one to add the server, one to sign in:

codex mcp add dochost --url https://dochost.io/api/mcp
codex mcp login dochostThe second command opens the browser for the OAuth approval. Codex lists the server under codex mcp list afterwards.
Cursor
Cursor reads MCP servers from a JSON file. Add dochost to ~/.cursor/mcp.json (create the file if it does not exist), or to .cursor/mcp.json inside one project to scope it there:

{
"mcpServers": {
"dochost": { "url": "https://dochost.io/api/mcp" }
}
}Then Settings → MCP: dochost appears in the list. Click it, approve in the browser, and the server's status turns green with the tool list under it.
VS Code (GitHub Copilot agent mode)
One terminal command registers the server with VS Code:

code --add-mcp '{"name":"dochost","url":"https://dochost.io/api/mcp"}'Open Copilot Chat in Agent mode; the first time it wants to use a dochost tool, VS Code shows an authorization prompt and opens the browser. If you would rather edit a file, the same entry goes in .vscode/mcp.json under "servers".
Windsurf
Windsurf uses serverUrl rather than url in its config, at ~/.codeium/windsurf/mcp_config.json:

{
"mcpServers": {
"dochost": { "serverUrl": "https://dochost.io/api/mcp" }
}
}Reload Windsurf, open the MCP panel, and authorize dochost from there.
The first call
Whichever client you use, the flow from here is identical. Ask in plain language:
Publish README.md as a dochost page and give me the link.
The assistant calls publish with the file's contents. Three things to know about what comes back:
- The link is on
dochost.co, e.g.https://dochost.co/d/k3m9x2ab. It is live the moment the tool returns — Markdown renders immediately, HTML may spend a few seconds in review first. - The page is unlisted by default. It is not on Explore unless you say "make it public". Add "with the password …" or "at the slug release-notes" on a Pro or Max account and those options are honoured too.
- It publishes as you. Whatever plan the signed-in account is on decides the page's lifetime and limits: 7 days and 1 MB on free, permanent on Pro or Max. The page appears in your dashboard next to everything published from the website.
The other five tools work the same way: "list my pages", "update the page at that link with this new version" (update_page keeps the URL and the view count), "delete it". Calls are limited to 20 publishes a minute and 300 an hour, which is far more than a person hits and enough to notice a script stuck in a loop.
If the tool never appears
- The client shows the server but no tools. Authorization has not completed. Look for a pending browser tab, or run the login step again (
codex mcp login dochost, or click the server in Cursor's settings). - Gemini says the extension is untrusted.
gemini extensions installpauses on a workspace-trust prompt in some directories; answer Y, or run it from your home directory. - You want no browser at all — a cron job, a CI step, an agent on a server. Use an API key as a bearer token instead of OAuth. Same URL, same tools.
更多文章

How to Collect Form Responses From a Published dochost Page
A third of the HTML pages on dochost have an input box, and most of them send the answer nowhere. Here is the pattern that works — a fetch() to any endpoint that accepts JSON — with a live demo and drop-in code for Formspree, Supabase and Google Sheets.

Notion Public Pages vs dochost: Sharing a Doc Outside Your Workspace
Notion can publish any page to the web — but for a one-off doc share, compare setup, load speed, Markdown import, raw HTML, and link lifespan with dochost.

How Edit Links Work: Update a dochost Page Without an Account
Every page published without signing in comes with a private edit link. Open it, change the content, click Update page — the share link, views and expiry stay exactly as they were. What the link can and cannot do, why it is secret, and what to do when it stops working.
邮件列表
加入我们的社区
订阅邮件列表,及时获取最新消息和更新