Skip to content

makespacemadrid/docmost-mcp

Repository files navigation

Docmost MCP

Servidor MCP para interactuar con Docmost. Implementa el transporte Streamable HTTP de la especificación MCP (2025-03-26). Sin dependencias externas, únicamente Node.js (v18+).

Versión actual: 0.3.0 (reflejada en package.json).

Variables de entorno

Variable Requerida Default Descripción
DOCMOST_BASE_URL URL base de Docmost (ej. https://demo.docmost.com)
DOCMOST_API_TOKEN * Token Bearer para autenticarse contra Docmost
DOCMOST_EMAIL * Email para login automático contra Docmost
DOCMOST_PASSWORD * Password para login automático contra Docmost
MCP_AUTH_TOKEN No Token Bearer para proteger el acceso al servidor MCP
READ_ONLY No false Deshabilita herramientas de escritura
ALLOW_DELETE No false Habilita la herramienta delete_page
REQUEST_TIMEOUT No 30000 Timeout en ms para llamadas al API de Docmost
PORT No 3000 Puerto del servidor

* Necesitas DOCMOST_API_TOKEN o DOCMOST_EMAIL + DOCMOST_PASSWORD.

Inicio rápido

# Con token
export DOCMOST_BASE_URL="https://demo.docmost.com"
export DOCMOST_API_TOKEN="<tu-token>"
export MCP_AUTH_TOKEN="<secreto-para-proteger-el-mcp>"
npm start

Transporte MCP: Streamable HTTP

Único endpoint: POST /mcp — acepta JSON-RPC 2.0.

# Initialize
curl -s http://localhost:3000/mcp \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer <MCP_AUTH_TOKEN>" \
  -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{}}'

# List tools
curl -s http://localhost:3000/mcp \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer <MCP_AUTH_TOKEN>" \
  -H "Mcp-Session-Id: <session-id-from-initialize>" \
  -d '{"jsonrpc":"2.0","id":2,"method":"tools/list"}'

# Call tool
curl -s http://localhost:3000/mcp \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer <MCP_AUTH_TOKEN>" \
  -H "Mcp-Session-Id: <session-id>" \
  -d '{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"search_pages","arguments":{"query":"onboarding"}}}'

Endpoints HTTP

Método Ruta Descripción
POST /mcp JSON-RPC 2.0 (initialize, tools/list, tools/call, ping)
GET /mcp SSE stream para notificaciones del servidor
DELETE /mcp Terminar sesión (enviar Mcp-Session-Id)
GET /health Health check (sin auth)
GET / Info del servidor

Herramientas

Lectura (siempre disponibles)

Tool Parámetros Descripción
list_spaces Espacios disponibles
list_pages spaceId Páginas de un espacio
get_page pageId Contenido completo de una página
search_pages query Búsqueda por texto libre
get_random_page spaceId? Página/artículo aleatorio con contenido completo
get_page_url pageId URL pública de una página
get_parent_page pageId Página padre
list_children pageId Páginas hijas directas
download_file fileId Descarga archivo adjunto (base64)

Escritura (requiere READ_ONLY=false)

Tool Parámetros Descripción
create_page title, content, spaceId, folderId? Crear página
update_page pageId, title?, content?, ... Actualizar página
upload_file pageId, fileName?, fileBase64 o fileUrl Subir archivo a página

Borrado (requiere ALLOW_DELETE=true)

Tool Parámetros Descripción
delete_page pageId Eliminar página permanentemente

Docker

Imagen: ghcr.io/makespacemadrid/docmost-mcp:latest

docker compose up -d

Copia .env.example a .env y rellena las variables.

Desarrollo

npm start      # Producción
npm run dev    # Desarrollo (NODE_ENV=development)
npm run lint   # Validar archivos

About

mcp server for docmost

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors