mkdshare.DEV
Publish and share access-controlled Markdown documents from any MCP-enabled AI tool.
¿Debería usar esto?
Calidad y seguridad
Hallazgos (1)
- LOWen archive_document
Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.
Costo de contexto
Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.
Instalar
Instalación con un clic
Agrega esto a tu archivo `claude_desktop_config.json`:
{
"mcpServers": {
"mkdshare": {
"url": "https://mkdshare.dev/mcp"
}
}
}Puntos de conexión remotos
https://mkdshare.dev/mcpstreamable-httpQué puede hacer
Inventario de herramientas
Herramientas (11)
🟢list_documents
List all mkdshare.DEV documents owned by or shared with the authenticated user.
Esquema de entrada
{
"type": "object",
"properties": {},
"required": []
}🟢get_document(slug)
Read the full markdown content of a document by its slug.
Esquema de entrada
{
"type": "object",
"properties": {
"slug": {
"type": "string",
"description": "8-character document slug from the URL"
}
},
"required": [
"slug"
]
}🟡create_document(title, content, visibility, allowed_emails, allowed_domain, ...)
Create a new mkdshare.DEV document. If visibility is omitted the document is owner-only (login_required, restricted to your email).
Esquema de entrada
{
"type": "object",
"properties": {
"title": {
"type": "string",
"description": "Document title"
},
"content": {
"type": "string",
"description": "Markdown content"
},
"visibility": {
"type": "string",
"enum": [
"public",
"login_required",
"domain_restricted"
],
"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)."
},
"allowed_emails": {
"type": "string",
"description": "Comma-separated emails allowed to view (login_required visibility)"
},
"allowed_domain": {
"type": "string",
"description": "Domain allowed to view, e.g. company.com (domain_restricted visibility)"
},
"domain_can_edit": {
"type": "boolean",
"description": "When true, all users in allowed_domain can edit (not just view)"
},
"editor_emails": {
"type": "string",
"description": "Comma-separated emails that can edit this document (in addition to the owner)"
},
"expires_at": {
"type": "string",
"description": "ISO 8601 datetime after which the document expires, e.g. 2026-06-01T00:00:00Z"
}
},
"required": [
"title",
"content"
]
}🟡update_document(slug, title, content, visibility, allowed_emails, ...)
Update an existing document you own. Omit any field to keep its current value.
Esquema de entrada
{
"type": "object",
"properties": {
"slug": {
"type": "string",
"description": "Document slug"
},
"title": {
"type": "string",
"description": "New title"
},
"content": {
"type": "string",
"description": "New markdown content"
},
"visibility": {
"type": "string",
"enum": [
"public",
"login_required",
"domain_restricted"
],
"description": "New visibility level"
},
"allowed_emails": {
"type": "string",
"description": "Comma-separated emails allowed to view; pass empty string to clear"
},
"allowed_domain": {
"type": "string",
"description": "Domain allowed to view, e.g. company.com; required for domain_restricted"
},
"domain_can_edit": {
"type": "boolean",
"description": "When true, all users in allowed_domain can edit (not just view)"
},
"editor_emails": {
"type": "string",
"description": "Comma-separated emails that can edit; pass empty string to clear"
},
"expires_at": {
"type": "string",
"description": "ISO 8601 expiry datetime; omit to keep current"
}
},
"required": [
"slug"
]
}🟢list_annotations(slug)
List all annotations (comments) on a document.
Esquema de entrada
{
"type": "object",
"properties": {
"slug": {
"type": "string",
"description": "Document slug"
}
},
"required": [
"slug"
]
}🟡create_annotation(slug, body, quoted_text, start_offset, end_offset)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"slug": {
"type": "string",
"description": "Document slug"
},
"body": {
"type": "string",
"description": "Annotation text"
},
"quoted_text": {
"type": "string",
"description": "The exact text being annotated"
},
"start_offset": {
"type": "integer",
"description": "Character offset where annotation starts"
},
"end_offset": {
"type": "integer",
"description": "Character offset where annotation ends"
}
},
"required": [
"slug",
"body"
]
}⚪archive_document(slug)
Archive a document. For documents you own, archives it for everyone. For shared documents, archives it only for you.
Esquema de entrada
{
"type": "object",
"properties": {
"slug": {
"type": "string",
"description": "Document slug"
}
},
"required": [
"slug"
]
}🟢search_documents(query)
Search mkdshare.DEV documents by title and content. Returns documents owned by or shared with the authenticated user that match the query.
Esquema de entrada
{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Search string matched case-insensitively against document title and content"
}
},
"required": [
"query"
]
}🟡upload_image(filename, data)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"filename": {
"type": "string",
"description": "Original filename, e.g. screenshot.png"
},
"data": {
"type": "string",
"description": "Base64-encoded image bytes (standard alphabet, no data: URI prefix)"
}
},
"required": [
"filename",
"data"
]
}⚪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.
Esquema de entrada
{
"type": "object",
"properties": {},
"required": []
}🟡poll_device_auth(device_code)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"device_code": {
"type": "string",
"description": "device_code returned by request_device_auth"
}
},
"required": [
"device_code"
]
}Comunidad
Evidencia