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

Atlassian Confluence MCP Server

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 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ísticaEste paqueteAtlassian 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.

VariableObligatoriaDescripción
CONFLUENCE_BASE_URLURL raíz de tu instancia de Confluence
PATVer más 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_ONLYNoEl valor predeterminado es true; establécelo en false para permitir herramientas de mutación
CONFLUENCE_ENABLE_DESTRUCTIVE_TOOLSNoEl valor predeterminado es false; establécelo en true para permitir herramientas de eliminación/mutación de permisos
CONFLUENCE_ENABLED_TOOLSNoLista opcional separada por comas de nombres de herramientas permitidas
CONFLUENCE_ALLOWED_SPACESNoLista opcional separada por comas de claves de espacio permitidas para solicitudes con spaceKey/destinationSpaceKey
CONFLUENCE_ALLOW_INSECURE_HTTPNoEl 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
  1. Ve a https://id.atlassian.com/manage-profile/security/api-tokens
  2. Haz clic en Create API token, 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 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
  1. Navega a Profile > Settings > Personal Access Tokens
  2. Crea un token con los permisos necesarios
  3. 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

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

Espacios

HerramientaDescripción
confluence_get_spacesListar todos los espacios
confluence_get_spaceObtener detalles de un espacio por clave
confluence_get_space_by_keyAlias de 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 exacto de buscar/reemplazar del lado del servidor para páginas grandes
confluence_replace_page_rangeReemplazar un rango intermedio usando desplazamientos o números de línea
confluence_append_to_pageAñadir contenido al final o al principio del lado del servidor
confluence_get_page_body_chunkLeer el cuerpo de una 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 de 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 de una página
confluence_add_page_commentAñadir un comentario a una página

Adjuntos

HerramientaDescripción
confluence_get_page_attachmentsListar adjuntos de una página
confluence_get_comment_attachmentsListar adjuntos de un 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 el historial de versiones de una página
confluence_get_page_versionObtener una versión específica de una página

Propiedades

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

Usuario

HerramientaDescripción
confluence_get_current_userObtener el usuario autenticado actual

Observadores

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

Permisos

HerramientaDescripción
confluence_get_page_permissionsObtener restricciones/permisos de una página
confluence_set_page_permissionsEstablecer restricciones/permisos de una 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 de una página (PDF o Word)

Utilidades

HerramientaDescripción
confluence_get_page_by_urlObtener página a partir de una URL de Confluence

Espacio personal

HerramientaDescripción
confluence_get_personal_space_keyObtener la clave del espacio personal del usuario actual
confluence_create_page_in_personal_spaceCrear página en el 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 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:

  1. Usa confluence_get_page_body_chunk para inspeccionar la parte relevante de la página.
  2. 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