AI가 생성한 HTML 페이지를 예측 불가능한 URL로 즉시 게시하고 방문자 분석 데이터를 추적할 수 있습니다.
다른 이름 desper/quick-html-sharing, quick-html-sharing
- 스타
- 1
- Tools
- —
- 다운로드, 30일
- —
- 최신 버전
- 0.2.3
- 마지막 커밋
- 2026년 8월 20일
- 라이선스
- —
Quick HTML Sharing MCP란?
Quick HTML Sharing은(는) MCP server입니다. AI가 생성한 HTML 페이지를 예측 불가능한 URL로 즉시 게시하고 방문자 분석 데이터를 추적할 수 있습니다.
프로젝트 README에서 생성된 요약
Quick HTML Sharing MCP server 정보
이 MCP server는 개발자와 vibe coder가 AI로 생성한 HTML 페이지를 예측 불가능한 URL로 게시하고 방문자 분석 데이터를 추적할 수 있게 해줍니다. 코드를 다른 사람과 공유 가능한 라이브 웹 페이지로 즉시 변환하는 방법을 제공합니다. 이 서버는 stdio 연결을 통해 작동하며, npx 명령어를 통해 Claude Desktop, Cursor, Codex CLI 및 기타 MCP 클라이언트와 호환됩니다.
사용자는 다섯 가지 특정 도구를 사용하여 호스팅된 콘텐츠를 관리할 수 있습니다. 게시를 위한 qhs_share, 업데이트를 위한 qhs_edit, 삭제를 위한 qhs_delete, 분석 확인을 위한 qhs_stats, 그리고 기존 공유 목록을 확인하기 위한 qhs_list가 있습니다. 시스템은 HTML에 JavaScript를 삽입하지 않고도 조회수, 고유 방문자 수, 트래픽 소스 및 방문자 위치를 추적합니다. 또한 실제 사람의 조회수와 Slack 또는 Discord와 같은 앱의 링크 미리보기 호출을 구분합니다. 모든 메타데이터와 조회 이벤트는 Cloudflare D1 및 R2를 사용하여 저장되며, 수정 토큰은 ~/.qhs/shares.json 파일에 로컬로 관리됩니다.
활용 사례
- 1생성된 웹 페이지 게시새로 생성된 HTML 스니펫을 라이브 URL로 변환하여 친구에게 보냅니다.
- 2공유된 콘텐츠 업데이트이미 인터넷에 게시된 페이지의 HTML을 수정합니다.
프로젝트의 README를 바탕으로 작성되었습니다. 모든 활용 사례는 해당 내용의 인용문과 대조하여 확인합니다.
Quick HTML Sharing MCP 설치 방법
형식 확인: 2026년 11월 10일Cursor에 추가Goose에 추가Claude Code에 Quick HTML Sharing MCP 설치
$ claude mcp add quick-html-sharing -- npx -y quick-html-share-mcpCursor에 Quick HTML Sharing MCP 설치
~/.cursor/mcp.json
{
"mcpServers": {
"quick-html-sharing": {
"command": "npx",
"args": [
"-y",
"quick-html-share-mcp"
]
}
}
}VS Code에 Quick HTML Sharing MCP 설치
.vscode/mcp.json
{
"servers": {
"quick-html-sharing": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"quick-html-share-mcp"
]
}
}
}VS Code CLI에 Quick HTML Sharing MCP 설치
$ code --add-mcp '{"name":"quick-html-sharing","type":"stdio","command":"npx","args":["-y","quick-html-share-mcp"]}'Claude Desktop에 Quick HTML Sharing MCP 설치
claude_desktop_config.json
{
"mcpServers": {
"quick-html-sharing": {
"command": "npx",
"args": [
"-y",
"quick-html-share-mcp"
]
}
}
}Codex에 Quick HTML Sharing MCP 설치
$ codex mcp add quick-html-sharing -- npx -y quick-html-share-mcpCodex config.toml에 Quick HTML Sharing MCP 설치
~/.codex/config.toml
[mcp_servers.quick-html-sharing] command = "npx" args = ["-y", "quick-html-share-mcp"]
Gemini CLI에 Quick HTML Sharing MCP 설치
$ gemini mcp add -s user quick-html-sharing npx -- -y quick-html-share-mcpGemini settings.json에 Quick HTML Sharing MCP 설치
~/.gemini/settings.json
{
"mcpServers": {
"quick-html-sharing": {
"command": "npx",
"args": [
"-y",
"quick-html-share-mcp"
]
}
}
}구성
PUBLIC_API_BASEPUBLIC_SHARE_BASE
| 이름 | 설명 | 유형 |
|---|---|---|
| PUBLIC_API_BASE | — | |
| PUBLIC_SHARE_BASE | — |
자동 검사
2026년 11월 15일에 실행됨전체 보고서 →자동 검사를 통과했습니다. 이는 보안 감사가 아닙니다. 코드를 직접 읽고 서버에 필요한 최소한의 권한만 부여하십시오. 검사 방식 · 점수를 높이기 위해 수정할 항목
- 소스 저장소 연결 및 접근 가능desper/quick-html-sharing is public and reachablegithub.com/desper/quick-html-sharing ↗통과
- 패키지가 이 저장소를 소스로 명시quick-html-share-mcp names desper/quick-html-sharing as sourcenpmjs.com/package/quick-html-share-mcp ↗통과
- 빌드 출처(Sigstore 증명)No build attestation published for this release검사되지 않음
- 오픈 소스 라이선스 (OSI)No license결함 발견
- 최근 1년 내 커밋 또는 릴리스Last commit or release 2026-08-20github.com/desper/quick-html-sharing ↗통과
- OpenSSF Scorecard검사되지 않음
- 패키지 이름이 인기 패키지와 유사하지 않음No popular package one edit away from quick-html-share-mcp통과
- 패키지 및 해당 종속성에 중요한 보안 권고 없음99 resolved dependencies checked; no critical advisoryosv.dev ↗통과
- 모델에 대한 숨겨진 지침 없음0 tool descriptions and the README read; no override phrases, credential paths or hidden characters통과
- 파괴적인 도구에 라벨 표시됨검사되지 않음
- 원격 엔드포인트가 MCP 핸드셰이크에 응답검사되지 않음
README
GitHub에서 보기Quick HTML Sharing
Indie SaaS for vibe coders to instantly share AI-generated HTML pages with unguessable URLs and viewer analytics.
Live:
| Surface | URL |
|---|---|
| Dashboard (paste HTML, get URL) | https://qhs.fyi |
| API worker | https://api.qhs.fyi |
| Share worker | https://s.qhs.fyi/`` |
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:
/plugin marketplace add github.com/desper/quick-html-sharing
/plugin install qhs@quick-html-sharing
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
curl -fsSL https://qhs.fyi/install.sh | bash
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:
{
"mcpServers": {
"qhs": { "command": "npx", "args": ["-y", "quick-html-share-mcp"] }
}
}
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
ln -s "$(pwd)/packages/skill/skills/qhs" ~/.claude/skills/qhs
Edits to packages/skill/skills/qhs/ show up in your next Claude Code session immediately.
Dev
bun install
bun run dev:worker # apps/worker on :8787
bun run dev:web # apps/web on :4321
# MCP server
cd packages/mcp && bun run build && node dist/index.js
# Skill helper (standalone)
node packages/skill/skills/qhs/scripts/qhs.mjs share path/to/file.html
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.
# Workers
cd apps/worker
# 1. any unapplied migration (see db/migrations/), e.g.
# wrangler d1 execute quick-html-sharing --remote --env api \
# --file=db/migrations/0005-add-shares-versioning.sql
# 2. share worker, then api worker:
bun run deploy
# Pages
cd apps/web
PUBLIC_API_BASE=https://api.qhs.fyi/api \
PUBLIC_SHARE_BASE=https://s.qhs.fyi \
bun run build
../../node_modules/.bin/wrangler pages deploy dist --project-name=qhs --branch=main
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.
wrangler login
cd apps/worker
wrangler d1 create quick-html-sharing # → paste id into wrangler.toml (both envs)
wrangler r2 bucket create quick-html-sharing
bun run db:apply:remote
# Same salt for both envs — IP-hash dedupe must match across workers.
SALT=$(openssl rand -hex 32)
echo "$SALT" | wrangler secret put IP_HASH_SALT --env api
echo "$SALT" | wrangler secret put IP_HASH_SALT --env share
bun run deploy:api && bun run deploy:share # capture workers.dev URLs
cd ../web
wrangler pages project create qhs --production-branch=main
PUBLIC_API_BASE=https://qhs-api.<your-subdomain>.workers.dev/api \
PUBLIC_SHARE_BASE=https://qhs-share.<your-subdomain>.workers.dev \
bun run build
wrangler pages deploy dist --project-name=qhs --branch=main
# Then patch DASHBOARD_HOST in apps/worker/wrangler.toml to your real
# qhs-XXX.pages.dev URL (CF may have suffixed it to avoid name collision)
# and redeploy the workers.
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.
Quick HTML Sharing MCP 질문
Quick HTML Sharing MCP를 Claude Code에 추가하려면 어떻게 하나요?
터미널에서 claude mcp add quick-html-sharing -- npx -y quick-html-share-mcp를 실행합니다. 모든 프로젝트에서 사용할 수 있게 하려면 --scope user를 추가합니다.
Quick HTML Sharing MCP를 Cursor에 추가하려면 어떻게 하나요?
~/.cursor/mcp.json를 열고 mcpServers 아래에 서버를 추가합니다. 위 설치 섹션에 표시된 Cursor 구성을 사용합니다.
AI 에이전트를 사용하여 HTML을 공유하려면 어떻게 하나요?
사용자가 공유 의사를 밝히면, 에이전트는 HTML 콘텐츠와 함께 qhs_share 도구를 호출해야 합니다.
공유한 페이지를 나중에 수정하거나 삭제할 수 있나요?
네, qhs_edit 또는 qhs_delete 도구를 사용할 수 있습니다. 단, 수정 URL은 서버에 저장되지 않으므로 URL 프래그먼트에 포함된 수정 URL을 반드시 저장해야 합니다.
서비스에서 HTML에 트래킹 스크립트를 삽입하나요?
아니요, 페이지가 제공될 때 서버 측에서 조회수를 집계하므로 JavaScript를 삽입하지 않습니다.