Skip to main content
Glama

docmost-mcp

Un servidor MCP que da a los agentes de IA acceso de lectura/escritura a una wiki Docmost autoalojada a través de su API REST habitual.

Por qué existe esto

Docmost incluye su propio endpoint MCP, pero está restringido por una licencia de pago: la interfaz de Ajustes muestra "Disponible con una licencia de pago" para la gestión de API, y /api/mcp devuelve 404 en la Community Edition. La creación de claves API está restringida de la misma manera.

Sin embargo, la API REST ordinaria está completamente abierta en la Community Edition. Este servidor es un envoltorio ligero sobre ella: mismas operaciones, autenticación por sesión en lugar de una clave API.

Related MCP server: MediaWiki MCP Server

Requisitos

  • Python 3.11+

  • Una instancia de Docmost a la que puedas acceder por HTTP(S)

  • Una cuenta de usuario de Docmost dedicada para el agente

Instalación

git clone https://github.com/<you>/docmost-mcp.git
cd docmost-mcp
python3 -m venv venv
./venv/bin/pip install -r requirements.txt

Configuración

Copia la configuración de ejemplo y complétala:

cp config.example.json config.json
chmod 600 config.json
{
  "url": "https://docmost.example.com",
  "api_key": "",
  "email": "agent@example.com",
  "password": "..."
}

Se admiten dos modos de autenticación:

Modo

Cuándo usarlo

api_key

Si tienes una licencia Enterprise de Docmost. Se envía como token Bearer.

email + password

Community Edition. El servidor inicia sesión y se re-autentica automáticamente cuando la sesión expira.

Si api_key está establecido, tiene prioridad; de lo contrario, se usan las credenciales.

La ruta de configuración se puede sobrescribir con la variable de entorno DOCMOST_MCP_CONFIG.

Crear una cuenta dedicada

No uses las credenciales del propietario del espacio de trabajo. Invita a un usuario separado (Ajustes → Miembros → Invitar) y concédele acceso solo a los espacios que el agente necesite. El acceso a los espacios en Docmost suele heredarse del grupo Todos por defecto, así que comprueba qué puede alcanzar ese grupo antes de asumir que el agente está restringido.

El direccionamiento con signo más estilo Gmail (tu+agente@gmail.com) funciona si prefieres no crear un segundo buzón.

Verificación

selftest.py ejercita toda la cadena — inicio de sesión, lectura, escritura, relectura, borrado:

./venv/bin/python selftest.py

Conectar un agente

El servidor habla MCP sobre stdio.

Claude Code

claude mcp add docmost -- /path/to/docmost-mcp/venv/bin/python /path/to/docmost-mcp/server.py

O añádelo a ~/.claude.json manualmente:

{
  "mcpServers": {
    "docmost": {
      "type": "stdio",
      "command": "/path/to/docmost-mcp/venv/bin/python",
      "args": ["/path/to/docmost-mcp/server.py"],
      "env": {}
    }
  }
}

Reinicia Claude Code después — la configuración se lee al inicio.

Claude Desktop

Añade el mismo bloque a claude_desktop_config.json:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

Cursor

Añádelo a .cursor/mcp.json en el proyecto, o a ~/.cursor/mcp.json globalmente, usando la misma forma de mcpServers.

Cualquier otro cliente MCP

Lanza server.py con el Python del virtualenv y habla JSON-RPC por stdin y stdout. Un handshake mínimo:

{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"probe","version":"1"}}}
{"jsonrpc":"2.0","method":"notifications/initialized"}
{"jsonrpc":"2.0","id":2,"method":"tools/list"}

Un envoltorio de conveniencia mantiene el comando corto:

#!/bin/sh
exec /path/to/docmost-mcp/venv/bin/python /path/to/docmost-mcp/server.py "$@"

Herramientas

Herramienta

Argumentos

Hace

list_spaces

limit

Lista los espacios del espacio de trabajo

search

query, space_id?, limit

Búsqueda de texto completo en páginas

get_page

page_id

Obtiene una página por id o slugId

recent_pages

space_id?, limit

Páginas modificadas recientemente

create_page

space_id, title, content?, parent_page_id?, fmt

Crea una página

update_page

page_id, title?, content?, fmt

Actualiza el título y/o el cuerpo

move_page

page_id, parent_page_id?

Reasigna una página a otro padre

delete_page

page_id, permanently

Mueve a la papelera (o elimina permanentemente) una página

fmt es markdown (por defecto), html o json.

Notas sobre la API de Docmost

Cosas que vale la pena saber si amplías este servidor:

  • Cada endpoint es POST, incluidas las lecturas.

  • /pages/create y /pages/update requieren un campo format (json | markdown | html). Omitirlo devuelve 400.

  • Las respuestas envuelven la carga útil en {"data": ...}; el cliente la desempaqueta.

  • /api/api-keys responde 200 con una lista vacía en la Community Edition — listar está abierto, solo la creación de claves está restringida por licencia.

  • Las rutas de los endpoints y las formas de las cargas útiles se tomaron del código fuente del cliente de Docmost (apps/client/src/features/*/services/*.ts), no se adivinaron.

Seguridad

  • config.json contiene una contraseña en texto plano. Mantenlo con modo 600 y fuera del control de versiones — está en .gitignore.

  • Da a la cuenta del agente el acceso más restringido a los espacios que aún le permita trabajar.

  • Las acciones de la cuenta aparecen en Docmost bajo su propio nombre, por lo que el historial de páginas sigue siendo atribuible.

Compatibilidad

Construido contra Docmost 0.95.0 y Python MCP SDK 2.0. Ten en cuenta que el SDK 2.0 renombró FastMCP a MCPServer y lo movió a mcp.server; la ruta de importación anterior a 2.0 mcp.server.fastmcp no funcionará.

Licencia

MIT — ver LICENSE.

Este proyecto no está afiliado con Docmost.

A
license - permissive license
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    B
    quality
    D
    maintenance
    Enables AI models to interact with BookStack wiki instances through a comprehensive API interface. Supports content management (books, chapters, pages), user administration, search functionality, and content export in multiple formats.
    41
    12
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables LLM clients to interact with any MediaWiki wiki, supporting page creation/editing, search, file uploads, category browsing, and page history retrieval. Supports multiple wikis with OAuth2 or bot password authentication for both public and private wikis.
    910
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides 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.
    4
    MIT

View all related MCP servers

Related MCP Connectors

  • Persistent docs and memory for AI agents — read, write, organize & search a shared workspace.

  • Self-hostable team wiki; agents read & write it via MCP; Atlas turns your repo into a cited wiki.

  • AgentDocs (agentdocs.eu) MCP: read, search, write, comment, share & attach images to Markdown docs.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/NeerdOnerT/docmost-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server