atlassian-confluence-mcp-server

Un servidor de código abierto del Protocolo de Contexto de Modelo (MCP) 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, servidores on-premise y despliegues de Data Center: conecta tu agente de codificación de IA a la base de conocimiento de tu equipo en segundos a través de npx.

Documentación

Servidor MCP de Atlassian Confluence

CI npm version npm downloads License: MIT

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 codificación a la base de conocimiento de tu equipo en segundos a través de npx.

¿Por qué atlassian-confluence-mcp-server?

  • ✅ Único servidor MCP que soporta Cloud + Server + Data Center en un solo paquete
  • ✅ 47 herramientas — el MCP de Confluence más completo disponible
  • ✅ Configuración cero a través de npx — no requiere instalación
  • ✅ Soporte para PAT, Autenticación Básica y tokens de API
  • ✅ Mantenido activamente con versiones firmadas con procedencia

¿Por qué usar esto en lugar del servidor MCP oficial de Atlassian?

CaracterísticaEste paqueteAtlassian Oficial
Confluence Cloud✅✅
Server local✅❌
Data Center✅❌
Configuración cero vía npx✅❌
47 herramientas✅~15 herramientas
Gestión de espacios (crear/eliminar)✅❌
Copiar/mover páginas✅❌
Observadores✅❌
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 por 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 y subir 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 páginas desde una URL de Confluence

Requisitos previos

  • Node.js 22.12+
  • Una instancia de Confluence (Cloud o Server/Data Center 7.9+)
  • Credenciales de autenticación (PAT o nombre de usuario/contraseña)

Instalación

Vía 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 a través de variables de entorno. Nunca codifiques credenciales.

VariableRequeridaDescripción
CONFLUENCE_BASE_URLSíURL raíz de tu instancia de Confluence
PATVer abajoToken de API (Cloud) o Token de Acceso Personal (Server/DC)
CONFLUENCE_USERNAMESolo CloudEl correo de tu cuenta de Atlassian
CONFLUENCE_PASSWORDAutenticación alternativaContraseña o token de API para Autenticación Básica
CONFLUENCE_READ_ONLYNoPor defecto es true; establece false para permitir herramientas de mutación
CONFLUENCE_ENABLE_DESTRUCTIVE_TOOLSNoPor defecto es false; establece true para permitir herramientas de eliminación/mutación de permisos
CONFLUENCE_ENABLED_TOOLSNoLista opcional separada por comas de nombres de herramientas a exponer
CONFLUENCE_ALLOWED_SPACESNoLista opcional separada por comas de claves de espacio para solicitudes con spaceKey/destinationSpaceKey
CONFLUENCE_ALLOW_INSECURE_HTTPNoPor defecto es false; solo permite http:// para localhost/loopback cuando se establece true
CONFLUENCE_MAX_ATTACHMENT_BYTESNoTamaño máximo de archivo del lado del cliente para confluence_upload_attachment en bytes (por defecto: 52428800 / 50 MB). Confluence puede imponer un límite de instancia menor.
CONFLUENCE_UPLOAD_ALLOWED_DIRSNoSeguridad: Lista separada por comas de rutas de directorio absolutas desde las cuales se permiten cargas de archivos. Vacía por defecto (cargas deshabilitadas).

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
  1. Ve a https://id.atlassian.com/manage-profile/security/api-tokens
  2. Haz clic en Crear token de API, asígnale una etiqueta y copia el valor
  3. Establece CONFLUENCE_USERNAME con el correo de tu cuenta de Atlassian
  4. Establece PAT con el token de API copiado

Confluence Server / Data Center (7.9+)

Las instancias de Server y Data Center usan 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
  1. Navega a Perfil > Configuración > Tokens de Acceso Personal
  2. Crea un token con los permisos requeridos
  3. Copia el valor del token

Autenticación Básica (alternativa)

Para versiones de Server más antiguas 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 usa valores predeterminados seguros para reducir el radio de explosión de inyección de prompts y el riesgo de fuga de credenciales:

  • CONFLUENCE_READ_ONLY=true por defecto
    • Las herramientas de mutación están deshabilitadas a menos que establezcas CONFLUENCE_READ_ONLY=false.
  • CONFLUENCE_ENABLE_DESTRUCTIVE_TOOLS=false por defecto
    • 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 de herramientas explícita.
  • CONFLUENCE_ALLOWED_SPACES (opcional)
    • Restringe solicitudes que incluyan spaceKey / destinationSpaceKey a un conjunto aprobado.
  • CONFLUENCE_ALLOW_INSECURE_HTTP=false por defecto
    • Se requiere HTTPS a menos que esto se establezca en true.
    • Incluso cuando está habilitado, HTTP inseguro se restringe solo a localhost/loopback.
  • CONFLUENCE_MAX_ATTACHMENT_BYTES (opcional, por defecto 50 MB)
    • Limita el tamaño de un archivo host que confluence_upload_attachment leerá antes de llamar a Confluence.
    • Independiente de la configuración administrativa de "Tamaño Máximo de Adjuntos" de la instancia (no expuesta a través de REST público).
  • CONFLUENCE_UPLOAD_ALLOWED_DIRS (opcional, por defecto vacío)
    • Restringe explícitamente qué directorios host puede leer el servidor MCP al subir adjuntos.
    • Si no se configura, las cargas de archivos desde el sistema de archivos host están completamente deshabilitadas.

Ejemplo (habilitar escrituras seguras, mantener herramientas destructivas deshabilitadas):

CONFLUENCE_READ_ONLY=false
CONFLUENCE_ENABLE_DESTRUCTIVE_TOOLS=false

Ejemplo (lista de permitidos estricta):

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 (47)

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

HerramientaDescripción
confluence_test_connectionProbar conexión con la API de Confluence

Espacios

HerramientaDescripción
confluence_get_spacesListar todos los espacios
confluence_get_spaceObtener detalles del espacio por clave
confluence_get_space_by_keyAlias para get_space
confluence_create_spaceCrear un nuevo espacio
confluence_delete_spaceEliminar un espacio y todo su contenido
confluence_get_space_homepageObtener la página de inicio de un espacio

Páginas

HerramientaDescripción
confluence_get_pagesListar páginas, opcionalmente filtradas por espacio
confluence_get_pageObtener página por ID
confluence_get_page_by_titleObtener página por título dentro de un espacio
confluence_create_pageCrear una nueva página
confluence_update_pageActualizar una página existente
confluence_patch_pageParche de buscar/reemplazar exacto del lado del servidor para páginas grandes
confluence_replace_page_rangeReemplazar rango medio usando desplazamientos o números de línea
confluence_append_to_pageAñadir o anteponer contenido del lado del servidor
confluence_get_page_body_chunkLeer cuerpo de página grande en fragmentos de desplazamiento/longitud
confluence_delete_pageEliminar una página
confluence_copy_pageCopiar una página, opcionalmente a un espacio diferente
confluence_move_pageMover una página a un padre o espacio diferente

Búsqueda

HerramientaDescripción
confluence_searchBuscar usando CQL
confluence_search_pagesBuscar páginas por texto
confluence_get_recently_modifiedObtener páginas modificadas recientemente

Etiquetas

HerramientaDescripción
confluence_get_page_labelsObtener etiquetas en una página
confluence_add_page_labelAñadir una etiqueta a una página
confluence_delete_page_labelEliminar una etiqueta de una página

Comentarios

HerramientaDescripción
confluence_get_page_commentsObtener comentarios en una página
confluence_add_page_commentAñadir un comentario a una página

Adjuntos

HerramientaDescripción
confluence_get_page_attachmentsListar adjuntos en una página
confluence_get_comment_attachmentsListar adjuntos en un comentario
confluence_upload_attachmentSubir/actualizar un archivo local como adjunto de página o comentario

Jerarquía de Páginas

HerramientaDescripción
confluence_get_child_pagesObtener páginas hijas de un padre
confluence_get_page_ancestorsObtener páginas ancestro

Historial de Versiones

HerramientaDescripción
confluence_get_page_versionsObtener historial de versiones de página
confluence_get_page_versionObtener una versión específica de página

Propiedades

HerramientaDescripción
confluence_get_page_propertiesObtener propiedades de contenido de una página

Usuario

HerramientaDescripción
confluence_get_current_userObtener usuario autenticado actual

Observadores

HerramientaDescripción
confluence_get_page_watchersObtener usuarios que observan una página
confluence_watch_pageAñadir usuario actual como observador
confluence_unwatch_pageEliminar usuario actual como observador

Permisos

HerramientaDescripción
confluence_get_page_permissionsObtener restricciones/permisos de página
confluence_set_page_permissionsEstablecer restricciones/permisos de página

Tareas

HerramientaDescripción
confluence_get_page_tasksExtraer tareas en línea de una página

Exportación

HerramientaDescripción
confluence_export_pageObtener URL de exportación para una página (PDF o Word)

Utilidades

HerramientaDescripción
confluence_get_page_by_urlObtener página desde una URL de Confluence

Espacio Personal

HerramientaDescripción
confluence_get_personal_space_keyObtener clave de espacio personal del usuario actual
confluence_create_page_in_personal_spaceCrear página en espacio personal
confluence_create_private_spaceCrear un espacio privado

Recursos

URIDescripción
confluence://spacesLista 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 Página

Las páginas usan 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:

  1. Usa confluence_get_page_body_chunk para inspeccionar la parte relevante de la página.
  2. Usa uno de:
    • confluence_patch_page para ediciones exactas de buscar/reemplazar.
    • confluence_replace_page_range para reemplazar un rango medio específico.
    • confluence_append_to_page para actualizaciones incrementales de añadir/anteponer.

Notas:

  • El reemplazo de rango basado en desplazamiento es el modo más confiable para XHTML de almacenamiento.
  • El reemplazo basado en líneas requiere caracteres de nueva línea reales en el cuerpo almacenado.
  • Estas herramientas aún realizan 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 codificadas.
  • 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 ruta URL — todos los segmentos de ruta dinámicos se codifican con encodeURIComponent.
  • Tiempos de espera de solicitud — todas las solicitudes HTTP tienen un tiempo de espera de 30 segundos para evitar bloqueos.
  • Saneamiento de errores — las respuestas de error de 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 las pautas sobre cómo contribuir a este proyecto.

Política de Seguridad

Para políticas de seguridad y reporte de vulnerabilidades, consulta SECURITY.md.

Registro de Cambios

Consulta CHANGELOG.md para un historial de cambios.

Licencia

MIT

Agradecimientos