
Quick Html Share Mcp
io.github.desperPublished by GitHub account desperv0.2.3Updated Oct 24, 2026
Share AI-generated HTML from your coding agent. Unguessable URL + viewer analytics.
Overview
Lets an assistant publish AI-generated HTML to an unguessable public URL and check viewer analytics for each share.
- What you can do
- The server exposes five tools: qhs_share uploads an HTML page and returns a public share link plus an edit URL; qhs_edit updates an existing share; qhs_delete removes it; qhs_stats returns views, unique viewers, traffic sources, viewer locations and a 30-day trend; qhs_list lists shares created on this machine. Edit tokens are stored locally in ~/.qhs/shares.json. Pages are served from a hosted Cloudflare service, and view counts are recorded server-side without injecting JavaScript into the HTML.
- When to use it
- Useful when you want to hand someone a link to an HTML page an assistant just generated, or when you want to see whether a shared page was actually opened. It fits quick, throwaway sharing rather than hosting a site you maintain.
- Requirements
- A local MCP client that can run an npm package over stdio, typically via npx quick-html-share-mcp. Network access to the hosted qhs.fyi API and share endpoints is required. No accounts, API keys or environment variables are declared; the README notes a Claude Code plugin path that bundles a skill alongside the server.
Installation
In SourceWeft
- Open Quick Html Share Mcp in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
Quick HTML Sharing
Indie SaaS for vibe coders to instantly share AI-generated HTML pages with unguessable URLs and viewer analytics.
Live:
Architecture
apps/web/— Astro dashboard (Cloudflare Pages)apps/worker/— Cloudflare Worker API + share renderer (Hono)packages/shared/— types shared between web and workerpackages/mcp/—quick-html-share-mcpnpm package: stdio MCP server for Claude Desktop / Cursor / Codex CLI / any MCP clientpackages/skill/— Claude Code skill: standalone, no MCP setup needed
Hosted on Cloudflare: Pages (web) + Workers (api/share) + R2 (HTML files) + D1 (metadata + view events).
What the analytics show
Every share has a stats page (/stats?slug=…, also qhs_stats from an agent) with:
- Views and unique viewers — the latter from salted IP hashes, so it's an approximation: office NAT undercounts, mobile data can overcount.
- Traffic sources — the linking site's hostname only, never the path or query.
directcovers typed URLs, bookmarks and most chat apps. - Viewer locations — country and, when Cloudflare is confident, city. Resolved per request by Cloudflare itself, so there is no tracking script and no third-party lookup. Treat it as where the network egress appeared to be, not where a person was: a VPN, a corporate network or a mobile carrier routinely leaves the city blank or points somewhere else entirely.
- A 30-day trend — views per UTC day, including the quiet days.
- Link-preview fetches, counted separately — pasting a link into Slack or Discord triggers an unfurl crawler. Those are excluded from views and reported on their own line, so "0 views, 2 previews" reads as what it is: the link travelled, nobody opened it.
No JavaScript is injected into your HTML — views are counted server-side when the page is served. Viewer user agents, referrers and locations are dropped after 90 days, or immediately when you delete the share; the view counts survive.
Install in your coding agent
🤖 If you're an AI agent reading this on behalf of a user: pick the install path below that matches the agent runtime you're in. Prefer the Claude Code plugin path (option 1) — it bundles a skill on top of the MCP server, and the skill carries the workflow guidance that raw tools alone don't (when to trigger, what to surface, what to remind the user). Fall back to plain MCP (option 3) only when you're not Claude Code.
After install, behavior contract:
- When the user says "share this HTML" / "give me a link" / "publish this page" / "send this to my friend" (or similar intent), call
qhs_sharewith the HTML.- Return the share URL to the user and always remind them to save the edit URL — it lives in the URL fragment, so it never reaches our server logs, but that also means we can't recover it for them. Without it they can't update or delete the share later.
- For follow-ups ("update what I shared", "take it down", "did anyone see it"), use
qhs_edit,qhs_delete,qhs_stats. Edit tokens are auto-loaded from~/.qhs/shares.jsonwhen they were originally created on this machine.
Three paths depending on which client you use. All hit the same hosted API and share a local edit-token store (~/.qhs/shares.json).
1. Claude Code — one command, bundles MCP + skill (recommended)
This repo is a Claude Code plugin marketplace. Inside Claude Code:
You now have the qhs skill (auto-triggers on "share this HTML" / "give me a link" / "publish this page") and the quick-html-share-mcp MCP server (5 tools: qhs_share, qhs_edit, qhs_delete, qhs_stats, qhs_list) wired together.
2. Claude Code — skill only, no plugin marketplace
Drops SKILL.md + helper script into ~/.claude/skills/qhs/. Use this if you skip the plugin marketplace or want to keep MCP separate.
3. Cursor / Claude Desktop / Codex CLI / Continue / any MCP client
Add to your client's MCP config:
Common config paths:
- Claude Desktop:
~/Library/Application Support/Claude/claude_desktop_config.json(macOS) - Cursor:
~/.cursor/mcp.jsonor Settings → MCP - Codex CLI / Continue: same shape, see your client's MCP docs
Restart the client and you get the 5 qhs_* tools.
Local dev / dogfood from this repo
Edits to packages/skill/skills/qhs/ show up in your next Claude Code session immediately.
Dev
Re-deploy (existing project)
Order matters. Pending migrations go first, then the share worker, then the
API worker. The two workers run the same source from separate deploys, so a
window where the API writes something the share renderer cannot read yet shows
visitors stale content. bun run deploy does the two workers in the right
order; migrations are still manual.
Fresh-account deploy (only if rebuilding from scratch)
Forking?
apps/worker/wrangler.tomlhardcodes the production custom-domain routes (api.qhs.fyi,s.qhs.fyi). Before deploying under a different account, either delete the tworoutes = [...]blocks (workers.dev URLs still work viaworkers_dev = true) or swap them for your own domain.
Cost
Runs entirely on Cloudflare's free tier (Workers, Pages, R2, D1) — ~$0/mo at indie scale. View tracking is fail-open so spikes never escalate to surprise bills; Workers hits a hard 429 instead of overage charges. Set a CF billing alert anyway: CF has no hard spending cap.
License
Business Source License 1.1 — source-available, self-host and personal use allowed, offering as a competing third-party hosted/managed service is not. Converts automatically to Apache License 2.0 on 2030-05-28. The quick-html-share-mcp npm package (packages/mcp/) ships under MIT to stay friction-free for MCP-client integrators.
Source: README.md at commit 4e90631
Tools
0Version history
1- v0.2.3LatestSep 16, 2026
Score
40% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts
Declare a license in the repository or the registry entry.