GitHub
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
제작자가 쓴 설명(영어 원문)
Share agent-generated Markdown as links — GitHub gists today, your own server tomorrow.
이 세 가지는 절대 하나의 점수로 합치지 않아요. 의견, 측정, 인기는 서로 다른 것이니까요.
이 서버는 아직 쉬운 말로 된 요약을 쓰지 못했어요. 아래는 레지스트리에서 읽어 온 사실이에요.
쓰고 있는 AI 앱을 고른 다음 설정을 복사하세요.
SHAREDOC_BACKEND, SHAREDOC_PUBLIC_URL필요한 것
어떤 앱을 쓰세요?
위에서 앱을 고르세요. 기억해 두었다가 다음부터는 버튼에 “…에 설치”라고 표시해요.
Claude Desktop → Settings → Developer → Edit Config를 열고 claude_desktop_config.json에 이 내용을 붙여 넣으세요
{
"mcpServers": {
"sharedoc": {
"command": "npx",
"args": [
"-y",
"sharedoc-mcp"
],
"env": {
"SHAREDOC_BACKEND": "your-value",
"SHAREDOC_PUBLIC_URL": "your-value"
}
}
}
}터미널에서 이 명령어를 실행하세요
claude mcp add sharedoc --env SHAREDOC_BACKEND=your-value --env SHAREDOC_PUBLIC_URL=your-value -- npx -y sharedoc-mcp실행하기 전에 빈 값을 채워 주세요.
프로젝트의 .cursor/mcp.json 또는 ~/.cursor/mcp.json에 붙여 넣으세요
{
"mcpServers": {
"sharedoc": {
"command": "npx",
"args": [
"-y",
"sharedoc-mcp"
],
"env": {
"SHAREDOC_BACKEND": "your-value",
"SHAREDOC_PUBLIC_URL": "your-value"
}
}
}
}브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.
프로젝트의 .vscode/mcp.json에 붙여 넣으세요
{
"servers": {
"sharedoc": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"sharedoc-mcp"
],
"env": {
"SHAREDOC_BACKEND": "your-value",
"SHAREDOC_PUBLIC_URL": "your-value"
}
}
}
}브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.
이 서버는 내 컴퓨터에서 실행되는데, ChatGPT는 인터넷에 있는 서버에만 연결할 수 있어요. 다른 앱을 고르세요.
선택한 앱은 이 기기의 쿠키에만 저장돼요. 계정은 필요 없어요.
SHAREDOC_BACKEND envSHAREDOC_PUBLIC_URL env이 설정은 제작자의 레지스트리 정보로 만들었어요. README와 다르면 README를 따르세요.
내 컴퓨터에서 실행돼요. 설치하면 AI 앱에 도구 목록이 나타나요.
누구나 볼 수 있는 정보를 점검했고, 코드는 읽지 않았어요. 해당하지 않는 항목은 개수에서 뺐어요. · 2026년 11월 6일 점검
레지스트리 이름이 GitHub 계정 AugustusW 기준으로 확인되었고, 이 계정이 저장소를 소유하고 있어요
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
내 컴퓨터에서 실행되는 서버라 인터넷 엔드포인트가 없어요
내 컴퓨터에서 실행되며, 대신 로컬 설정을 사용해요
내 컴퓨터에서 실행돼요. 도구 목록은 인터넷 엔드포인트가 있는 서버에서만 읽을 수 있어요
레지스트리에서 이 카테고리의 활성 서버 전체와 비교했어요. 스타는 게시자가 저장소를 소유한 경우에만 세요.
해당하는 기본 점검 1개 중 1개를 통과했어요. 코드는 읽지 않았어요. 키나 토큰을 넣기 전에 서버가 어떤 권한을 요구하는지 확인하고, 꼭 필요한 권한만 있는 키를 쓰세요.
레지스트리에 필수 키가 나와 있지 않아요. 다만 처음 쓸 때 로그인을 요구하는 서버도 있어요.
내 컴퓨터에서 실행돼요. AI 앱이 필요할 때 실행하고, 데이터는 제작자의 서버를 거치지 않아요(서버 자체가 온라인 서비스를 호출하는 경우는 제외).
GitHub 저장소는 마지막으로 – 변경됐고, 최신 버전(2.1.4)은 3개월 전 레지스트리에 올라왔어요.
Claude Desktop, Claude Code, Cursor, VS Code처럼 MCP를 지원하는 앱에서 쓸 수 있어요. 내 컴퓨터에 Node.js도 있어야 해요.
같은 카테고리에는: GitHub, Desktop Commander, Cloudflare MCP
같은 카테고리에서 다른 제작자가 만든 서버예요. 스타 순으로 정렬했어요.
카드 보는 법:★ GitHub 스타i세 기둥: 리뷰 · 점검 · 사용 정도i업데이트 = 최신 버전을 레지스트리에 공개한 날i
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
MCP server for terminal commands, file operations, and process management
Cloudflare MCP servers
제작자의 저장소에서 쓰인 그대로 가져왔어요. PopNx MCP가 검토하거나 보증한 내용이 아니에요. HTML, 이미지, 스크립트는 제거했어요. 링크를 누르면 이 사이트를 벗어나요.
Agent-generated Markdown → a link you can hand to anyone. GitHub gists today, your own server tomorrow.
English | 繁體中文
An MCP stdio server — works in Claude Code, Codex CLI, and any MCP client — that gives your agent 9 tools to publish, update, search, and revoke shareable documents. Two pluggable backends behind one interface: gist (zero setup, rides your logged-in gh CLI) and selfhost (SQLite on your machine, passwords, enforced expiry).
When a backend can't honor a parameter (e.g.
passwordon gist), it returns a clear error instead of silently ignoring it.
AI agents produce Markdown constantly — reports, research digests, meeting notes. Getting that to another human usually means copy-pasting walls of text into a chat window.
Without sharedoc-mcp With sharedoc-mcp
──────────────────── ───────────────── copy a wall of text into chat "share this as a doc" paste again for each person one link for everyone content lives in chat scroll revoke / extend / append later "can you password it?" …no selfhost backend: bcrypt + expiry
Where do those Markdown digests come from? Often another skill — e.g.
audio-tldr turns videos and podcasts into
Markdown digests; sharedoc-mcp turns them into links.
sharedoc-mcp serve daemon mode — selfhost links keep working after your MCP client closesGET /healthz — identity-aware health probe for external monitoring / restart automationgh CLI — no tokens to manage, nothing new to hostnode:sqlite — zero native modules)marked + sanitize-html — scripts, event handlers, and javascript: URLs in shared content are strippeddefault-src 'none', nosniff, DENY framing, no-referrer, no-store) — exposure is a tunnel you control (recipes below)search_shared_docs + create dedup (identical unprotected retries within 5 min return the same URL; a retry that adds a password/expiry always creates a new doc)search_shared_docs supports offset pagination (hasMore in the response) and, on selfhost, view stats (viewCount/lastViewedAt, counted on a successful render only)serve daemon, defaults to the same 127.0.0.1-only binding as everywhere elsenpm test passes on a clean checkoutRequires Node.js ≥ 22.13.0. Gist backend additionally needs GitHub CLI logged in (gh auth login).
Option A — Claude Code (one line):
claude mcp add sharedoc --scope user -- npx -y sharedoc-mcp@^2
Option B — Codex CLI (~/.codex/config.toml):
[mcp_servers.sharedoc]
command = "npx" args = ["-y", "sharedoc-mcp@^2"]
Option C — Cursor (one click): hit Add to Cursor, or merge into ~/.cursor/mcp.json:
{ "mcpServers": { "sharedoc": { "command": "npx", "args": ["-y", "sharedoc-mcp@^2"] } } }
Option D — VS Code (one click): hit Install in VS Code, or from a terminal:
code --add-mcp '{"name":"sharedoc","command":"npx","args":["-y","sharedoc-mcp@^2"]}'
Option E — any other MCP client: run npx -y sharedoc-mcp@^2 as a stdio server.
Why `@^2`? A bare
npx -y sharedoc-mcpresolves the latest published version on every cold start — a future 3.0 could change behavior (or remove a tool) under you without warning.@^2follows 2.x fixes but never crosses a breaking major; pin an exact version (@2.2.0) if you want zero drift.
🅰 gist (default) | 🅱 selfhost | |
|---|---|---|
| Setup | none — uses your logged-in gh CLI | none extra — data stays on your machine |
| Doc lives on | GitHub (secret gist) | your machine (SQLite) |
| Link reachable | anywhere, immediately | localhost — add a tunnel to share externally |
| Password | ✗ (the secret URL is the protection) | ✓ server-verified (bcrypt), rate-limited |
| Expiry | lazy — expired gists deleted on next use | enforced — expired links return 410 |
| Revoke | gist deleted immediately, irreversibly | immediate 410, content purged after 7-day grace |
| View stats | ✗ (GitHub's gist API exposes no view-count data) | ✓ viewCount + lastViewedAt, counted on a successful render only |
Ask your agent to "share this as a doc" — it calls create_shared_doc and returns a secret gist URL. Secret gists are not listed publicly and the URL is unguessable, but anyone who has the link can read it — that's the whole security model of this backend. Need passwords? Use selfhost.
A local index (~/.config/sharedoc-mcp/index.json) tracks what you've shared, powering search and expiry cleanup. Expiry here is *lazy*: expired gists are deleted the next time any tool runs, not at the exact expiry moment.
claude mcp add sharedoc --scope user --env SHAREDOC_BACKEND=selfhost -- npx -y sharedoc-mcp@^2
Docs live in SQLite at ~/.local/share/sharedoc-mcp/; a viewer serves them at http://127.0.0.1:8377. To share beyond your machine, put a tunnel in front and set SHAREDOC_PUBLIC_URL:
Links that outlive your editor: in MCP mode the viewer dies with the MCP client — close Claude Code and selfhost links stop answering until the next session (data is safe in SQLite). Run the standalone daemon to keep links alive around the clock:
`bash
npx -y sharedoc-mcp@^2 serve # viewer only, same DB — keep it running via launchd/systemd/tmux (Windows: Task Scheduler or NSSM)
`
MCP clients detect the daemon already owns the port and simply use it.
When to set this up: the moment you first hand a link to someone else — do it together
with your tunnel (both should be long-running, e.g. under launchd/systemd). Until then the
MCP-mode viewer is enough, and gist-backend users never need it.
| Recipe | Fits you if | Setup |
|---|---|---|
| Tailscale private (recommended) | recipients are your own devices / people you can invite to your tailnet | tailscale serve --bg 8377 → https:// . .ts.net, reachable only inside your tailnet — nothing is exposed to the public internet |
| Tailscale Funnel | share with anyone, no domain | tailscale funnel 8377 → same stable URL, but public |
| Cloudflare named tunnel | you own a domain | domain on Cloudflare, cloudflared tunnel create + route a hostname to http://127.0.0.1:8377 |
| cloudflared quick tunnel | one-off sharing | cloudflared tunnel --url http://127.0.0.1:8377 → random URL, changes every restart |
A branded, stable share URL like https://docs.example.com/docs/ — TLS handled by Cloudflare, works from behind NAT:
# one-time setup (domain already added to Cloudflare — the free plan is enough)
cloudflared tunnel login cloudflared tunnel create sharedoc cloudflared tunnel route dns sharedoc docs.example.com
~/.cloudflared/config.yml:
tunnel: sharedoc
credentials-file: ~/.cloudflared/ .json ingress:
Run cloudflared tunnel run sharedoc (or install it as a service for always-on), and register the MCP server with the public URL:
claude mcp add sharedoc --scope user \
--env SHAREDOC_BACKEND=selfhost \ --env SHAREDOC_PUBLIC_URL=https://docs.example.com \ -- npx -y sharedoc-mcp
Extras this unlocks: Cloudflare's DDoS protection comes free; you can layer WAF rules, or put Cloudflare Access (SSO) in front of everything except the share paths — an "SSO inside, password-protected shares outside" split.
Alternative — always-on without a home machine: run sharedoc-mcp on a VPS (where your agent also runs) and point nginx/caddy at 127.0.0.1:8377 with your domain and auto-TLS; no tunnel needed.
Runs the same standalone serve daemon as above, in a container:
docker build -t sharedoc-mcp .
docker run -d --name sharedoc \ -p 8377:8377 \ -e SHAREDOC_BIND_HOST=0.0.0.0 \ -v sharedoc-data:/data \ sharedoc-mcp
-v sharedoc-data:/data persists docs.db in a named volume — recreating the container keeps your docs.127.0.0.1 by default — same as every other deployment in this README — and inside a container that's unreachable through docker run -p, because -p forwards to the container's network interface, not its loopback. Without this env var, docker logs will show the viewer listening, but the mapped host port will refuse every connection.0.0.0.0 means any process that can reach the container's exposed port reaches the viewer, unauthenticated by network position — the same exposure tradeoff as running any other unauthenticated app in a container without a proxy앞부분만 보여 드려요. 나머지는 저장소에서 읽어 보세요