A side-by-side look at the Coda MCP and Mdshare MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.
Verdict: choose Coda MCP for workplace & productivity work as a local process; choose Mdshare for workplace & productivity as a local process. You can also run both side by side in one mcpServers block.
API_KEY.coda_list_documents, coda_list_pages, coda_create_page.upload_markdown, read_document, update_document.Rows where the two servers differ are marked.
| Spec | ||
|---|---|---|
| Category | Workplace & Productivity | Workplace & Productivity |
| Quality signal | 59/100 · Good | 63/100 · Good |
| Install command | Confirmed | Confirmed |
| Transport | Local subprocess (stdio) | Local subprocess (stdio) |
| Auth | API key required | No auth required |
| Pricing | BYOK (pay the provider) | Free |
| Required env vars | API_KEY | None listed |
| Verified owner | Community listing | Community listing |
| GitHub stars | 63 | 8 |
| Directory activity | 2 views 0 installs 0 upvotes | 1 views 0 installs 0 upvotes |
| Tools | 19 | 14 |
| Full listing | View Coda MCP | View Mdshare |
coda_list_documentsList or search available documentscoda_list_pagesList pages in the current document with paginationcoda_create_pageCreate a page in the current documentcoda_get_page_contentGet the content of a page as markdowncoda_peek_pagePeek into the beginning of a page and return a limited number of linescoda_replace_page_contentReplace the content of a page with new markdown contentcoda_append_page_contentAppend new markdown content to the end of a pagecoda_duplicate_pageDuplicate a page in the current documentcoda_rename_pageRename a page in the current documentcoda_resolve_linkResolve metadata given a browser link to a Coda objectcoda_list_tablesList tables in a documentcoda_list_columnsList columns in a tableupload_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.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.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.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.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.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.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.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.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.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.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_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.Paste either block (or both) into your client config, e.g. claude_desktop_config.json or ~/.cursor/mcp.json. We only show a config when the install command is confirmed.
{
"mcpServers": {
"orellazi-coda-mcp": {
"command": "npx",
"args": [
"-y",
"coda-mcp@latest"
],
"env": {
"API_KEY": "YOUR_API_KEY_HERE"
}
}
}
}
{
"mcpServers": {
"urbanmorph-mdshare": {
"command": "npx",
"args": [
"-y",
"mdshare-mcp"
]
}
}
}