docmost-community-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@docmost-community-mcp Search the wiki for 'API authentication' and summarize the top result."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
docmost-community-mcp
Model Context Protocol server for self-hosted Docmost Community / Open Source Edition.
Source: github.com/dilruwanm/docmost-community-mcp
Official Docmost MCP and API keys are Enterprise-only. This server talks to the same internal HTTP API the Docmost web app uses, so you can search, read, write, and organize a CE wiki from Cursor, Claude, or any MCP client.
Requires Docmost v0.71+ for Markdown body writes. Latest verified target is v0.95.0.
Install
npx -y docmost-community-mcpFrom source:
git clone https://github.com/dilruwanm/docmost-community-mcp.git
cd docmost-community-mcp
npm install
npm run buildRelated MCP server: docmost-mcp-local
What you get
Official Enterprise MCP tool names, plus Community extras those docs omit.
Pages: 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
Spaces: list_spaces, get_space, create_space, update_space, delete_space, export_space
Comments: get_comments, create_comment, update_comment, delete_comment
Search / people: search_attachments, search_suggest, list_workspace_members, get_current_user
Files / labels / access: 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
Page and comment bodies are Markdown. Updates go through POST /api/pages/update with format: "markdown" so Docmost converts and applies the change in place. The server does not open a Yjs socket or invent its own TipTap schema.
Environment
Variable | Required | Purpose |
| yes | Instance URL, e.g. |
| one auth method | Community login |
| one auth method |
|
| no | Session cache file |
| no |
|
Email/password is preferred. The JWT is cached under ~/.docmost-community-mcp/session.json and refreshed on 401. MFA accounts cannot complete login here — use DOCMOST_AUTH_TOKEN instead.
Use a dedicated Docmost user. Do not commit credentials.
Cursor
Add to .cursor/mcp.json or ~/.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"
}
}
}
}From a local clone:
{
"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
Same mcpServers block as above. 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-mcpDesign notes
stdio only in this release. Streamable HTTP can be added later.
No Enterprise license, no Docmost database access, no Docmost fork.
Space slugs are accepted anywhere a space id is required.
Page slugIds (the id in page URLs) are accepted anywhere a page id is required, and are resolved to UUIDs before the request.
move_pagecomputes the required fractionalpositionkey (first,last, or after a sibling).create_page/update_pagefail clearly on servers older than v0.71 instead of silently dropping the body.get_current_userreportsdocmostVersionfrom Docmost'scurrentVersionfield.delete_spacerequiresconfirm: true. Mutating tools honorDOCMOST_READ_ONLY.list_pagesdefaults to recently updated pages. Passview=treefor sidebar-root pages.search_attachmentsis Enterprise-only; Community hosts get a clear 403 message.Export tools write a zip or a single
.md/.htmlfile tooutput_pathor a temp file and return the path.
License
MIT. This package does not include Docmost AGPL or Enterprise source.
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