Publish an HTML document as a shareable link that opens in one tap and previews as a card in chat apps; publish, update, and export to PNG/PDF/Word.
Install
# from GitHub (first run asks for allowBuilds approval — follow the hint, retry)
dsh plugin --profile web add github:jcaiagent7143-ui/sendpage-mcp
Any plugin you install runs third-party code with your own permissions — it can read your files, use your credentials, and reach the network, and tool approvals don’t sandbox it. GitHub-sourced plugins also run build scripts at install time — pnpm blocks those until you allow them, so an install can stop with ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED or ERR_PNPM_IGNORED_BUILDS; dsh prints the exact key to add under allowBuilds in your profile’s pnpm-workspace.yaml, and the install works on the next run. Allowing a build is a trust decision: only install sources you trust, and pin a commit (github:owner/repo#sha).
README
Publish an HTML document as a shareable link the recipient can open in one tap — without leaving the conversation that wrote it.
Endpoint: https://sendpageapp.com/mcp · Transport: Streamable HTTP
(stateless) · Auth: bearer API key, free, no signup
Why
An HTML file is a set of drawing instructions, not a document. Sent as an attachment it arrives as raw source, gets stripped by corporate mail filters as a known phishing vector, or simply will not open on a phone — which is where most people read first. Printing to PDF loses interactive charts and quietly cuts the right-hand columns off wide tables, which is the failure worth fearing: nobody notices until a client asks about a figure that is not in the document.
A link avoids all of it. The recipient taps once and reads the page as designed, on whatever device they have.
Connect it
Generate a free key at https://sendpageapp.com/docs/mcp, then:
claude mcp add --transport http sendpage https://sendpageapp.com/mcp \
--header "Authorization: Bearer sp_live_..."
Or by hand, in .mcp.json:
{
"mcpServers": {
"sendpage": {
"type": "http",
"url": "https://sendpageapp.com/mcp",
"headers": { "Authorization": "Bearer sp_live_..." }
}
}
}
Tools
| Tool | What it does |
|---|---|
publish_document |
HTML in, share link out. Returns the link, the document id and an edit token — plus a warning naming any images that would fail to load. |
update_document |
Replace the contents or title. The link does not change, so a typo found after sending costs a correction rather than a second URL. |
list_documents |
Documents published with this key, with links and view counts. |
The missing-image warning
AI tools emit a page plus an images/ folder, and people paste only the HTML —
so the images 404 and every reader sees broken icons. publish_document returns
the offending files by name, so they can be inlined as data URIs and the
document updated before the link is handed over. This is the single most common
way a published page is quietly wrong.
The Skill
skills/sendpage/SKILL.md teaches Claude when to
offer a link, how to repair a document whose images would not load, and to update
an existing document rather than publish a second one.
mkdir -p ~/.claude/skills/sendpage
curl -o ~/.claude/skills/sendpage/SKILL.md \
https://sendpageapp.com/skills/sendpage/SKILL.md
Limits
- Free: 5 documents a month, each with a small "Made with SendPage" footer. Pro removes both.
- 2 MB per document, inlined images included.
- Links are unlisted, not secret. Anyone with the URL can read the document,
and
robots.txtkeeps them out of search results. Password protection exists for anything confidential, and it gates the exports and the preview thumbnail too — not just the page. - The API key is stored only as a hash. It is shown once when generated and cannot be recovered; if you lose it, revoke it and generate another.
Notes on the transport
Stateless Streamable HTTP: a single POST returns one JSON body, and GET
answers 405 to decline the optional server-initiated SSE stream. Sessions are
never created, so any instance can serve any request — which is what makes the
server hostable on a serverless runtime, where a long-lived SSE connection would
be killed by the execution limit rather than by anything the client did.
Without a key the endpoint answers 401 with a WWW-Authenticate header —
that is a missing credential, not a broken server.
Issues
This repository holds the connection metadata and the Skill. For problems with the server itself, open an issue here.
Use it in DeepSeek Harness (dsh)
This repo is also a DeepSeek Harness bundle — install it and SendPage's tools mount straight into dsh, with no manual MCP config:
dsh plugin --profile web add https://github.com/jcaiagent7143-ui/sendpage-mcp
Then set your free key (get one at https://sendpageapp.com/docs/mcp) so publishing
and exporting work — in the environment, or in $DSH_HOME/.credentials.yaml:
SENDPAGE_API_KEY: <your key>
The tools appear under the sendpage namespace — mcp__sendpage__publish_document,
mcp__sendpage__export_document (png/pdf/docx), and the rest. Prefer to wire the raw
endpoint yourself? It's https://sendpageapp.com/mcp (Streamable HTTP).
Links
More in this category
tt-a1i/archify#integrations/deepseek-harness★ 73620
Generate validated, self-contained interactive architecture, workflow, sequence, data-flow, and lifecycle diagrams from repositories or system descriptions.
dream-num/dsh-univer-office★ 429
Give DeepSeek Harness a real office environment. Univer Office Plugin brings spreadsheets, docs, slides, canvases, relational tables, and more into one runtime — with connected data, validation, versioned changes, and isolated worktrees for multi-agent collaboration.
PerryLink/dsh-industry-research★ 182
Deterministic industry research reports for DeepSeek Harness — company and industry research flows produce structured, verifiable reports from staged evidence.
HuanLinOTO/dsh-plugin-mineru★ 47
Expose MineRU document parsing tools to the model.
kw78/dsh-office-tools★ 26
Workspace-safe Office tools for agents: create/read Word, create/read/update Excel, and create/read PowerPoint decks with PNG/JPG/GIF image placement.
PolinniZhong/dsh-knit★ 16
Lists the Markdown documents, images and video that already exist anywhere in the session workspace in the DSH sidebar, ranked by relevance to the current conversation: recent messages are matched locally against document title, summary and body with IDF weighting, with no model calls and no network. Because the list is scanned from the workspace instead of remembered, restarting DSH or starting a new session does not empty it. Images and video preview in place, with relative-path images resolved and video streamed over HTTP Range. A references bar under the preview header shows which documents cite the one being previewed and which it cites, with one click to jump between them. The same ranking is exposed to the agent as a knit_docs tool, which returns the most relevant documents along with the passage that matched in each, where one is found.
Community comments
Comments are public GitHub Discussions. Loading them connects to GitHub and Giscus; a GitHub account is required to post.