docmost-community-mcp
docmost-community-mcp
Servidor del Model Context Protocol para Docmost autoalojado Community / Open Source Edition.
Fuente: github.com/dilruwanm/docmost-community-mcp
Las claves MCP y de API oficiales de Docmost son solo para Enterprise. Este servidor habla con la misma API HTTP interna que usa la aplicación web de Docmost, por lo que puedes buscar, leer, escribir y organizar una wiki CE desde Cursor, Claude o cualquier cliente MCP.
Requiere Docmost v0.71+ para escrituras del cuerpo en Markdown. El objetivo verificado más reciente es v0.95.0.
Instalación
npx -y docmost-community-mcpDesde el código fuente:
git clone https://github.com/dilruwanm/docmost-community-mcp.git
cd docmost-community-mcp
npm install
npm run buildRelated MCP server: docmost-mcp-local
Qué obtienes
Nombres oficiales de herramientas MCP de Enterprise, además de extras de la Community que esos documentos omiten.
Páginas: search_pages, get_page, create_page, update_page, list_pages, list_child_pages, duplicate_page, copy_page_to_space, move_page, move_page_to_space, delete_page, restore_page, list_trash, get_page_history, get_history_version, get_breadcrumbs, get_backlinks, export_page
Espacios: list_spaces, get_space, create_space, update_space, delete_space, export_space
Comentarios: get_comments, create_comment, update_comment, delete_comment
Búsqueda / personas: search_attachments, search_suggest, list_workspace_members, get_current_user
Archivos / etiquetas / acceso: upload_attachment, get_attachment_info, list_page_labels, add_page_labels, remove_page_label, list_space_members, add_space_members, remove_space_member, update_space_member_role
Los cuerpos de las páginas y los comentarios son Markdown. Las actualizaciones pasan por POST /api/pages/update con format: "markdown", de modo que Docmost convierte y aplica el cambio en el lugar. El servidor no abre un socket de Yjs ni inventa su propio esquema TipTap.
Entorno
Variable | Obligatoria | Propósito |
| sí | URL de la instancia, p. ej. |
| un método de autenticación | Inicio de sesión de Community |
| un método de autenticación | cookie |
| no | Archivo de caché de sesión |
| no |
|
Se prefiere correo electrónico/contraseña. El JWT se guarda en caché en ~/.docmost-community-mcp/session.json y se renueva ante un 401. Las cuentas con MFA no pueden completar el inicio de sesión aquí: usa DOCMOST_AUTH_TOKEN en su lugar.
Usa un usuario de Docmost dedicado. No subas credenciales al repositorio.
Cursor
Añádelo a .cursor/mcp.json o ~/.cursor/mcp.json:
{
"mcpServers": {
"docmost": {
"command": "npx",
"args": ["-y", "docmost-community-mcp"],
"env": {
"DOCMOST_URL": "https://docs.example.com",
"DOCMOST_EMAIL": "you@example.com",
"DOCMOST_PASSWORD": "your-password"
}
}
}
}Desde un clon local:
{
"mcpServers": {
"docmost": {
"command": "node",
"args": ["/absolute/path/to/docmost-community-mcp/dist/index.js"],
"env": {
"DOCMOST_URL": "https://docs.example.com",
"DOCMOST_EMAIL": "you@example.com",
"DOCMOST_PASSWORD": "your-password"
}
}
}
}Claude Desktop / Claude Code
El mismo bloque mcpServers de arriba. Claude Code:
claude mcp add docmost --env DOCMOST_URL=https://docs.example.com --env DOCMOST_EMAIL=you@example.com --env DOCMOST_PASSWORD=secret -- npx -y docmost-community-mcpNotas de diseño
Solo stdio en esta versión. Streamable HTTP se puede añadir más adelante.
Sin licencia Enterprise, sin acceso a la base de datos de Docmost, sin fork de Docmost.
Los slugs de espacio se aceptan en cualquier lugar donde se requiera un id de espacio.
move_pagecalcula la clave fraccionariapositionrequerida (first,lasto después de un hermano).create_page/update_pagefallan claramente en servidores anteriores a v0.71 en lugar de descartar silenciosamente el cuerpo.get_current_userinforma dedocmostVersiondesde el campocurrentVersionde Docmost.delete_spacerequiereconfirm: true. Las herramientas de mutación respetanDOCMOST_READ_ONLY.list_pagesusa por defecto las páginas actualizadas recientemente. Pasaview=treepara las páginas raíz de la barra lateral.search_attachmentses solo para Enterprise; los hosts de Community reciben un claro mensaje 403.Las herramientas de exportación escriben un zip o un único archivo
.md/.htmlenoutput_patho en un archivo temporal y devuelven la ruta.
Licencia
MIT. Este paquete no incluye el código fuente de Docmost AGPL ni el de Enterprise.
Available Tools
41 toolsadd_page_labelsA
Add one or more labels to a page. Names are normalized to lowercase kebab-case.
Inputs: names (required), page_id (required).
add_space_membersB
Add users and/or groups to a space with a role.
Inputs: role (required), space_id (required), user_ids, group_ids.
copy_page_to_spaceA
Copy a page and its accessible sub-pages into a different space.
Inputs: page_id (required), space_id (required).
create_commentA
Add a page-level comment. Inline selection comments are not supported.
Inputs: page_id (required), markdown (required), parent_comment_id.
create_pageA
Create a page in a space. Body is Markdown and is persisted in place (Docmost v0.71+). Can nest under a parent.
Inputs: title (required), space_id (required), icon, markdown, +1 more.
create_spaceA
Create a space. Slug is generated from the name if omitted. Requires permission to manage spaces.
Inputs: name (required), slug, description.
delete_commentADestructive
Delete a comment. Owners can delete their own; space admins can delete any comment.
Inputs: comment_id (required).
delete_pageADestructive
Move a page to trash, or permanently delete it. Permanent delete requires space admin.
Inputs: page_id (required), permanently.
delete_spaceADestructive
Delete a space and its pages. This cannot be undone.
Inputs: confirm (required), space_id (required).
duplicate_pageA
Duplicate a page and its accessible sub-pages within the same space.
Inputs: page_id (required).
export_pageARead-only
Export a page to a local file. A page without children is often a .md or .html file; include_children usually returns a zip. Writes to output_path or a temp file and returns the path plus content type.
Inputs: page_id (required), format, output_path, include_children, +1 more.
export_spaceARead-only
Export a whole space as a zip of Markdown or HTML. Writes to output_path or a temp file.
Inputs: space_id (required), format, output_path, include_attachments.
get_attachment_infoCRead-only
Get metadata for an uploaded attachment.
Inputs: attachment_id (required).
get_backlinksARead-only
List incoming or outgoing page links.
Inputs: page_id (required), direction (required), limit, cursor.
get_breadcrumbsARead-only
Get the ancestor path from space root to a page.
Inputs: page_id (required).
get_commentsARead-only
List page-level comments. Content is returned as Markdown. Each comment is re-fetched so edits are not stale.
Inputs: page_id (required), limit, cursor.
get_current_userARead-only
Get the authenticated user and workspace context, detected Docmost version, and whether this session is read-only.
Inputs: no named parameters.
get_history_versionARead-only
Get a specific page history version by history ID.
Inputs: history_id (required).
get_pageARead-only
Get a page's metadata and Markdown body. Use format=json for raw ProseMirror.
Inputs: page_id (required), format.
get_page_historyCRead-only
List revision history for a page.
Inputs: page_id (required), limit, cursor.
get_spaceARead-only
Get details for a space, including the current user's membership.
Inputs: space_id (required).
list_child_pagesARead-only
List direct child pages of a page, in sidebar order. Omit page_id and pass space_id for space-root pages.
Inputs: limit, cursor, page_id, space_id.
list_page_labelsARead-only
List labels on a page.
Inputs: page_id (required), limit, cursor.
list_pagesARead-only
List pages in a space. Default view=recent is recently updated pages (not the sidebar tree; General can look empty). Use view=tree for space-root pages in sidebar order, or list_child_pages for children of a page.
Inputs: space_id (required), view, limit, cursor.
list_space_membersARead-only
List members and groups in a space.
Inputs: space_id (required), limit, cursor.
list_spacesARead-only
List spaces the authenticated user can access.
Inputs: limit, cursor.
list_trashARead-only
List soft-deleted pages in a space.
Inputs: space_id (required), limit, cursor.
list_workspace_membersCRead-only
List workspace members.
Inputs: limit, query, cursor.
move_pageA
Move a page under a new parent or to the space root. Position is computed unless you pass an explicit 5-12 character key.
Inputs: page_id (required), root, position, after_page_id, +1 more.
move_page_to_spaceA
Move a page and its accessible sub-pages to a different space.
Inputs: page_id (required), space_id (required).
remove_page_labelA
Remove a label from a page by label ID.
Inputs: page_id (required), label_id (required).
remove_space_memberCDestructive
Remove a user or group from a space.
Inputs: space_id (required), user_id, group_id.
restore_pageA
Restore a soft-deleted page from trash.
Inputs: page_id (required).
search_attachmentsARead-only
Search file attachments by name or indexed text. This is an Enterprise feature; Community Edition returns 403. Prefer get_attachment_info when you already have an attachment id.
Inputs: query (required), limit, space_id.
search_pagesARead-only
Full-text search for pages the authenticated user can access. Optionally scope to a space.
Inputs: query (required), limit, offset, space_id.
search_suggestARead-only
Typeahead suggestions. Pages are included by default (set include_pages=false to skip). Users and groups default to off.
Inputs: query (required), limit, space_id, include_pages, +2 more.
update_commentA
Replace a comment body. You can update your own comments.
Inputs: markdown (required), comment_id (required).
update_pageA
Update a page title, icon, and/or Markdown body in place. Body writes use the server converter (v0.71+). operation defaults to replace.
Inputs: page_id (required), icon, title, markdown, +1 more.
update_spaceC
Update a space name, slug, or description.
Inputs: space_id (required), name, slug, description.
update_space_member_roleC
Change a space member or group's role.
Inputs: role (required), space_id (required), user_id, group_id.
upload_attachmentA
Upload a local file to a page. Returns attachment metadata including the /api/files/:id/:name URL path.
Inputs: page_id (required), file_path (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 41 tools
Most tools target distinct resource-action pairs, and near-pairs like move_page vs move_page_to_space and duplicate_page vs copy_page_to_space are clearly separated by destination scope. The main ambiguity is list_pages vs list_child_pages, since both can return space-root pages depending on options.
The API uses a consistent snake_case verb_noun pattern throughout: create_page, update_page, delete_page, list_spaces, get_comments, add_space_members, etc. Prepositional variants like move_page_to_space and copy_page_to_space follow the same readable convention.
Forty-one tools is beyond the 16-25 'heavy' range and feels over-split for an MCP surface. Some tools such as search_attachments are non-functional in the Community Edition, and the many page-move/copy/list variants make the surface larger than its core workflows require.
The surface covers the core wiki lifecycle well: pages, spaces, comments, attachments, labels, members, search, export, trash, and history read operations. Workable gaps remain: there is no restore-from-version operation, no attachment delete/download, and no workspace-level user/group management.
Maintenance
Related MCP Connectors
Hosted markdown project wikis your team's AI assistants read, search, and update over MCP.
Talk to your public-facing AI from any MCP client — Claude, ChatGPT, Cursor, Cline, Windsurf.
Ask your own documents and get answers that cite the source passage. Workspace knowledge bases over MCP for Cursor, Claude and any MCP client.
Shared project wiki for AI agents: read and write pages, next actions, and activity logs over MCP.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceProvides AI assistants with direct access to self-hosted Docmost documentation through tools for listing spaces, searching content, and retrieving pages in Markdown format. It facilitates seamless documentation lookup and content retrieval within MCP-compatible clients.5MIT
- AlicenseAqualityDmaintenanceBuilt in rust, feature complete MCP server for self-hosted Docmost (Community Edition) — read & write your wiki from Claude, Cursor & VS2015MIT
- AlicenseNot gradedqualityDmaintenanceGives AI agents read/write access to a self-hosted Docmost wiki through its REST API.MIT
- AlicenseAqualityBmaintenanceEnables MCP clients to search, read, write, and organize pages, spaces, comments, attachments, labels, and member access in self-hosted Docmost Community Edition wikis via its internal HTTP API, using Markdown for page and comment bodies.4147 npmMIT