mcpbeat Sign in

Docfarm MCP Server

not responding

Docfarm is listed as active in the registry but did not answer our last check. It exposes 22 tools.

Publish, edit, share and track HTML docs and decks from chat, with view analytics.

Uptime history 29 days of history · worst day 0%
29 days agonow
0.0%
Uptime 24h
0 of 92 checks
22
Tools
read from the server
69 ms
Response time
average over 24h
open, no key
Access
streamable-http

What changed 7

Every tool that appeared, vanished or quietly changed what it asks for. Recorded since 18 October 2026. No other catalogue keeps this.

18 Oct 3 tool descriptions were rewritten host_html_content, invite_collaborator, update_doc_settings
18 Oct 3 tools changed the parameters they ask for finalize_upload, host_html_content, update_doc_settings
18 Oct a tool appeared suggest_link

Docfarm does not always answer

Over the last week it answered 0.0% of our checks. We check every 15 minutes, so you hear about the next outage within the hour — not from your users.

Three servers free · no card

Connect this server

Endpoint below is the one we actually reach during checks — not the one copied from a README. Last verified 1 min ago.

run in your terminal
claude mcp add docfarm --transport http https://mcp.doc.farm/mcp
Settings → Connectors → Add custom connector, then paste this address
https://mcp.doc.farm/mcp
~/.codex/config.toml
[mcp_servers.docfarm]
url = "https://mcp.doc.farm/mcp"
.cursor/mcp.json
{
  "mcpServers": {
    "docfarm": {
      "url": "https://mcp.doc.farm/mcp"
    }
  }
}
.vscode/mcp.json
{
  "servers": {
    "docfarm": {
      "type": "http",
      "url": "https://mcp.doc.farm/mcp"
    }
  }
}

Available tools 22

Read directly from the server with tools/list, grouped by what they act on. If a tool disappears, we record the date.

doc
delete_doc
Permanently delete a doc the user OWNS — removes the document, its share link(s), all view/analytics data, chat, comments, suggestions, collaborators, and the stored file. IRREVERSIBLE. Only the owner can delete. Confirm with the user before calling if there's any ambiguity. Identify the doc via `doc_name` (fuzzy-matched) or `slug`.
get_doc_html
Read the current HTML body of any docfarm HTML doc the user has access to — their own docs OR docs other people have shared with them (as collaborator or via share link). Returns title, share URL, the caller's role (owner / collaborator / reader), and the full HTML. ESSENTIAL precursor to `patch_doc`: call this first whenever the user asks for any change to a doc you don't have in context, so you can see what's there and construct accurate before/after snippets. Pass `doc_name` (easiest, fuzzy-matched) or `slug`. Embedded base64 images are stripped to placeholders by default (huge docs become readable in one call), so hosting a stripped copy back would drop those images from the doc; edit via patch_doc, or re-fetch with strip_data_uris: false for the byte-exact original. Large docs page via offset/max_chars — the response tells you the offset for the next slice.
get_doc_status
Who read a doc and how. Returns the share link, total and unique views, average reading time, when it was last opened, and the ten most recent viewers with their time, pages and whether they read to the end. Use it for 'who saw it', 'how is it doing', 'what is the link', and as the material for a follow-up email that refers to what each person actually read. Owner only; viewer data stays with the doc's owner. Identify the doc via doc_name (fuzzy-matched) or slug.
get_doc_url
Get a time-limited signed URL that downloads the raw file of any doc the user has access to — HTML, PDF, Markdown, anything stored on docfarm. Use this when you need to hand the file off to another tool or LLM, when the user asks for a download link, or when the doc isn't HTML (where get_doc_html doesn't apply). URL expires after `ttl_seconds` (default 3600, max 86400).
update_doc_settings
Change a doc the user OWNS: password protection (password_on / password_value), ask viewers for their email before viewing (ask_name), allow file downloads (allow_downloads), view notifications for the owner (notify), and the doc's title (title). Only the fields you pass are changed. Renaming changes the display title only and keeps the link. To change the link itself, the part after the last slash, pass new_slug. That breaks the old link for everyone who has it, so the first call changes nothing and returns a warning with both links. Pass it on, and only after the person says yes, call again with the same new_slug and confirm_new_link true. Identify the doc via doc_name (fuzzy-matched) or slug.
app
app_apply_edits
Used by the docfarm doc view inside the chat, not by the assistant. Saves text the person retyped in the view as exact edits of the stored HTML, guarded by the revision app_read_doc returned. Assistants edit docs with patch_doc instead.
app_read_doc
Used by the docfarm doc view inside the chat, not by the assistant. Returns a doc's HTML annotated for in-place text editing plus a content revision. Assistants read docs with get_doc_html instead.
rebuild
check_rebuild
Check a rebuild started by `rebuild_doc` and publish it when it is done. Returns the current stage while it is still building, so call it again after a pause. When the rebuild has finished this publishes it as a new HTML doc in the user's farm and returns the share link and the quality scores. Safe to call repeatedly: publishing twice returns the same doc.
rebuild_doc
Rebuild a PDF or PowerPoint the user already has on docfarm into a live HTML page built to the house standard, keeping every fact and reorganising the layout so it reads on a phone. This is the retrofit: it does NOT reproduce the original layout, it rewrites the document into one of four archetypes. Takes about three minutes, so this tool STARTS the rebuild and returns immediately with a rebuild_id. Tell the user it is building, then call `check_rebuild` to collect it. PDF and PowerPoint only today. Before you start, ask the user whether they have another doc in their farm whose brand this should match, and pass it as `brand_from`. It is one question and it is the difference between their brand and a generic page, because an HTML doc in their farm usually carries the real logo file and sometimes the real typeface. Do not ask them how it should look: the shape of the page is decided from what the document is for.
accounts
list_accounts
List the farms this connection can reach: the signed-in account, plus the connected account when the person has one (docfarm's work/personal split, two separate farms held by one person). Call this FIRST whenever a request could concern either farm, or when the person says "my personal", "my work", "my other account", or names an address that is not the signed-in one. Then pass `account` on the tool you actually want. Docs, links, viewers and analytics never mix between the two.
build
get_build_brief
READ THIS FIRST, before writing a single line of HTML for this user. Returns the docfarm house standard (how to pick the page archetype, type scale, spacing, logo rules, motion, budgets and language rules) plus this user's own brand: their colours, their typefaces, and asset tokens for their real logo and any font file they own. About 3,000 tokens and it is the difference between a page that looks like their company and a generic template. Write any asset token verbatim where the file goes (e.g. <img src="DF_ASSET_LOGO_1">), then pass the same doc name as `brand_from` on host_html_content and docfarm swaps in the real bytes. Never paste base64 yourself: the token is smaller, exact and free. Every page published to docfarm is scored against this standard on the way in, so reading it first is how you score well the first time instead of fixing afterwards.
docs
list_docs
List the user's docs: first the ones they own, each with its share link, then the ones other people shared with them and how an edit to each behaves (overwrites the original, or makes the user's own copy).
duplicate
duplicate_doc
Server-side copy of any HTML doc the user can read (their own OR shared with them) into their own farm under a new name. THE fast path for building a modified version of an existing doc: content never passes through your context — duplicate in ~1s, then use patch_doc for the differences. Vastly faster than get_doc_html + re-hosting.
finalize
finalize_upload
FAST PATH step 2/2: after PUTting the file to the signed URL from `get_upload_url`, call this to publish. NEW name → new doc + share link. Name matching an EXISTING HTML doc → updated in place, same share link. Verifies the uploaded object exists before publishing.
host
host_html_content
Host an HTML doc on docfarm and return its share link. A name that exactly matches an existing doc's title, ignoring case and surrounding spaces, overwrites that doc in place, keeping its share link, password, and view stats, so anyone holding the URL sees the new version. Any other name creates a new doc. A similar but different name, such as "Pricing" next to "Pricing final", also creates a new doc and leaves the other one untouched, and the response names that doc so you can offer to update it instead. To update a doc, reuse its exact title. Takes the HTML inline, so it works in any environment. For a small change to an existing doc, `get_doc_html` + `patch_doc` sends far less content. Every page is scored against the docfarm house standard on the way in and the score comes back in the response; call `get_build_brief` BEFORE you write the HTML so you meet the standard first time rather than fixing afterwards. Before you publish a NEW doc, call `suggest_link`, show the person the link it returns and ask whether they want a different ending, then pass the ending they settle on as `slug`.
invite
invite_collaborator
Invite someone to collaborate on a doc the user OWNS, by email, so it lands in their docfarm. If they're already a docfarm user the doc appears in their farm immediately; if not, it waits until they sign up with that address, and the result says whether an invite email went out. REQUIRES the collaborator's `email` AND `allow_overwrite` (true = their edits overwrite the original; false = their edits fork into a copy they own, auto-shared back to the inviter). If you don't have the email, ask for it. If the user hasn't said whether the person should edit directly or only make a copy, ask before calling, don't guess. Identify the doc via `doc_name` (fuzzy-matched) or `slug`.
patch
patch_doc
Edit an existing hosted doc by replacing a snippet of its HTML. DEFAULT TOOL for ANY edit to a doc the user already has — typo, copy change, restyle, new section, anything. ~50 tokens instead of ~7000 for re-hosting. Workflow: (1) if you don't have the current HTML in context, call `get_doc_html` first to read it. (2) construct `before_snippet` as a unique chunk of the existing HTML and `after_snippet` as its replacement. Pass EITHER `doc_name` (easiest) OR `slug`. Ambiguous match → fails with context for each candidate. Preserves share link, password, view counts, comments. Patching sends only the changed snippet, so it costs far less than re-sending a whole doc. For several edits at once ("fix the typo AND change the CTA AND update the date") pass a `patches` array instead of before/after: all of them land atomically or none do, each validated after the previous one applied.
show
show_doc
Open a doc inside the chat as a live view of the page. In hosts that render MCP Apps (claude.ai, Claude Desktop, Claude mobile) the doc appears in the conversation; the person can read it, switch on Edit text, click any heading or paragraph, retype it and save, and the share link shows the change at once. Call it when they ask to see, preview, check or hand-edit a doc, and whenever they paste a doc.farm link into the conversation: open it with show_doc first, then answer. host_html_content, patch_doc and duplicate_doc already show this view after they run, so do not call show_doc straight after them. Text-only hosts get the share link.
skills
get_skills
Load a Docfarm skill, written instructions for a task that you then follow. docfarm/onboarding is the short tour for someone who has just connected Docfarm. Pass `id` (one id, or an array) for the full skill, `query` to search by keyword, or nothing to list every skill by name and description. When the person asks to use a Docfarm skill by name, call this with that id first.
suggest
suggest_link
The share link a NEW doc would get, before you publish it. People want to see and name their link before it exists, because changing it later breaks the copies already sent. So before host_html_content or finalize_upload creates a new doc, call this with the name you will publish under, show the person the full link, and ask whether they want a different ending, the part after the last slash. Pass the ending they settle on to the publish call as `slug`. Skip the question when they already chose the link or asked you to just publish. To check an ending they suggest, pass it as `slug` here. The answer says whether it is free and offers one that is if not. A name that matches one of their docs returns that doc's current link instead, because publishing under it updates that doc and keeps its link.
upload
get_upload_url
Step 1 of 2 for hosting a large HTML file that is already on disk, without sending its bytes through the model's context. Returns a short-lived signed upload URL; upload the file to it with a direct HTTP PUT (Content-Type: text/html), then call `finalize_upload` with the returned upload_path and a doc name. Requires a shell and unrestricted outbound HTTP, so the PUT will not succeed where outbound network access is restricted; `host_html_content` accepts the HTML inline and works in any environment.
whats
whats_possible
Show a grouped overview of everything docfarm can do for the user — reading, editing, sharing, tracking, drafting follow-ups, and collaborating. Call this when the user asks 'what can you do?', 'what does docfarm do?', 'show me what's possible', 'help', or similar capability questions. Cheap and self-contained — no doc lookup needed.

Endpoints

URLTransportStateLatencyChecked
https://mcp.doc.farm/mcp streamable-http answering 69 ms 1 min ago

Alternatives to Docfarm

same job, measured the same way
blink artifact
by blinkbrosai

Publish HTML, docs, slides and dashboards from your AI CLI; edit them live with people.

answering
Kleap
by kleaphq

Build, edit, publish, and manage websites and web apps with Kleap hosting, domains, and analytics.

35 tools answering
Yardel
by yardel

Publish HTML, Markdown, decks and dashboards as private pages; share them with named people.

answering
L1NK
by l1nk

Short links with QR, custom domains and bot-free click analytics. Create, edit, delete, analyze.

7 tools answering
HTMLvault
by htmlvault

Publish and manage secure HTML links: PII/secret scanning, batch create, patch edits, analytics.

answering
Quick HTML Share MCP
by desper

Share AI-generated HTML from your coding agent. Unguessable URL + viewer analytics.

56 installs/wk local only
Tech Stack Check
by bkeller-research

Detect a website's CMS, analytics, chat, payments and ad pixels, with evidence and tracking IDs.

answering
Openqr
by sam-moreton

Generate QR codes; create, edit & track dynamic QR codes with scan analytics. Free, no watermark.

23 tools answering

Docfarm — questions

Answers built from our own checks of this server.

What can Docfarm do?
It exposes 22 tools, read directly from the server on our last check. Among them: app_apply_edits, app_read_doc, check_rebuild, delete_doc, duplicate_doc, finalize_upload and 16 more. The full list with descriptions is on this page — we take it from the server itself via tools/list, not from a README. How MCP servers expose tools in the first place →
What is Docfarm mostly used for?
Its tools cluster around doc, rebuild and app. That is what this server is built to work with — the grouping comes from the actual tool names, not from a category we assigned.
Is Docfarm working right now?
We send a real MCP handshake every 15 minutes. Over the last 24 hours 0 of 92 checks got a reply (0.0%), average response time 69 ms. The bar chart above shows every period we have measured.
The registry lists Docfarm as active — why does it not respond?
The official MCP registry stores what the author submitted; it does not verify that the server still runs. We check the endpoint ourselves, and this one does not answer. Catalogues that copy the registry without checking will show it as working.
How do I connect Docfarm?
Copy the ready config from this page. We generate it for Claude Code, Claude Desktop, Codex, Cursor and VS Code, each in the form that client actually reads. It is a remote server, so there is nothing to install — the client connects to the address.
Does Docfarm need an API key?
No. Docfarm completed a full MCP handshake with us as an anonymous client and listed its tools without asking for anything. All 22 of them are readable on this page. This is what we observed, not what the docs claim.