Outline MCP Server
This server acts as a bridge between an MCP client and an Outline knowledge base instance, allowing you to read, search, and manage documents and collections.
Get a document (
outline_get_document): Retrieve a specific document by its ID.Search documents (
outline_search_documents): Perform a full-text search across all documents, with a configurable result limit (up to 100).List documents (
outline_list_documents): List documents, optionally filtered by a specific collection ID, with a configurable result limit (up to 100).Create a document (
outline_create_document): Create a new document with a title and Markdown content, optionally assigning it to a collection, nesting it under a parent document, and publishing it immediately.Update a document (
outline_update_document): Update an existing document's title, Markdown content, or publication status.Delete a document (
outline_delete_document): Permanently delete a document by its ID.List collections (
outline_list_collections): Retrieve a list of all available collections.Get a collection (
outline_get_collection): Retrieve detailed information about a specific collection by its ID.
Provides tools for reading, searching, creating, updating, deleting documents, and managing collections in Outline, enabling AI agents to interact with a knowledge base or documentation wiki.
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., "@Outline MCP Server search for documents about project setup"
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.
Outline MCP Server
Servidor Model Context Protocol para integrar Outline con clientes MCP. Permite que un asistente o agente compatible consulte, busque y gestione documentos de una instancia de Outline mediante su API.
Para Qué Sirve
Este servidor actúa como puente entre un cliente MCP y Outline. Una vez configurado, el cliente puede invocar herramientas para leer documentación interna, buscar contenido, crear notas, actualizar documentos y consultar colecciones.
Casos de uso típicos:
Consultar la base de conocimiento de Outline desde un asistente de IA.
Buscar documentación interna sin salir del cliente MCP.
Crear o actualizar documentos en Markdown desde flujos automatizados.
Usar Outline como memoria documental editable para agentes.
Related MCP server: mcp-outline
Características
Lectura de documentos por ID.
Búsqueda de texto en documentos de Outline.
Listado de documentos, con filtro opcional por colección.
Creación de documentos con contenido Markdown.
Actualización de título, contenido y estado de publicación.
Eliminación de documentos.
Listado de colecciones.
Consulta de información de una colección concreta.
Transporte MCP por
stdiopor defecto, ideal para clientes locales.Transporte Streamable HTTP opcional para despliegues remotos.
Modo solo lectura para ocultar herramientas de escritura.
Timeout HTTP y reintentos acotados ante errores temporales de Outline.
Validación de argumentos con esquemas Zod mediante el SDK MCP actual.
Requisitos
Node.js
>=18.Una instancia de Outline accesible por URL.
Un token de API de Outline con permisos suficientes para las operaciones que quieras usar.
Instalación Rápida Con npx
La forma más sencilla es configurarlo directamente en tu cliente MCP usando npx:
{
"mcpServers": {
"outline": {
"command": "npx",
"args": ["-y", "getoutline-mcp-server"],
"env": {
"OUTLINE_BASE_URL": "https://tu-instancia-outline.com",
"OUTLINE_API_KEY": "tu-token-de-api"
}
}
}
}Instalación Desde Código Fuente
npm install
npm run build
npm startPara desarrollo:
npm run devPara recompilar automáticamente mientras editas:
npm run watchConfiguración
El servidor lee la configuración desde variables de entorno:
OUTLINE_BASE_URL=https://tu-instancia-outline.com
OUTLINE_API_KEY=tu-token-de-api
OUTLINE_READ_ONLY=false
MCP_TRANSPORT=stdio
MCP_HTTP_HOST=127.0.0.1
MCP_HTTP_PORT=3000
MCP_HTTP_PATH=/mcp
OUTLINE_MAX_RETRIES=2
OUTLINE_RETRY_BASE_DELAY_MS=100
# OUTLINE_HTTP_TIMEOUT_MS=10000Puedes tomar env.example como referencia.
Variables disponibles:
Variable | Default | Descripción |
| requerido | URL base de tu instancia de Outline. |
| requerido | Token de API de Outline. No se imprime en logs. |
|
| Si es |
|
| Transporte MCP: |
|
| Host de escucha para Streamable HTTP. Usa |
|
| Puerto HTTP cuando |
|
| Path HTTP del endpoint MCP. Debe empezar con |
|
| Reintentos máximos por endpoint para |
|
| Delay base para backoff acotado entre reintentos. |
| sin valor | Timeout opcional en milisegundos para Axios. |
Modo Solo Lectura
Con OUTLINE_READ_ONLY=true, el servidor no expone las herramientas de escritura en tools/list. Las herramientas ocultas son outline_create_document, outline_update_document y outline_delete_document.
Aunque actives este modo, usa también un token de Outline con permisos mínimos de lectura siempre que tu instancia lo permita.
Transporte Streamable HTTP
stdio sigue siendo el transporte por defecto y no requiere configurar variables HTTP. Para exponer el servidor por Streamable HTTP:
MCP_TRANSPORT=http
MCP_HTTP_HOST=127.0.0.1
MCP_HTTP_PORT=3000
MCP_HTTP_PATH=/mcp
npm startEl endpoint queda disponible en http://127.0.0.1:3000/mcp con transporte Streamable HTTP del SDK MCP. Si necesitas exponerlo fuera de la máquina local, cambia MCP_HTTP_HOST, por ejemplo a 0.0.0.0, y protege el acceso desde la red o un proxy.
Este cambio no agrega autenticación propia al endpoint HTTP. En producción, publícalo solo detrás de una red confiable, VPN, reverse proxy con autenticación, reglas de firewall o controles equivalentes.
Timeout Y Reintentos
El cliente de Outline puede reintentar errores temporales: 429, 500, 502, 503, 504, ECONNRESET, ETIMEDOUT y ECONNABORTED. No reintenta errores permanentes como 400, 401 o 403.
Configura OUTLINE_MAX_RETRIES=0 para desactivar reintentos. Define OUTLINE_HTTP_TIMEOUT_MS solo si quieres imponer un timeout explícito a las llamadas HTTP hacia Outline.
Cómo Obtener El Token De Outline
Entra en tu instancia de Outline.
Abre
Settings.Ve a
API Tokens.Crea un token nuevo.
Usa ese valor como
OUTLINE_API_KEY.
Recomendación: crea un token con los permisos mínimos necesarios para tu caso de uso.
Configuración En Clientes MCP
Cliente Local Con npx
{
"mcpServers": {
"outline": {
"command": "npx",
"args": ["-y", "getoutline-mcp-server"],
"env": {
"OUTLINE_BASE_URL": "https://tu-instancia-outline.com",
"OUTLINE_API_KEY": "tu-token-de-api"
}
}
}
}Cliente Local Desde Este Repositorio
Primero compila el proyecto:
npm run buildLuego apunta el cliente al archivo compilado:
{
"mcpServers": {
"outline": {
"command": "node",
"args": ["/ruta/absoluta/outline-mcp-server/dist/index.js"],
"env": {
"OUTLINE_BASE_URL": "https://tu-instancia-outline.com",
"OUTLINE_API_KEY": "tu-token-de-api"
}
}
}
}En Windows, usa una ruta absoluta válida, por ejemplo:
"args": ["D:/work/outline-mcp-server/dist/index.js"]OpenCode
OpenCode usa una forma de configuración distinta a otros clientes MCP: el comando va como un array único y las variables del proceso van en environment, no en env.
Ejemplo para C:\Users\gbaso\.config\opencode\opencode.json:
{
"mcp": {
"outline": {
"type": "local",
"command": [
"node",
"D:/work/outline-mcp-server/dist/index.js"
],
"enabled": true,
"environment": {
"OUTLINE_BASE_URL": "https://tu-instancia-outline.com",
"OUTLINE_API_KEY": "tu-token-de-api"
}
}
}
}Si usas env en OpenCode, el servidor puede arrancar sin OUTLINE_BASE_URL y OUTLINE_API_KEY, fallar al inicio y aparecer en logs como server unavailable key=outline type=local status=failed.
Los logs de OpenCode en Windows están en:
C:\Users\gbaso\.local\share\opencode\log\opencode.logDespués de modificar opencode.json, reinicia OpenCode. La configuración de MCP se carga al inicio y no se recarga en caliente.
Herramientas Disponibles
outline_get_document
Obtiene un documento por ID.
Parámetros:
id: ID del documento.
Ejemplo:
{
"name": "outline_get_document",
"arguments": {
"id": "document-id"
}
}outline_search_documents
Busca documentos en Outline.
Parámetros:
query: texto de búsqueda.limit: número máximo de resultados. Por defecto25, máximo100.
Ejemplo:
{
"name": "outline_search_documents",
"arguments": {
"query": "documentación del proyecto",
"limit": 10
}
}outline_list_documents
Lista documentos, opcionalmente filtrados por colección.
Parámetros:
collectionId: ID opcional de la colección.limit: número máximo de resultados. Por defecto25, máximo100.
outline_create_document
Crea un documento con contenido Markdown.
Parámetros:
title: título del documento.text: contenido en Markdown.collectionId: ID opcional de la colección.parentDocumentId: ID opcional del documento padre.publish: si debe publicarse inmediatamente. Por defectofalse.
Ejemplo:
{
"name": "outline_create_document",
"arguments": {
"title": "Plan del proyecto",
"text": "# Plan\n\nContenido inicial del documento.",
"collectionId": "collection-id",
"publish": true
}
}outline_update_document
Actualiza un documento existente.
Parámetros:
id: ID del documento.title: nuevo título, opcional.text: nuevo contenido Markdown, opcional.publish: cambia el estado de publicación, opcional.
outline_delete_document
Elimina un documento por ID.
Parámetros:
id: ID del documento.
outline_list_collections
Lista todas las colecciones disponibles.
No requiere parámetros.
outline_get_collection
Obtiene información de una colección por ID.
Parámetros:
id: ID de la colección.
Desarrollo
Estructura principal:
src/
├── index.ts # Servidor MCP y registro de herramientas
└── outline-client.ts # Cliente HTTP para la API de OutlineScripts disponibles:
npm run build: compila TypeScript endist/.npm test: ejecuta la suite Vitest sin credenciales reales de Outline.npm run test:coverage: ejecuta tests con cobertura global mínima del 85%.npm start: ejecutadist/index.js.npm run dev: compila y ejecuta el servidor.npm run watch: recompila al detectar cambios.
Seguridad
No incluyas
OUTLINE_API_KEYen commits, logs ni documentación pública.Usa variables de entorno o el sistema de secretos de tu cliente MCP.
Evita tokens con permisos excesivos si el cliente solo necesita lectura.
Ten cuidado con herramientas de escritura o borrado: el servidor puede modificar tu instancia de Outline.
Si usas
MCP_TRANSPORT=http, protege el endpoint con controles externos; el servidor no implementa autenticación HTTP propia.
Limitaciones Actuales
No implementa rate limiting interno; si haces muchas llamadas, depende de los límites de Outline.
Las respuestas de Outline se devuelven como JSON de la API, con tipos TypeScript pragmáticos pero sin validación runtime exhaustiva de cada campo.
El transporte HTTP es stateless; no agrega sesiones persistentes ni autenticación propia.
Licencia
MIT. Consulta LICENSE para más detalles.
Available Tools
8 toolsoutline_create_documentCrear documento en OutlineC
Crea un documento en Outline con contenido Markdown.
Inputs: title (required), text (required), collectionId, parentDocumentId, +1 more.
outline_delete_documentEliminar documento de OutlineB
Elimina un documento de Outline por ID.
Inputs: id (required).
outline_get_collectionObtener colección de OutlineB
Obtiene información de una colección concreta de Outline.
Inputs: id (required).
outline_get_documentObtener documento de OutlineB
Obtiene un documento concreto de Outline por ID.
Inputs: id (required).
outline_list_collectionsListar colecciones de OutlineA
Lista todas las colecciones disponibles en Outline.
Inputs: no named parameters.
outline_list_documentsListar documentos de OutlineC
Lista documentos de Outline, opcionalmente filtrados por colección.
Inputs: collectionId, limit.
outline_search_documentsBuscar documentos de OutlineA
Busca documentos en toda la instancia de Outline.
Inputs: query (required), limit.
outline_update_documentActualizar documento de OutlineB
Actualiza el título, contenido o estado de publicación de un documento de Outline.
Inputs: id (required), title, text, publish.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 8 tools
Each tool targets a distinct resource (document or collection) and action (create, delete, get, list, search, update), with no overlap or ambiguity.
All tools follow a consistent 'outline_verb_noun' pattern using snake_case, making the naming predictable and easy to understand.
8 tools are well-scoped for an Outline knowledge base server, covering essential document operations and collection queries without unnecessary bloat.
Document CRUD and search are complete, but collection management is limited to get and list, missing create/update/delete for collections, which is a minor gap.
Maintenance
Related MCP Connectors
Your portable context layer — load it into any AI.
Personal context for every AI: search, read, and write back to your private Markdown library.
Read, search, create and edit notes in an Obsidian Sync vault.
Intelligent context infrastructure for AI teams: knowledge graph, sessions, tasks, documents.
Related MCP Servers
- FlicenseAqualityDmaintenanceEnables interaction with Grist documents, workspaces, and records via the Model Context Protocol. It supports comprehensive operations including SQL querying, schema management, and record CRUD functionality.11142 npm4-
- AlicenseBqualityDmaintenanceEnables Claude Code to search and retrieve documents from an Outline knowledge base.2ISC
- AlicenseAqualityDmaintenanceA Model Context Protocol server for interacting with Outline document management, supporting search, read, create, edit, archive documents, collections, comments, and backlinks.30MIT
- AlicenseNot gradedqualityFmaintenanceA Model Context Protocol server that enables AI agents to manage documents, collections, comments, and users in Outline through its API.513 npm121MIT