MCP-Server

mkdshare.DEV

io.github.PhilipAnd/mkdshare
Wissen & Dokumentation Produktivität Öffentlich und erreichbar MCP 2026-07-28

Was dieses MCP kann

Creates, shares, searches, annotates, and manages access-controlled Markdown documents and embedded images.

archive_document
Archive a document. For documents you own, archives it for everyone. For shared documents, archives it only for you.
Eingabeschema
{'type': 'object', 'required': ['slug'], 'properties': {'slug': {'type': 'string', 'description': 'Document slug'}}}
create_annotation
Add an annotation (comment) to a document. Pass quoted_text with the exact passage you want to annotate — the server will locate it automatically. Omit quoted_text to attach to the whole document. You can also provide start_offset + end_offset explicitly if needed.
Eingabeschema
{'type': 'object', 'required': ['slug', 'body'], 'properties': {'body': {'type': 'string', 'description': 'Annotation text'}, 'slug': {'type': 'string', 'description': 'Document slug'}, 'end_offset': {'type': 'integer', 'description': 'Character offset where annotation ends'}, 'quoted_text': {'type': 'string', 'description': 'The exact text being annotated'}, 'start_offset': {'type': 'integer', 'description': 'Character offset where annotation starts'}}}
create_document
Create a new mkdshare.DEV document. If visibility is omitted the document is owner-only (login_required, restricted to your email).
Eingabeschema
{'type': 'object', 'required': ['title', 'content'], 'properties': {'title': {'type': 'string', 'description': 'Document title'}, 'content': {'type': 'string', 'description': 'Markdown content'}, 'expires_at': {'type': 'string', 'description': 'ISO 8601 datetime after which the document expires, e.g. 2026-06-01T00:00:00Z'}, 'visibility': {'enum': ['public', 'login_required', 'domain_restricted'], 'type': 'string', 'description': "Who can view the document. If the user didn't specify who should see it, ask them. Omitted = owner-only (login_required, restricted to your email)."}, 'editor_emails': {'type': 'string', 'description': 'Comma-separated emails that can edit this document (in addition to the owner)'}, 'allowed_domain': {'type': 'string', 'description': 'Domain allowed to view, e.g. company.com (domain_restricted visibility)'}, 'allowed_emails': {'type': 'string', 'description': 'Comma-separated emails allowed to view (login_required visibility)'}, 'domain_can_edit': {'type': 'boolean', 'description': 'When true, all users in allowed_domain can edit (not just view)'}}}
get_document
Read the full markdown content of a document by its slug.
Eingabeschema
{'type': 'object', 'required': ['slug'], 'properties': {'slug': {'type': 'string', 'description': '8-character document slug from the URL'}}}
list_annotations
List all annotations (comments) on a document.
Eingabeschema
{'type': 'object', 'required': ['slug'], 'properties': {'slug': {'type': 'string', 'description': 'Document slug'}}}
list_documents
List all mkdshare.DEV documents owned by or shared with the authenticated user.
Eingabeschema
{'type': 'object', 'required': [], 'properties': {}}
poll_device_auth
Check whether the user has approved the device authorization. Call every 5 seconds (or the interval returned by a slow_down response) until status is 'complete'. Save the returned api_token to your MCP server config.
Eingabeschema
{'type': 'object', 'required': ['device_code'], 'properties': {'device_code': {'type': 'string', 'description': 'device_code returned by request_device_auth'}}}
request_device_auth
Start a headless Google sign-in. Call this FIRST if you don't have an API token yet. Returns a user_code and verification_url for the user to visit, plus a device_code to use with poll_device_auth. No Bearer token required.
Eingabeschema
{'type': 'object', 'required': [], 'properties': {}}
search_documents
Search mkdshare.DEV documents by title and content. Returns documents owned by or shared with the authenticated user that match the query.
Eingabeschema
{'type': 'object', 'required': ['query'], 'properties': {'query': {'type': 'string', 'description': 'Search string matched case-insensitively against document title and content'}}}
update_document
Update an existing document you own. Omit any field to keep its current value.
Eingabeschema
{'type': 'object', 'required': ['slug'], 'properties': {'slug': {'type': 'string', 'description': 'Document slug'}, 'title': {'type': 'string', 'description': 'New title'}, 'content': {'type': 'string', 'description': 'New markdown content'}, 'expires_at': {'type': 'string', 'description': 'ISO 8601 expiry datetime; omit to keep current'}, 'visibility': {'enum': ['public', 'login_required', 'domain_restricted'], 'type': 'string', 'description': 'New visibility level'}, 'editor_emails': {'type': 'string', 'description': 'Comma-separated emails that can edit; pass empty string to clear'}, 'allowed_domain': {'type': 'string', 'description': 'Domain allowed to view, e.g. company.com; required for domain_restricted'}, 'allowed_emails': {'type': 'string', 'description': 'Comma-separated emails allowed to view; pass empty string to clear'}, 'domain_can_edit': {'type': 'boolean', 'description': 'When true, all users in allowed_domain can edit (not just view)'}}}
upload_image
Upload an image (png, jpeg, gif, webp; max 1MB) for embedding in documents. Returns a URL and a ready-to-paste markdown snippet. Images are served at an unguessable URL — anyone with the exact link can view.
Eingabeschema
{'type': 'object', 'required': ['filename', 'data'], 'properties': {'data': {'type': 'string', 'description': 'Base64-encoded image bytes (standard alphabet, no data: URI prefix)'}, 'filename': {'type': 'string', 'description': 'Original filename, e.g. screenshot.png'}}}
Hinzugefügt
poll_device_auth
17. September 2026 12:45
Hinzugefügt
request_device_auth
17. September 2026 12:45
Hinzugefügt
upload_image
17. September 2026 12:45
Hinzugefügt
search_documents
17. September 2026 12:45
Hinzugefügt
archive_document
17. September 2026 12:45
Hinzugefügt
create_annotation
17. September 2026 12:45
Hinzugefügt
list_annotations
17. September 2026 12:45
Hinzugefügt
update_document
17. September 2026 12:45
Hinzugefügt
create_document
17. September 2026 12:45
Hinzugefügt
get_document
17. September 2026 12:45
Hinzugefügt
list_documents
17. September 2026 12:45