sharedoc-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| MCP_CALLER | No | Default author attribution for created docs | |
| SHAREDOC_PORT | No | Viewer port (selfhost) | 8377 |
| SHAREDOC_BACKEND | No | Backend to use: 'gist' (default) or 'selfhost' | gist |
| SHAREDOC_DATA_DIR | No | SQLite location (selfhost) | ~/.local/share/sharedoc-mcp |
| SHAREDOC_INDEX_PATH | No | Local index path (gist) | ~/.config/sharedoc-mcp/index.json |
| SHAREDOC_PUBLIC_URL | No | URL prefix in share links — set to your tunnel hostname | http://127.0.0.1:<port> |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| create_shared_docA | Create a shared Markdown doc, returns a public URL. Backend semantics differ: gist backend has no password support (secret URL is the protection) and lazy expiry; selfhost backend enforces both. |
| append_to_shared_docA | Append content to an existing shared doc. NOT idempotent: a retry appends twice — check with search_shared_docs before retrying. Accepts a doc id or URL. |
| update_shared_doc_contentA | Replace the entire content of an existing shared doc (title, password, and expiry are left unchanged). Idempotent: unlike append_to_shared_doc, calling it twice with the same content is safe to retry — the result is the same either way. Accepts a doc id or URL. |
| extend_shared_docA | Extend a doc expiry by N hours (for "N days" multiply by 24 first). On the gist backend expiry is enforced lazily (cleanup on next use). |
| reset_shared_doc_passwordC | Reset a doc password (null removes protection). Selfhost backend only. |
| update_shared_doc_titleC | Update a shared doc title (must be non-empty). |
| revoke_shared_docA | Revoke a shared doc: the link stops working but the record stays searchable. Gist backend: the gist is deleted immediately and irreversibly. Selfhost backend: revoked with a 7-day grace before content is purged. To erase the record entirely, use delete_shared_doc. |
| delete_shared_docA | Permanently delete a shared doc: the link dies AND the record disappears from search — unlike revoke_shared_doc, no history is kept. Irreversible on both backends. Requires confirm: true, which you must only pass after the user explicitly approved the permanent deletion; prefer revoke_shared_doc for routine takedowns. |
| search_shared_docsA | Find previously shared docs and their links. Call with NO arguments to list the newest docs (each result includes its share URL, and on the selfhost backend, viewCount/lastViewedAt — gist returns those as null, GitHub exposes no gist view-count data). title_query filters by title substring; content_query searches body text (selfhost: full content; gist: the opening excerpt only); status filters active/revoked/expired; limit max 100 (default 20); offset pages past it (must be >= 0) — hasMore in the response tells you whether to fetch another page at offset + limit. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 9 tools
Each tool targets a distinct operation on shared docs: create, append, replace content, extend expiry, reset password, update title, revoke, delete, and search. Even the two update-titled tools are clearly separated by attribute (content vs title), and revoke vs delete are explicitly differentiated in descriptions.
All tool names follow a consistent verb_noun pattern using snake_case (e.g., create_shared_doc, update_shared_doc_title, search_shared_docs). Verbs are specific and the noun remains 'shared_doc(s)' throughout, making the pattern predictable and easy to navigate.
With 9 tools, the server is well-scoped for managing shared documents. Each tool covers a necessary operation without redundancy, and the count fits comfortably within the ideal 3-15 range.
The surface covers create, read via search, full update of content/title/password/expiry, revoke, and delete, which is nearly complete for a document lifecycle. A minor gap is the lack of a direct 'get' tool to fetch full content of a single doc by ID, but search with content_query can partially work around this.