A side-by-side look at the Better Notion 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 Better Notion 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.
NOTION_API_KEY.read, write, search.upload_markdown, read_document, update_document.Rows where the two servers differ are marked.
| Spec | ||
|---|---|---|
| Category | Workplace & Productivity | Workplace & Productivity |
| Quality signal | 51/100 · Good | 63/100 · Good |
| Install command | Confirmed | Confirmed |
| Transport | Local subprocess (stdio) | Local subprocess (stdio) |
| Auth | Not declared | No auth required |
| Pricing | Not declared | Free |
| Required env vars | NOTION_API_KEY | None listed |
| Verified owner | Community listing | Community listing |
| GitHub stars | 2 | 8 |
| Directory activity | 2 views 0 installs 0 upvotes | 1 views 0 installs 0 upvotes |
| Tools | 9 | 14 |
| Full listing | View Better Notion | View Mdshare |
readRead a Notion page as Markdown with frontmatter. Supports recursive child page reading with `depth`.writeCreate or update pages from Markdown. Supports batch operations and append/prepend.searchSearch the workspace by keyword. Returns a Markdown-formatted list.listList database records as a table or child pages as a list. Supports natural language filter & sort.updateQuick property update without rewriting content. Just pass page + key-value pairs.schemaView or modify database schema — add, remove, or rename columns.commentAdd or read comments on a page.deleteArchive (soft-delete) a page.moveMove a page to a different parent page or database.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.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": {
"better-notion": {
"command": "npx",
"args": [
"-y",
"better-mcp-notion"
],
"env": {
"NOTION_API_KEY": "YOUR_NOTION_API_KEY_HERE"
}
}
}
}
{
"mcpServers": {
"urbanmorph-mdshare": {
"command": "npx",
"args": [
"-y",
"mdshare-mcp"
]
}
}
}