Skip to main content
Glama

Docfarm

Server Details

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

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2025-03-26
URL

TDQS

Score is being calculated.

Available Tools

21 tools
app_apply_editsDoc view, save text edits
Destructive
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
revYesThe rev app_read_doc returned for the bytes being edited.
slugYesThe doc's slug.
editsYes
accountNoEmail address of the farm to act on. Omit for the signed-in farm. Only a connected account is accepted; call list_accounts to see which.
app_read_docDoc view, read
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYesThe doc's slug.
accountNoEmail address of the farm to act on. Omit for the signed-in farm. Only a connected account is accepted; call list_accounts to see which.
check_rebuildCollect a finished rebuild
Destructive
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoName for the rebuilt doc. Defaults to the original's name.
accountNoEmail address of the farm to act on. Omit for the signed-in farm. Only a connected account is accepted; call list_accounts to see which.
rebuild_idYesThe rebuild_id returned by rebuild_doc.
delete_docDelete a doc
Destructive
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugNoShare-link slug or full URL. Alternative to doc_name.
accountNoEmail address of the farm to act on. Omit for the signed-in farm. Only a connected account is accepted; call list_accounts to see which.
doc_nameNoName of the doc to delete.
duplicate_docDuplicate a doc server-sideInspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugNoSource share-link slug or full URL. Alternative to doc_name.
accountNoEmail address of the farm to act on. Omit for the signed-in farm. Only a connected account is accepted; call list_accounts to see which.
doc_nameNoSource doc name (fuzzy-matched).
new_nameYesName for the copy in the user's farm.
finalize_uploadPublish an uploaded doc
Destructive
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesDoc name — same rules as host_html_content (existing name = in-place update).
accountNoEmail address of the farm to act on. Omit for the signed-in farm. Only a connected account is accepted; call list_accounts to see which.
upload_pathYesThe upload_path value returned by get_upload_url.
get_build_briefHouse standard and this farm's brand
Read-only
Inspect

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. ), 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
accountNoEmail address of the farm to act on. Omit for the signed-in farm. Only a connected account is accepted; call list_accounts to see which.
doc_nameNoOptional. The doc to read the brand from (fuzzy-matched). Omit and docfarm picks the most recent doc in the farm that carries a logo.
get_doc_htmlRead a doc's HTML
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugNoShare-link slug or full URL. Alternative to doc_name.
offsetNoCharacter offset to start reading from (default 0). Use the value from the previous response's continuation note.
accountNoEmail address of the farm to act on. Omit for the signed-in farm. Only a connected account is accepted; call list_accounts to see which.
doc_nameNoDoc name. Fuzzy-matched against the caller's own docs first, then docs they collaborate on.
max_charsNoMax characters to return per call (default 200000, max 500000).
strip_data_urisNoDefault true: base64 data URIs ≥1KB are replaced with short placeholders so content isn't crowded out by embedded images. Pass false for the byte-exact original.
get_doc_statusView doc stats
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugNoThe doc's slug or share URL.
accountNoEmail address of the farm to act on. Omit for the signed-in farm. Only a connected account is accepted; call list_accounts to see which.
doc_nameNoName of the doc (fuzzy-matched). Pass this or slug.
get_doc_urlGet download URL
Read-only
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault
slugNo
accountNoEmail address of the farm to act on. Omit for the signed-in farm. Only a connected account is accepted; call list_accounts to see which.
doc_nameNo
ttl_secondsNoLifetime of the signed URL in seconds. Default 3600 (1h), max 86400 (24h).
download_filenameNoIf set, the URL forces a file download with this filename (Content-Disposition: attachment).
get_skillsLoading skills...
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
idNoOne skill id such as "docfarm/onboarding", or several. Returns the full skill.
queryNoWhat the task is about, in plain words. Ignored when id is set.
get_upload_urlGet direct-upload URLInspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
accountNoEmail address of the farm to act on. Omit for the signed-in farm. Only a connected account is accepted; call list_accounts to see which.
host_html_contentHost an HTML doc
Destructive
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
htmlYesFull HTML body
nameYesPage name. To update a doc, reuse its exact title, which keeps the share link. A new or merely similar name creates a new doc.
accountNoEmail address of the farm to act on. Omit for the signed-in farm. Only a connected account is accepted; call list_accounts to see which.
replaceNoOmit normally. Set false to publish a new doc even when the name exactly matches an existing one, which gets a new share link. Set true only when the person asked to replace a doc and you do not have its exact title. It then also overwrites the one doc with a similar name, such as "Pricing v2" for "Pricing", and publishes nothing when no doc or several docs match.
brand_fromNoOptional. Name of an existing HTML doc in this farm whose brand assets this page uses. Required for any DF_ASSET_ token you wrote to resolve to real bytes. Get the tokens from get_build_brief first, then pass the same doc name here.
invite_collaboratorInvite a collaborator
Destructive
Inspect

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, they get an invite email with a signup link. 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugNoShare-link slug or full URL. Alternative to doc_name.
emailYesEmail address of the person to invite.
accountNoEmail address of the farm to act on. Omit for the signed-in farm. Only a connected account is accepted; call list_accounts to see which.
doc_nameNoName of the doc to share.
allow_overwriteYestrue = collaborator's edits overwrite the original; false = edits fork into a copy they own (auto-shared back to the inviter).
list_accountsList connected farms
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

list_docsList your docs
Read-only
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault
accountNoEmail address of the farm to act on. Omit for the signed-in farm. Only a connected account is accepted; call list_accounts to see which.
patch_docEdit a doc (snippet patch)
Destructive
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugNoShare-link slug or full URL. Alternative to doc_name.
accountNoEmail address of the farm to act on. Omit for the signed-in farm. Only a connected account is accepted; call list_accounts to see which.
patchesNoSeveral edits applied atomically. Use this OR before_snippet/after_snippet.
doc_nameNoName of the doc to edit (same name you passed to host_html_content). Use this if you don't have the slug.
after_snippetNoReplacement text. For a single edit.
before_snippetNoExact text to find (must be unique unless occurrence_index given). For a single edit.
occurrence_indexNo0-based index of which match to replace when before_snippet isn't unique
rebuild_docRebuild a deck as a live pageInspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugNoShare-link slug or full URL. Alternative to doc_name.
accountNoEmail address of the farm to act on. Omit for the signed-in farm. Only a connected account is accepted; call list_accounts to see which.
doc_nameNoName of the PDF or PowerPoint doc to rebuild (fuzzy-matched).
brand_fromNoOptional. Name of another HTML doc in the same farm to take brand assets from: its colours, its logo, and any typeface it embeds. Ask the user whether they have one before rebuilding, because it is the difference between a page that looks like their brand and a page that looks generic. Assets ONLY. It never copies the reference doc's layout, orientation or how interactive it is, which are decided from what this document is for.
show_docShow a doc in the chat
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugNoThe doc's slug or share URL.
accountNoEmail address of the farm to act on. Omit for the signed-in farm. Only a connected account is accepted; call list_accounts to see which.
doc_nameNoName of the doc (fuzzy-matched). Pass this or slug.
update_doc_settingsUpdate doc settings
DestructiveIdempotent
Inspect

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; the share link and slug never change, so links already sent keep working. Identify the doc via doc_name (fuzzy-matched) or slug.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugNoThe doc's slug or share URL.
titleNoA new title for the doc (max 500 chars). The link stays the same.
notifyNoNotify the owner on views.
accountNoEmail address of the farm to act on. Omit for the signed-in farm. Only a connected account is accepted; call list_accounts to see which.
ask_nameNoAsk each viewer for their email before showing the doc. Despite the field name it asks for an email, not a name.
doc_nameNoName of the doc (fuzzy-matched). Pass this or slug.
password_onNoRequire a password to view.
password_valueNoThe password. Setting this also turns password_on on.
allow_downloadsNoLet viewers download the original file.
whats_possibleWhat docfarm can do
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 21 tool updates
    • First observedapp_apply_edits
    • First observedapp_read_doc
    • First observedcheck_rebuild
    • First observeddelete_doc
    • First observedduplicate_doc
    • First observedfinalize_upload
    • First observedget_build_brief
    • First observedget_doc_html
    • First observedget_doc_status
    • First observedget_doc_url
    • First observedget_skills
    • First observedget_upload_url
    • First observedhost_html_content
    • First observedinvite_collaborator
    • First observedlist_accounts
    • First observedlist_docs
    • First observedpatch_doc
    • First observedrebuild_doc
    • First observedshow_doc
    • First observedupdate_doc_settings
    • First observedwhats_possible

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    B
    maintenance
    Publish HTML or markdown artifacts (reports, dashboards, demos) as instant shareable links with TTL expiry, social preview cards, and optional password protection. Works with the hosted service or a self-hosted instance.
    1
    15 npm
    13
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Publish Markdown or HTML to a shareable link from your AI assistant, then list, inspect, update or delete your pages. Six tools cover publishing, page management and account usage. Connect through hosted Streamable HTTP with OAuth, or use an API key for headless clients.
    6
    1
    MIT
  • F
    license
    Not graded
    quality
    B
    maintenance
    Enables AI agents to author presentations, reports, and one-pagers as visual documents that humans can edit in a WYSIWYG editor and export to a single HTML file.
    -
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources