Docfarm

io.github.lavanry由 GitHub 帳號 lavanry 發布v1.0.0更新於 Oct 24, 2026

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

已驗證Streamable HTTP可網頁執行效率與工作流檔案與儲存資料與分析

概覽

AI 產生的概覽

Docfarm 讓助理發佈、編輯、分享並追蹤 HTML 文件與簡報,包含瀏覽分析與協作者邀請。

可以做什麼
列出並讀取使用者的文件(含他人分享的文件),取得 HTML、PDF、Markdown 文件的原始檔或限時下載連結。將 HTML 內容或已上傳的大檔案發佈為附分享連結的託管文件,並可預覽新文件將取得的連結。透過替換 HTML 片段編輯現有文件、複製文件,或把 PDF 與 PowerPoint 重建為適合手機閱讀的 HTML 頁面。管理密碼保護、訪客信箱收集、下載權限、通知與標題等擁有者設定,以及刪除文件。查看誰讀過文件,包含瀏覽次數、閱讀時間與最近訪客,並以電子郵件邀請協作者。載入 Docfarm 技能與建站規範,並在對話中以內嵌即時檢視顯示文件。
適用情境
適合把對話產出變成可分享的網頁或簡報、持續就地修改、控制可見範圍,並了解收件者是否真的讀過。也適合把既有的 PDF 或投影片轉成適合手機閱讀的 HTML。
執行需求
遠端 MCP 端點 mcp.doc.farm,透過 streamable HTTP 存取;未宣告任何套件、環境變數或請求標頭。需要 Docfarm 帳號,連線可能同時存取已登入的農場與另行連接的帳號。
安裝前請注意
多個工具會修改或銷毀資料:以既有標題發佈會就地覆蓋該文件並保留其連結,delete_doc 不可復原,會刪除文件、連結、分析資料、留言與儲存檔案。設定變更可能啟用密碼保護或信箱收集,邀請會向第三方寄送郵件。覆蓋或刪除前應先與使用者確認。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Docfarm,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。

交給代理程式安裝

把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。

閱讀 https://sourceweft.com/mcp/io.github.lavanry%2Fdocfarm/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。

檢視代理程式所依據的安裝指南

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。

{
  "mcpServers": {
    "docfarm": {
      "type": "http",
      "url": "https://mcp.doc.farm/mcp"
    }
  }
}

工具

22

whats_possible

What docfarm can do

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.

無需輸入參數。

get_skills

Loading 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.

輸入參數idquery

get_build_brief

House standard and this farm's brand

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.

輸入參數accountdoc_name

list_docs

List your 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).

輸入參數account

get_doc_status

View doc stats

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.

輸入參數slugaccountdoc_name

update_doc_settings

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.

輸入參數slugtitlenotifyaccountask_namedoc_namenew_slugpassword_onpassword_valueallow_downloadsconfirm_new_link

delete_doc

Delete a 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`.

輸入參數slugaccountdoc_name

invite_collaborator

Invite a 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`.

輸入參數slugemail必填accountdoc_nameallow_overwrite必填

host_html_content

Host an HTML doc

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`.

輸入參數html必填name必填slugaccountreplacebrand_from

duplicate_doc

Duplicate a doc server-side

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.

輸入參數slugaccountdoc_namenew_name必填

get_upload_url

Get direct-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.

輸入參數account

finalize_upload

Publish an uploaded doc

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.

輸入參數name必填slugaccountupload_path必填

get_doc_html

Read a doc's 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.

輸入參數slugoffsetaccountdoc_namemax_charsstrip_data_uris

get_doc_url

Get download 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).

輸入參數slugaccountdoc_namettl_secondsdownload_filename

patch_doc

Edit a doc (snippet patch)

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.

輸入參數slugaccountpatchesdoc_nameafter_snippetbefore_snippetoccurrence_index

rebuild_doc

Rebuild a deck as a live page

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.

輸入參數slugaccountdoc_namebrand_from

check_rebuild

Collect a finished 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.

輸入參數nameaccountrebuild_id必填

show_doc

Show a doc in the chat

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.

輸入參數slugaccountdoc_name

app_read_doc

Doc view, read

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.

輸入參數slug必填account

app_apply_edits

Doc view, save text 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.

輸入參數rev必填slug必填edits必填account

list_accounts

List connected farms

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.

無需輸入參數。

版本歷史

1
  1. v1.0.0最新Oct 11, 2026

評分

已滿足適用檢查項的 83%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通必需25 分
  • 已宣告認證方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分

    請宣告包含 README 的 GitHub 儲存庫,或在 OAuth 受保護資源後設資料中提供 resource_documentation。

  • 授權條款不適用

    託管服務按其提供方的條款使用,因此這裡不要求授權條款。此檢查項不計入百分比。