Publish and share access-controlled Markdown documents from any MCP-enabled AI tool.
Inferred from the transports this listing declares (streamable-http). A client not listed here hasn’t been ruled out — it just isn’t something Forge can confirm.
Verification confirms publisher identity (repo ownership), not code safety. The security scan covers known CVEs and suspicious install scripts.
Read from a real MCP initialize → tools/list handshake against the declared endpoint. No tool was ever invoked — tools/list is the read-only introspection call the protocol defines for this. It reflects what the server advertised at that moment; a hosted endpoint is not pinned to any version and can change without notice.
https://mkdshare.dev/mcp11 tools · 560mslist_documentsList all mkdshare.DEV documents owned by or shared with the authenticated user.List all mkdshare.DEV documents owned by or shared with the authenticated user.
No input schema was published for this tool.
get_documentRead the full markdown content of a document by its slug.Read the full markdown content of a document by its slug.
| Parameter | Type | Description |
|---|---|---|
| slug* | string | 8-character document slug from the URL |
create_documentCreate a new mkdshare.DEV document. If visibility is omitted the document is owner-only (login_required, restricted to your email).Create a new mkdshare.DEV document. If visibility is omitted the document is owner-only (login_required, restricted to your email).
| Parameter | Type | Description |
|---|---|---|
| title* | string | Document title |
| content* | string | Markdown content |
| visibility | string | 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 | string | Comma-separated emails allowed to view (login_required visibility) |
| allowed_domain | string | Domain allowed to view, e.g. company.com (domain_restricted visibility) |
| domain_can_edit | boolean | When true, all users in allowed_domain can edit (not just view) |
| editor_emails | string | Comma-separated emails that can edit this document (in addition to the owner) |
| expires_at | string | ISO 8601 datetime after which the document expires, e.g. 2026-06-01T00:00:00Z |
update_documentUpdate an existing document you own. Omit any field to keep its current value.Update an existing document you own. Omit any field to keep its current value.
| Parameter | Type | Description |
|---|---|---|
| slug* | string | Document slug |
| title | string | New title |
| content | string | New markdown content |
| visibility | string | New visibility level |
| allowed_emails | string | Comma-separated emails allowed to view; pass empty string to clear |
| allowed_domain | string | Domain allowed to view, e.g. company.com; required for domain_restricted |
| domain_can_edit | boolean | When true, all users in allowed_domain can edit (not just view) |
| editor_emails | string | Comma-separated emails that can edit; pass empty string to clear |
| expires_at | string | ISO 8601 expiry datetime; omit to keep current |
list_annotationsList all annotations (comments) on a document.List all annotations (comments) on a document.
| Parameter | Type | Description |
|---|---|---|
| slug* | string | Document slug |
create_annotationAdd 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.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.
| Parameter | Type | Description |
|---|---|---|
| slug* | string | Document slug |
| body* | string | Annotation text |
| quoted_text | string | The exact text being annotated |
| start_offset | integer | Character offset where annotation starts |
| end_offset | integer | Character offset where annotation ends |
archive_documentArchive a document. For documents you own, archives it for everyone. For shared documents, archives it only for you.Archive a document. For documents you own, archives it for everyone. For shared documents, archives it only for you.
| Parameter | Type | Description |
|---|---|---|
| slug* | string | Document slug |
search_documentsSearch mkdshare.DEV documents by title and content. Returns documents owned by or shared with the authenticated user that match the query.Search mkdshare.DEV documents by title and content. Returns documents owned by or shared with the authenticated user that match the query.
| Parameter | Type | Description |
|---|---|---|
| query* | string | Search string matched case-insensitively against document title and content |
upload_imageprivilegedUpload 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.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.
| Parameter | Type | Description |
|---|---|---|
| filename* | string | Original filename, e.g. screenshot.png |
| data* | string | Base64-encoded image bytes (standard alphabet, no data: URI prefix) |
request_device_authStart 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.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.
No input schema was published for this tool.
poll_device_authCheck 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.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.
| Parameter | Type | Description |
|---|---|---|
| device_code* | string | device_code returned by request_device_auth |
11 of 11 tools published a description.
Tool names and descriptions are written by the publisher and shown verbatim as inert text. They are the strings an MCP client passes to a model, so Forge scans them for prompt-injection patterns — any finding appears with the security scan above. “Privileged” is a keyword match on the tool name, not an audit of what the tool does: a benign-sounding name can still do anything.
Publish and share access-controlled Markdown documents from any MCP-enabled AI tool.
Linked names open Forge’s index of every entry observed exposing that tool. Browse all indexed tools.
This entry publishes no npm package, so Forge has no dependency tree for it. That is a gap in coverage — not a statement that it has no dependencies.