Docmost-MCP-Wrapper

Docmost-MCP-Wrapper

Docker app from BitCryptic's 2nd Repository

Overview

Docmost MCP Wrapper — Dockerized, Tailscale-ready MCP bridge for the Docmost community/free edition. This wrapper fronts MrMartiniMo/docmost-mcp (a stdio-only MCP server) with sparfenyuk/mcp-proxy to expose it as a Streamable HTTP endpoint reachable over your Tailscale tailnet. Remote AI agents (Claude, k3, Graham's agents) connect directly via the tailnet — no LAN port publishing, no Caddy reverse proxy. SECURITY: Credentials are loaded from file mounts only (never from env vars visible in docker inspect). The entrypoint validates all inputs and refuses to start with missing or empty secrets. No secret values are ever logged. Container runs as a non-root user by default. PER-INSTANCE DEPLOYMENT: Deploy separate container instances for each bot identity with their own Docmost bot account, secret files, and Tailscale tag. Each instance is isolated at the Tailscale ACL layer. BEFORE FIRST START: 1. Create a Docmost bot account for this instance 2. Create secret files on the host: mkdir -p /mnt/cache/appdata/docmost-mcp/secrets printf '%s' 'bot-email@example.com' /mnt/cache/appdata/docmost-mcp/secrets/email printf '%s' 'bot-password' /mnt/cache/appdata/docmost-mcp/secrets/password chmod 600 /mnt/cache/appdata/docmost-mcp/secrets/* 3. Configure Tailscale auth key and tag in Advanced Settings TAILSCALE: The container joins your tailnet via a pre-tagged auth key. State is persisted in the Tailscale State Directory (host and container paths must be identical!). If the Tailscale hook cannot start (eg. permission errors), check with 'docker exec container id' — if it shows non-root, add this to Extra Parameters: --user root --cap-add=NET_ADMIN --cap-add=NET_RAW AGENT CONNECTION CONFIG: Once deployed, point your agent's MCP client at: https://docmost-mcp.pygmy-bramble.ts.net:8088/mcp (Change hostname to match your instance's Tailscale hostname.) ACL: On pygmy-bramble, add a 'grants' entry permitting relevant source identities to reach port 8088 on the instance's tag. Scoped per tag — eg. tag:docmost-mcp-bitcryptic only accessible by your devices; tag:docmost-mcp-slepner only accessible by Graham's. Full docs: https://github.com/bitcryptic-gw/docmost-mcp-wrapper/blob/main/WRAPPER.md Upstream: https://github.com/MrMartiniMo/docmost-mcp (MIT) mcp-proxy: https://github.com/sparfenyuk/mcp-proxy (MIT)

Docmost MCP Server

A Model Context Protocol (MCP) server for Docmost, enabling AI agents to search, create, modify, and organize documentation pages and spaces.

Features

Core Management

  • create_page: Smart creation tool. Creates content (via import) AND handles hierarchy (nesting under a parent) in one go.
  • update_page: Update a page's content and/or title. Updates are performed via real-time collaboration (WebSocket).
  • delete_page / delete_pages: Delete single or multiple pages at once.
  • move_page: Organize pages hierarchically by moving them to a new parent or root.

Exploration & Retrieval

  • search: Full-text search across spaces with optional space filtering (query, spaceId).
  • get_workspace: Get information about the current Docmost workspace.
  • list_spaces: View all spaces within the current workspace.
  • list_groups: View all groups within the current workspace.
  • list_pages: List pages within a space (ordered by updatedAt descending).
  • get_page: Retrieve full content and metadata of a specific page.

Technical Details

  • Automatic Markdown Conversion: Page content is automatically converted from Docmost's internal ProseMirror/TipTap JSON format to clean Markdown for easy agent consumption. Supports all Docmost extensions including callouts, task lists, math blocks, embeds, and more.
  • Smart Import API: Uses Docmost's import API to ensure clean Markdown-to-ProseMirror conversion when creating pages.
  • Child Preservation: The update_page tool creates a new page ID but effectively simulates an in-place update by reparenting existing child pages to the new version.
  • Pagination Support: Automatically handles pagination for large datasets (spaces, pages, groups).
  • Filtered Responses: API responses are filtered to include only relevant information, optimizing data transfer for agents.

Installation

npm install
npm run build

Configuration

This server requires the following environment variables to be set:

  • DOCMOST_API_URL: The full URL to your Docmost API (e.g., https://docs.example.com/api).
  • DOCMOST_EMAIL: The email address for authentication.
  • DOCMOST_PASSWORD: The password for authentication.

usage with Claude Desktop / generic MCP Client

Add the following to your MCP configuration (e.g. claude_desktop_config.json):

{
  "mcpServers": {
    "docmost-local": {
      "command": "node",
      "args": ["./build/index.js"],
      "env": {
        "DOCMOST_API_URL": "http://localhost:3000/api",
        "DOCMOST_EMAIL": "test@docmost.com",
        "DOCMOST_PASSWORD": "test"
      }
    }
  }
}

Development

# Watch mode
npm run watch

# Build
npm run build

License

MIT

Install Docmost-MCP-Wrapper on Unraid in a few clicks.

Find Docmost-MCP-Wrapper in Community Apps on your Unraid server, review the template, and click Install. Unraid handles the Docker app or plugin setup from the published template.

Open the Apps tab on your Unraid server Search Community Apps for Docmost-MCP-Wrapper Review the template variables and paths Click Install

Categories

Related apps

Explore more like this

Explore all

Details

Repository
bitcryptic/docmost-mcp-wrapper:latest
Last Updated2026-07-07
First Seen2026-06-22

Runtime arguments

Network
bridge
Shell
sh
Privileged
false

Template configuration

DOCMOST_API_URLVariable

Full URL to your Docmost API (not a secret). Default is the pygmy-bramble tailnet address.

Default
https://docmost.pygmy-bramble.ts.net/api
Docmost Email (file-based secret)Pathro

Host path to a plain-text file containing the bot account email. Create with: printf '%s' 'email@example.com' > /path/to/file. Must contain exactly the email with no trailing newline. Read-only inside container.

Target
/run/secrets/docmost_email
Default
/mnt/cache/appdata/docmost-mcp/secrets/email
Docmost Password (file-based secret)Pathro

Host path to a plain-text file containing the bot account password. Create with: printf '%s' 'password' > /path/to/file. Must contain exactly the password with no trailing newline. Read-only inside container.

Target
/run/secrets/docmost_password
Default
/mnt/cache/appdata/docmost-mcp/secrets/password
MCP Proxy PortVariable

Port mcp-proxy listens on inside the container. This is the port you point agent MCP clients at over Tailscale. Do NOT forward this port on your router — access is via Tailscale only.

Target
MCP_PROXY_PORT
Default
8088
Tailscale State DirectoryPathrw

Persistent Tailscale state directory. Prevents new node identity being created each restart. Host and container paths must be identical. When deploying multiple instances, each must have its own unique path (eg. change 'docmost-mcp' to 'docmost-mcp-bitcryptic').

Target
/mnt/cache/appdata/docmost-mcp/tailscale
Default
/mnt/cache/appdata/docmost-mcp/tailscale