docmost-community-mcp
docmost-community-mcp
Сервер Model Context Protocol для самостоятельно развёрнутого Docmost Community / Open Source Edition.
Исходный код: github.com/dilruwanm/docmost-community-mcp
Официальные ключи MCP и API Docmost доступны только в Enterprise. Этот сервер взаимодействует с тем же внутренним HTTP API, который использует веб-приложение Docmost, поэтому вы можете искать, читать, писать и организовывать вики CE из Cursor, Claude или любого MCP-клиента.
Для записи тела в формате Markdown требуется Docmost v0.71+. Последняя проверенная целевая версия — v0.95.0.
Установка
npx -y docmost-community-mcpИз исходного кода:
git clone https://github.com/dilruwanm/docmost-community-mcp.git
cd docmost-community-mcp
npm install
npm run buildRelated MCP server: docmost-mcp-local
Что вы получаете
Официальные названия инструментов MCP Enterprise, а также дополнительные возможности Community, которые в официальной документации не упомянуты.
Страницы: 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
Пространства: list_spaces, get_space, create_space, update_space, delete_space, export_space
Комментарии: get_comments, create_comment, update_comment, delete_comment
Поиск / люди: search_attachments, search_suggest, list_workspace_members, get_current_user
Файлы / метки / доступ: 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
Тела страниц и комментариев — это Markdown. Обновления выполняются через POST /api/pages/update с format: "markdown", поэтому Docmost преобразует и применяет изменение на месте. Сервер не открывает сокет Yjs и не создаёт собственную схему TipTap.
Переменные окружения
Переменная | Обязательна | Назначение |
| да | URL экземпляра, например |
| один из способов авторизации | Вход в Community |
| один из способов авторизации | cookie |
| нет | Файл кэша сессии |
| нет |
|
Предпочтительнее использовать email/пароль. JWT кэшируется в ~/.docmost-community-mcp/session.json и обновляется при получении 401. Учётные записи с MFA не могут завершить вход здесь — вместо этого используйте DOCMOST_AUTH_TOKEN.
Используйте отдельного пользователя Docmost. Не коммитьте учётные данные.
Cursor
Добавьте в .cursor/mcp.json или ~/.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"
}
}
}
}Из локального клона:
{
"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
Тот же блок mcpServers, что и выше. 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-mcpЗаметки о дизайне
только stdio в этом выпуске. Streamable HTTP можно добавить позже.
Никакой лицензии Enterprise, никакого доступа к базе данных Docmost, никакого форка Docmost.
slug пространства принимается везде, где требуется идентификатор пространства.
move_pageвычисляет необходимый дробный ключposition(first,lastили после соседней страницы).create_page/update_pageпонятно завершаются ошибкой на серверах версии ниже v0.71, вместо того чтобы молча отбрасывать тело.get_current_userсообщаетdocmostVersionиз поляcurrentVersionDocmost.Для
delete_spaceтребуетсяconfirm: true. Изменяющие инструменты соблюдаютDOCMOST_READ_ONLY.list_pagesпо умолчанию возвращает недавно обновлённые страницы. Передайтеview=treeдля страниц корня боковой панели.search_attachmentsдоступен только в Enterprise; на Community-хостах вы получите понятное сообщение об ошибке 403.Инструменты экспорта записывают zip или один файл
.md/.htmlвoutput_pathили во временный файл и возвращают путь.
Лицензия
MIT. Этот пакет не включает исходный код Docmost AGPL или 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