generate_link
Generate a share link for a document with specific permissions. Requires admin access. If the document is in this MCP server's local store, 'key' is optional.
Upload markdown to mdshare and get a share link back, patch it with find and replace instead of rewriting it, issue and revoke links per permission, and work the comments people leave.
LABSCO SUMMARY
upload_markdown returns the share link and not the admin URL, list_my_documents states that it does not include the credential, and get_admin_url exists so that retrieving it is a deliberate act — the tool tells the agent not to call it as part of an ordinary upload or share. The rest of the design is about not moving text you do not have to move: read and update both prefer a file path over inline content, patch_document does find and replace rather than a full rewrite, and reading to an output path is described as dramatically faster than echoing the document through the conversation.
An mdshare client: documents uploaded from disk or inline, share links issued and revoked per permission, comments read and answered, and the admin credential kept in local storage rather than returned in a response.
Nothing to supply — no account, no key. The local store at ~/.mdshare-mcp/documents.json, which holds the admin credentials so the key can be left out for documents this machine uploaded. An admin URL carrying the adm_ prefix for register_document, which rejects view, comment and edit share links. Admin permission for the link tools, and edit or admin permission for updating a document or resolving a comment.
One command — npx mdshare-mcp
USE CASES
The upload returns a comment-permission link by default and keeps the admin credential in local storage, and further links can be issued at chosen permissions with labels so each recipient's access is separable.
Find and replace operations change what needs changing without moving the whole document through the conversation, and each find string has to be unique unless a replace-all is asked for explicitly.
Comments come back with their replies and resolution status, a reply can be anchored to specific text or attached to an existing comment, and resolving one needs the key passed explicitly because a comment id alone does not name its document.
Each link is listed with its token, status and label so the right one can be identified before it is revoked, and revocation is permanent. The version history shows what was changed while the link was live.
Documents uploaded from this machine are listable with their share URLs and expiry, an admin URL saved elsewhere can be registered and verified so the key never has to be pasted again, and the credential itself is only produced when asked for by name.
Counted once with only startup setup. Other versions, modes or optional credentials may expose a different list.
generate_linkGenerate a share link for a document with specific permissions. Requires admin access. If the document is in this MCP server's local store, 'key' is optional.
get_admin_urlRetrieve the admin URL for a document previously uploaded via this MCP server. The admin URL grants full control and is equivalent to a password. ONLY call this tool when the user explicitly asks to see, save, or copy the admin URL — for example: 'give me the admin URL', 'save the admin link to my notes', 'what's the owner credential'. DO NOT call this as part of normal upload, share, or collaboration flows; the admin URL should never be surfaced to the user unless directly requested.
get_versionsGet the edit history of a document — who edited, when, and via what. If the document is in this MCP server's local store, 'key' is optional.
list_commentsList all comments on a document, including replies and resolution status. If the document is in this MCP server's local store, 'key' is optional.
list_linksList all share links for a document, including status (active/revoked), permission, and label. Requires admin access. If the document is in this MCP server's local store, 'key' is optional.
list_my_documentsList documents you've previously uploaded via this MCP server on this machine. Returns document_id, title, share_url, share_permission, created_at, and expires_at for each — does NOT return the admin credential. Use this to help the user find and resume older documents without re-pasting admin URLs. Does NOT include documents created via the mdshare web UI or via direct API calls from other clients — only those created by this MCP server. Returns an empty array on a fresh install or after the local store has been cleared.
patch_documentApply find/replace operations to a document without rewriting the full content. More efficient than update_document for small edits to large documents. Each find string must be unique unless replace_all is set. If the document is in this MCP server's local store, 'key' is optional. PREFER file_path over operations for batches of operations stored in a JSON file on disk — bypasses inline transmission. If both file_path and operations are provided, file_path wins.
post_commentPost a comment on a document, optionally anchored to specific text. Can also reply to an existing comment. If the document is in this MCP server's local store, 'key' is optional.
read_documentRead a markdown document from mdshare. Returns the content. If the document was uploaded via this MCP server, 'key' is optional — the admin key will be loaded from local storage. PREFER output_path over inline reading for large documents — writes directly to disk and returns a small summary, dramatically faster than echoing content through the conversation.
register_documentRegister an mdshare admin URL you already have saved (in notes, chat history, emails, etc.) so it can be resumed without re-pasting the key every time. Takes an admin URL of the form https://mdshare.live/d/{id}?key=adm_..., verifies it against the live API, and stores it in ~/.mdshare-mcp/documents.json. Only accepts admin URLs (adm_ prefix) — view/comment/edit share links will be rejected. For bulk registration across many files, use the LLM's built-in file reading and search tools to find admin URLs, then call this tool once per URL found.
resolve_commentResolve or unresolve a comment. Requires edit or admin permission. Key must be provided explicitly because comments are addressed by comment_id — the MCP server can't look up the parent document.
revoke_linkRevoke a share link, making it permanently inactive. Use list_links first to find the token of the link to revoke. Requires admin access. If the document is in this MCP server's local store, 'key' is optional.
update_documentUpdate the content of an existing mdshare document (full replace). Requires edit or admin permission. If the document is in this MCP server's local store, 'key' is optional. PREFER file_path over content for files already on disk — reads directly from disk without transmitting content through this conversation. If both file_path and content are provided, file_path wins. For small edits to large documents, consider patch_document instead — keeps version history granular.
upload_markdownUpload markdown to mdshare and receive a shareable link. The response contains a read/comment/edit share link (default permission: comment) that the user can share with others. The admin credential (full control) is stored locally in ~/.mdshare-mcp/documents.json and is NOT returned in this response — if the user explicitly asks to see or save the admin URL, call get_admin_url. PREFER file_path over content for files already on disk — reads directly from disk without transmitting content through this conversation, which is dramatically faster for files larger than ~1KB.
BEFORE YOU INSTALL
14 tools when we connected. upload_markdown publishes to mdshare.live and returns a share link, keeping the admin URL on your machine; patch_document edits part of a document without resending it. Sharing allows four permission levels and up to 50 links.
npx on PATH
CONTEXT COST
Rated by the size of the 14 tool definitions that ride along on every turn, not by how many there are
INSTALLATION
npx mdshare-mcp/plugin marketplace add urbanmorph/mdshare
/plugin install mdshare@urbanmorphListed on Cursor Directory — click Add to Cursor on the listing page
Settings → Community Plugins → Browse → search "mdshare"