Atlassian Confluence MCP Server

Un servidor Model Context Protocol (MCP) de código abierto para Atlassian Confluence que permite a asistentes de IA como Claude y Windsurf leer, crear, buscar y gestionar páginas wiki de Confluence. Funciona con Confluence Cloud, Server local y despliegues de Data Center — conecta tu agente de IA de programación a la base de conocimiento de tu equipo en segundos mediante npx.
¿Por qué atlassian-confluence-mcp-server?
- ✅ Único servidor MCP compatible con Cloud + Server + Data Center en un solo paquete
- ✅ 46 herramientas — el MCP de Confluence más completo disponible
- ✅ Cero configuración mediante
npx — sin necesidad de instalación
- ✅ Compatibilidad con PAT, autenticación básica y tokens de API
- ✅ Mantenimiento activo con versiones firmadas con procedencia
¿Por qué usar esto en lugar del servidor MCP oficial de Atlassian?
| Característica | Este paquete | Atlassian Oficial |
|---|
| Confluence Cloud | ✅ | ✅ |
| Server local | ✅ | ❌ |
| Data Center | ✅ | ❌ |
| Cero configuración con npx | ✅ | ❌ |
| 46 herramientas | ✅ | ~15 herramientas |
| Gestión de espacios (crear/eliminar) | ✅ | ❌ |
| Copiar/mover páginas | ✅ | ❌ |
| Observadores (watchers) | ✅ | ❌ |
| Permisos/restricciones | ✅ | ❌ |
| Extracción de tareas | ✅ | ❌ |
| Exportación (PDF/Word) | ✅ | ❌ |
| Código abierto | ✅ MIT | ✅ |
| Funciona sin conexión/intranet | ✅ | ❌ |
Características
- Gestión de espacios — Crear, eliminar, listar e inspeccionar espacios
- CRUD de páginas — Crear, leer, actualizar, eliminar, copiar y mover páginas
- Búsqueda — Búsqueda completa con CQL y texto, páginas modificadas recientemente
- Etiquetas — Añadir, listar y eliminar etiquetas de páginas
- Comentarios — Leer y publicar comentarios en páginas
- Adjuntos — Listar adjuntos de páginas y comentarios
- Jerarquía de páginas — Navegar relaciones padre/hijo
- Historial de versiones — Explorar e inspeccionar versiones de páginas
- Observadores — Ver y gestionar observadores de páginas
- Permisos — Obtener y establecer restricciones de páginas
- Tareas — Extraer tareas en línea de las páginas
- Exportación — Generar URLs de exportación PDF/Word
- Espacio personal — Crear páginas en tu espacio personal
- Análisis de URLs — Recuperar contenido de una página a partir de una URL de Confluence
Requisitos previos
- Node.js 18+
- Una instancia de Confluence (Cloud o Server/Data Center 7.9+)
- Credenciales de autenticación (PAT o nombre de usuario/contraseña)
Instalación
Mediante npx (sin necesidad de instalación)
npx atlassian-confluence-mcp-server
Instalación global
npm install -g atlassian-confluence-mcp-server
Desde el código fuente
git clone https://github.com/anuragagrawal0430/atlassian-confluence-mcp-server.git
cd atlassian-confluence-mcp-server
npm install
npm run build
Configuración
Toda la configuración se pasa mediante variables de entorno. Nunca se deben codificar credenciales en el código.
| Variable | Obligatoria | Descripción |
|---|
CONFLUENCE_BASE_URL | Sí | URL raíz de tu instancia de Confluence |
PAT | Ver más abajo | Token de API (Cloud) o Token de Acceso Personal (Server/DC) |
CONFLUENCE_USERNAME | Solo Cloud | El correo de tu cuenta de Atlassian |
CONFLUENCE_PASSWORD | Autenticación alternativa | Contraseña o token de API para autenticación básica |
CONFLUENCE_READ_ONLY | No | El valor predeterminado es true; establécelo en false para permitir herramientas de mutación |
CONFLUENCE_ENABLE_DESTRUCTIVE_TOOLS | No | El valor predeterminado es false; establécelo en true para permitir herramientas de eliminación/mutación de permisos |
CONFLUENCE_ENABLED_TOOLS | No | Lista opcional separada por comas de nombres de herramientas permitidas |
CONFLUENCE_ALLOWED_SPACES | No | Lista opcional separada por comas de claves de espacio permitidas para solicitudes con spaceKey/destinationSpaceKey |
CONFLUENCE_ALLOW_INSECURE_HTTP | No | El valor predeterminado es false; solo permite http:// para localhost/loopback cuando se establece en true |
Confluence Cloud
Los tokens de API de Cloud se generan desde tu cuenta de Atlassian y requieren tanto tu correo como el token:
CONFLUENCE_BASE_URL=https://your-site.atlassian.net
CONFLUENCE_USERNAME=you@example.com
PAT=your-api-token
- Ve a https://id.atlassian.com/manage-profile/security/api-tokens
- Haz clic en Create API token, asígnale una etiqueta y copia el valor
- Establece
CONFLUENCE_USERNAME con el correo de tu cuenta de Atlassian
- Establece
PAT con el token de API copiado
Confluence Server / Data Center (7.9+)
Las instancias de Server y Data Center utilizan un Token de Acceso Personal con autenticación Bearer. Solo se necesita el token:
CONFLUENCE_BASE_URL=https://confluence.example.com
PAT=your-personal-access-token
- Navega a Profile > Settings > Personal Access Tokens
- Crea un token con los permisos necesarios
- Copia el valor del token
Autenticación básica (alternativa)
Para versiones antiguas de Server sin soporte de PAT, usa nombre de usuario/contraseña:
CONFLUENCE_BASE_URL=https://confluence.example.com
CONFLUENCE_USERNAME=your-username
CONFLUENCE_PASSWORD=your-password
Controles de seguridad (importante)
El servidor ahora utiliza valores predeterminados seguros para reducir el radio de impacto de la inyección de instrucciones y el riesgo de fuga de credenciales:
CONFLUENCE_READ_ONLY=true de forma predeterminada
- Las herramientas de mutación están deshabilitadas a menos que establezcas
CONFLUENCE_READ_ONLY=false.
CONFLUENCE_ENABLE_DESTRUCTIVE_TOOLS=false de forma predeterminada
confluence_delete_page, confluence_delete_space y confluence_set_page_permissions permanecen deshabilitadas a menos que se habiliten explícitamente.
CONFLUENCE_ENABLED_TOOLS (opcional)
- Restringe la exposición a una lista explícita de herramientas permitidas.
CONFLUENCE_ALLOWED_SPACES (opcional)
- Restringe las solicitudes que incluyen
spaceKey / destinationSpaceKey a un conjunto aprobado.
CONFLUENCE_ALLOW_INSECURE_HTTP=false de forma predeterminada
- Se requiere HTTPS a menos que esto se establezca en
true.
- Incluso cuando está habilitado, el HTTP inseguro se restringe solo a localhost/loopback.
Ejemplo (habilita escrituras seguras, mantén las herramientas destructivas deshabilitadas):
CONFLUENCE_READ_ONLY=false
CONFLUENCE_ENABLE_DESTRUCTIVE_TOOLS=false
Ejemplo (lista estricta de permitidos):
CONFLUENCE_ENABLED_TOOLS=confluence_get_page,confluence_search_pages,confluence_get_page_body_chunk
Ejemplo (lista de permitidos a nivel de espacio):
CONFLUENCE_ALLOWED_SPACES=ENG,SECURITY
Configuración del cliente MCP
Cloud (npx)
{
"mcpServers": {
"confluence": {
"command": "npx",
"args": ["-y", "atlassian-confluence-mcp-server"],
"env": {
"CONFLUENCE_BASE_URL": "https://your-site.atlassian.net",
"CONFLUENCE_USERNAME": "you@example.com",
"PAT": "your-api-token"
}
}
}
}
Server / Data Center (npx)
{
"mcpServers": {
"confluence": {
"command": "npx",
"args": ["-y", "atlassian-confluence-mcp-server"],
"env": {
"CONFLUENCE_BASE_URL": "https://confluence.example.com",
"PAT": "your-personal-access-token"
}
}
}
}
Instalación global
{
"mcpServers": {
"confluence": {
"command": "atlassian-confluence-mcp-server",
"env": {
"CONFLUENCE_BASE_URL": "https://confluence.example.com",
"PAT": "your-personal-access-token"
}
}
}
}
Desde el código fuente
{
"mcpServers": {
"confluence": {
"command": "node",
"args": ["./dist/index.js"],
"env": {
"CONFLUENCE_BASE_URL": "https://confluence.example.com",
"PAT": "your-personal-access-token"
}
}
}
}
Herramientas disponibles (46)
Nota: la exposición de herramientas depende de la configuración de seguridad. Con el CONFLUENCE_READ_ONLY=true predeterminado, las herramientas de mutación están intencionalmente ocultas/bloqueadas.
Conexión
| Herramienta | Descripción |
|---|
confluence_test_connection | Probar la conexión con la API de Confluence |
Espacios
| Herramienta | Descripción |
|---|
confluence_get_spaces | Listar todos los espacios |
confluence_get_space | Obtener detalles de un espacio por clave |
confluence_get_space_by_key | Alias de get_space |
confluence_create_space | Crear un nuevo espacio |
confluence_delete_space | Eliminar un espacio y todo su contenido |
confluence_get_space_homepage | Obtener la página de inicio de un espacio |
Páginas
| Herramienta | Descripción |
|---|
confluence_get_pages | Listar páginas, opcionalmente filtradas por espacio |
confluence_get_page | Obtener página por ID |
confluence_get_page_by_title | Obtener página por título dentro de un espacio |
confluence_create_page | Crear una nueva página |
confluence_update_page | Actualizar una página existente |
confluence_patch_page | Parche exacto de buscar/reemplazar del lado del servidor para páginas grandes |
confluence_replace_page_range | Reemplazar un rango intermedio usando desplazamientos o números de línea |
confluence_append_to_page | Añadir contenido al final o al principio del lado del servidor |
confluence_get_page_body_chunk | Leer el cuerpo de una página grande en fragmentos de desplazamiento/longitud |
confluence_delete_page | Eliminar una página |
confluence_copy_page | Copiar una página, opcionalmente a un espacio diferente |
confluence_move_page | Mover una página a un padre o espacio diferente |
Búsqueda
| Herramienta | Descripción |
|---|
confluence_search | Buscar usando CQL |
confluence_search_pages | Buscar páginas por texto |
confluence_get_recently_modified | Obtener páginas modificadas recientemente |
Etiquetas
| Herramienta | Descripción |
|---|
confluence_get_page_labels | Obtener etiquetas de una página |
confluence_add_page_label | Añadir una etiqueta a una página |
confluence_delete_page_label | Eliminar una etiqueta de una página |
Comentarios
| Herramienta | Descripción |
|---|
confluence_get_page_comments | Obtener comentarios de una página |
confluence_add_page_comment | Añadir un comentario a una página |
Adjuntos
| Herramienta | Descripción |
|---|
confluence_get_page_attachments | Listar adjuntos de una página |
confluence_get_comment_attachments | Listar adjuntos de un comentario |
Jerarquía de páginas
| Herramienta | Descripción |
|---|
confluence_get_child_pages | Obtener páginas hijas de un padre |
confluence_get_page_ancestors | Obtener páginas ancestro |
Historial de versiones
| Herramienta | Descripción |
|---|
confluence_get_page_versions | Obtener el historial de versiones de una página |
confluence_get_page_version | Obtener una versión específica de una página |
Propiedades
| Herramienta | Descripción |
|---|
confluence_get_page_properties | Obtener propiedades de contenido de una página |
Usuario
| Herramienta | Descripción |
|---|
confluence_get_current_user | Obtener el usuario autenticado actual |
Observadores
| Herramienta | Descripción |
|---|
confluence_get_page_watchers | Obtener usuarios que observan una página |
confluence_watch_page | Añadir al usuario actual como observador |
confluence_unwatch_page | Eliminar al usuario actual como observador |
Permisos
| Herramienta | Descripción |
|---|
confluence_get_page_permissions | Obtener restricciones/permisos de una página |
confluence_set_page_permissions | Establecer restricciones/permisos de una página |
Tareas
| Herramienta | Descripción |
|---|
confluence_get_page_tasks | Extraer tareas en línea de una página |
Exportación
| Herramienta | Descripción |
|---|
confluence_export_page | Obtener URL de exportación de una página (PDF o Word) |
Utilidades
| Herramienta | Descripción |
|---|
confluence_get_page_by_url | Obtener página a partir de una URL de Confluence |
Espacio personal
| Herramienta | Descripción |
|---|
confluence_get_personal_space_key | Obtener la clave del espacio personal del usuario actual |
confluence_create_page_in_personal_space | Crear página en el espacio personal |
confluence_create_private_space | Crear un espacio privado |
Recursos
| URI | Descripción |
|---|
confluence://spaces | Lista de todos los espacios de Confluence |
Ejemplos de consultas CQL
# Pages in a specific space
type=page AND space=TEAM
# Pages with a label
type=page AND label=documentation
# Recently modified pages
type=page AND lastModified > now("-7d")
# Title search
type=page AND title~"Meeting Notes"
# Pages created by current user
type=page AND creator=currentUser()
Formato del cuerpo de la página
Las páginas utilizan el formato de almacenamiento de Confluence (XHTML):
<p>This is a paragraph.</p>
<h1>Heading 1</h1>
<ul>
<li>Item 1</li>
<li>Item 2</li>
</ul>
<ac:structured-macro ac:name="code">
<ac:parameter ac:name="language">javascript</ac:parameter>
<ac:plain-text-body><![CDATA[console.log("Hello");]]></ac:plain-text-body>
</ac:structured-macro>
Edición de páginas muy grandes
Cuando el cuerpo de una página es muy grande (por ejemplo, cientos de KB), evita enviar el cuerpo completo a través de confluence_update_page.
Flujo de trabajo recomendado:
- Usa
confluence_get_page_body_chunk para inspeccionar la parte relevante de la página.
- Usa una de las siguientes opciones:
confluence_patch_page para ediciones exactas de buscar/reemplazar.
confluence_replace_page_range para reemplazar un rango intermedio específico.
confluence_append_to_page para actualizaciones incrementales al final o al principio.
Notas:
- El reemplazo de rangos basado en desplazamientos es el modo más fiable para XHTML de almacenamiento.
- El reemplazo basado en líneas requiere caracteres de nueva línea reales en el cuerpo almacenado.
- Estas herramientas siguen realizando una actualización completa de Confluence internamente, pero el cuerpo completo permanece del lado del servidor.
Seguridad
- Credenciales — se leen exclusivamente de variables de entorno; nunca se codifican en el código.
- Validación de entrada — todos los parámetros proporcionados por el usuario se validan y sanean antes de su uso.
- Prevención de inyección CQL — la entrada del usuario interpolada en consultas CQL se escapa.
- Codificación de rutas URL — todos los segmentos de ruta dinámicos se codifican con
encodeURIComponent.
- Tiempos de espera de solicitudes — todas las solicitudes HTTP tienen un tiempo de espera de 30 segundos para evitar bloqueos.
- Saneamiento de errores — las respuestas de error de la API se truncan y se les elimina el HTML antes de mostrarlas.
- Límites de paginación — los límites de consulta se limitan a un máximo seguro (100) para prevenir abusos.
Contribuciones
Consulta CONTRIBUTING.md para conocer las pautas sobre cómo contribuir a este proyecto.
Política de seguridad
Para políticas de seguridad y notificación de vulnerabilidades, consulta SECURITY.md.
Registro de cambios
Consulta CHANGELOG.md para ver el historial de cambios.
Licencia
MIT
Agradecimientos