Atlassian Confluence
Interactúa con espacios, páginas y contenido de Atlassian Confluence Cloud en tiempo real.
Documentación
Conecta IA a tu base de conocimiento de Confluence
Transforma la forma en que accedes e interactúas con el conocimiento de tu equipo conectando Claude, Cursor AI y otros asistentes de IA directamente a tus espacios, páginas y documentación de Confluence. Obtén respuestas instantáneas desde tu base de conocimiento, busca en todos tus espacios y agiliza tu flujo de trabajo de documentación.
Lo que puedes hacer
- Pregunta a la IA sobre tu documentación: "¿Cuál es nuestro proceso de autenticación de API?"
- Busca en todos los espacios: "Encuentra todas las páginas sobre mejores prácticas de seguridad"
- Obtén respuestas instantáneas: "Muéstrame las últimas notas de versión del espacio Product"
- Accede al conocimiento del equipo: "¿Cuáles son nuestras políticas de RRHH para trabajo remoto?"
- Revisa comentarios de páginas: "Muéstrame la discusión sobre el documento de arquitectura"
- Crea y actualiza contenido: "Crea una nueva página en el espacio DEV"
Perfecto para
- Desarrolladores que necesitan acceso rápido a documentación técnica y guías de API
- Gerentes de Producto que buscan requisitos, especificaciones y actualizaciones de proyectos
- Equipos de RRHH que acceden rápidamente a documentos de políticas y recursos para empleados
- Equipos de Soporte que encuentran guías de solución de problemas y artículos de la base de conocimiento
- Cualquier persona que quiera interactuar con Confluence usando lenguaje natural
Inicio rápido
Ponte en marcha en 2 minutos:
1. Obtén tus credenciales de Confluence
Genera un token de API de Confluence:
- Ve a Tokens de API de Atlassian
- Haz clic en Crear token de API
- Dale un nombre como "Asistente de IA"
- Copia el token generado inmediatamente (¡no lo volverás a ver!)
2. Pruébalo al instante
# Set your credentials
export ATLASSIAN_SITE_NAME="your-company" # for your-company.atlassian.net
export ATLASSIAN_USER_EMAIL="your.email@company.com"
export ATLASSIAN_API_TOKEN="your_api_token"
# List your Confluence spaces (TOON format by default)
npx -y @aashari/mcp-server-atlassian-confluence get --path "/wiki/api/v2/spaces"
# Get details about a specific space with field filtering
npx -y @aashari/mcp-server-atlassian-confluence get \
--path "/wiki/api/v2/spaces/123456" \
--jq "{id: id, key: key, name: name, type: type}"
# Get a page with JMESPath filtering
npx -y @aashari/mcp-server-atlassian-confluence get \
--path "/wiki/api/v2/pages/789" \
--jq "{id: id, title: title, status: status}"
# Search for pages (using CQL)
npx -y @aashari/mcp-server-atlassian-confluence get \
--path "/wiki/rest/api/search" \
--query-params '{"cql": "type=page AND space=DEV"}'
Conéctate a asistentes de IA
Para usuarios de Claude Desktop
Añade esto a tu archivo de configuración de Claude (~/.claude/claude_desktop_config.json):
{
"mcpServers": {
"confluence": {
"command": "npx",
"args": ["-y", "@aashari/mcp-server-atlassian-confluence"],
"env": {
"ATLASSIAN_SITE_NAME": "your-company",
"ATLASSIAN_USER_EMAIL": "your.email@company.com",
"ATLASSIAN_API_TOKEN": "your_api_token"
}
}
}
}
Reinicia Claude Desktop y verás el servidor de confluence en la barra de estado.
Para otros asistentes de IA
La mayoría de los asistentes de IA admiten MCP (Cursor AI, Continue.dev y otros). Instala el servidor globalmente:
npm install -g @aashari/mcp-server-atlassian-confluence
Luego configura tu asistente de IA para usar el servidor MCP con transporte STDIO. El binario está disponible como mcp-atlassian-confluence después de la instalación global.
Alternativa: Archivo de configuración
Crea ~/.mcp/configs.json para configuración a nivel de sistema:
{
"confluence": {
"environments": {
"ATLASSIAN_SITE_NAME": "your-company",
"ATLASSIAN_USER_EMAIL": "your.email@company.com",
"ATLASSIAN_API_TOKEN": "your_api_token"
}
}
}
Claves de configuración alternativas: El sistema también acepta "atlassian-confluence", "@aashari/mcp-server-atlassian-confluence" o "mcp-server-atlassian-confluence" en lugar de "confluence".
Uso de variables de entorno
También puedes configurar las credenciales usando variables de entorno o un archivo .env:
# Create a .env file in your project directory
cat > .env << EOF
ATLASSIAN_SITE_NAME=your-company
ATLASSIAN_USER_EMAIL=your.email@company.com
ATLASSIAN_API_TOKEN=your_api_token
DEBUG=false
EOF
El servidor cargará automáticamente estos valores desde:
- Variables de entorno
- Archivo
.enven el directorio actual ~/.mcp/configs.json(como se muestra arriba)
Herramientas disponibles
Este servidor MCP proporciona 5 herramientas genéricas que pueden acceder a cualquier endpoint de la API de Confluence:
| Herramienta | Descripción |
|---|---|
conf_get | GET a cualquier endpoint de la API de Confluence (leer datos) |
conf_post | POST a cualquier endpoint (crear recursos) |
conf_put | PUT a cualquier endpoint (reemplazar recursos) |
conf_patch | PATCH a cualquier endpoint (actualizaciones parciales) |
conf_delete | DELETE desde cualquier endpoint (eliminar recursos) |
Parámetros de las herramientas
Todas las herramientas comparten estos parámetros comunes:
path(obligatorio): La ruta del endpoint de la API (p. ej.,/wiki/api/v2/spaces)queryParams(opcional): Parámetros de consulta como pares clave-valor (p. ej.,{"limit": "25", "space-id": "123"})jq(opcional): Expresión JMESPath para filtrar/transformar la respuesta (p. ej.,results[*].{id: id, title: title})outputFormat(opcional): Formato de salida:"toon"(predeterminado, 30-60% menos tokens) o"json"
Herramientas que aceptan un cuerpo de solicitud (conf_post, conf_put, conf_patch):
body(obligatorio): Cuerpo de la solicitud como objeto JSON
Rutas de API comunes
Espacios:
/wiki/api/v2/spaces- Listar todos los espacios/wiki/api/v2/spaces/{id}- Obtener detalles del espacio
Páginas:
/wiki/api/v2/pages- Listar páginas (usa el parámetro de consultaspace-idpara filtrar)/wiki/api/v2/pages/{id}- Obtener detalles de la página/wiki/api/v2/pages/{id}/body- Obtener el cuerpo de la página (usa el parámetrobody-format)/wiki/api/v2/pages/{id}/children- Obtener páginas hijas/wiki/api/v2/pages/{id}/labels- Obtener etiquetas de la página
Comentarios:
/wiki/api/v2/pages/{id}/footer-comments- Listar/añadir comentarios de pie de página/wiki/api/v2/pages/{id}/inline-comments- Listar/añadir comentarios en línea/wiki/api/v2/footer-comments/{comment-id}- Obtener/actualizar/eliminar comentario
Publicaciones de blog:
/wiki/api/v2/blogposts- Listar publicaciones de blog/wiki/api/v2/blogposts/{id}- Obtener publicación de blog
Búsqueda:
/wiki/rest/api/search- Buscar contenido (usa el parámetro de consultacql)
Formato de salida TOON
¿Qué es TOON? TOON (Token-Oriented Object Notation) es un formato optimizado para la eficiencia de tokens de LLM, que reduce los costos de tokens en un 30-60% en comparación con JSON. Es el formato de salida predeterminado para todas las herramientas.
Beneficios:
- Los arreglos tabulares usan menos tokens que los arreglos JSON
- Sintaxis mínima (sin comillas, corchetes o comas innecesarios)
- Sigue siendo legible para humanos y analizable
Cuándo usar JSON en su lugar:
- Cuando necesitas JSON estándar para otras herramientas
- Cuando se necesita depuración o inspección manual
Comparación de ejemplo:
// JSON format (verbose)
{"results": [{"id": "123", "title": "My Page"}, {"id": "456", "title": "Other Page"}]}
// TOON format (efficient)
results:
- id: 123
title: My Page
- id: 456
title: Other Page
Para usar JSON en lugar de TOON, establece outputFormat: "json" en tu solicitud.
Filtrado JMESPath
Todas las herramientas admiten filtrado opcional con JMESPath (jq) para extraer datos específicos y reducir costos de tokens:
# Get just space names and keys
npx -y @aashari/mcp-server-atlassian-confluence get \
--path "/wiki/api/v2/spaces" \
--jq "results[].{id: id, key: key, name: name}"
# Get page title and status
npx -y @aashari/mcp-server-atlassian-confluence get \
--path "/wiki/api/v2/pages/123456" \
--jq "{id: id, title: title, status: status}"
IMPORTANTE: Usa siempre el parámetro jq para filtrar las respuestas a solo los campos que necesitas. Las respuestas sin filtrar pueden ser muy grandes y costosas en términos de tokens.
Referencia de sintaxis JMESPath:
- Documentación oficial: jmespath.org
- Patrones comunes:
results[*]- Todos los elementos en el arreglo de resultadosresults[0]- Solo el primer elementoresults[*].id- Solo los IDs de todos los elementosresults[*].{id: id, title: title}- Crear objetos con campos seleccionadosresults[?status=='current']- Filtrar por condición
Ejemplos del mundo real
Explora tu base de conocimiento
Pregunta a tu asistente de IA:
- "Lista todos los espacios en nuestro Confluence"
- "Muéstrame detalles sobre el espacio Engineering"
- "¿Qué páginas hay en nuestro espacio Product?"
- "Encuentra las páginas más recientes en el espacio Marketing"
Busca y encuentra información
Pregunta a tu asistente de IA:
- "Busca páginas sobre autenticación de API"
- "Encuentra toda la documentación con 'security' en el título"
- "Muéstrame páginas etiquetadas con 'getting-started'"
- "Busca contenido en el espacio DEV sobre implementación"
Accede a contenido específico
Pregunta a tu asistente de IA:
- "Obtén el contenido de la página Guía de Autenticación de API"
- "Muéstrame el documento de lista de verificación de incorporación"
- "¿Qué hay en nuestra página de políticas de seguridad?"
- "Muestra las últimas notas de versión"
Crea y actualiza contenido
Pregunta a tu asistente de IA:
- "Crea una nueva página en el espacio DEV titulada 'Guía de API'"
- "Añade un comentario al documento de arquitectura"
- "Actualiza el contenido de la página con la nueva información de la versión"
Comandos CLI
La CLI refleja las herramientas MCP para acceso directo desde la terminal. Todos los comandos admiten los mismos parámetros que las herramientas.
Comandos disponibles
get- GET a cualquier endpoint de Confluencepost- POST a cualquier endpointput- PUT a cualquier endpointpatch- PATCH a cualquier endpointdelete- DELETE desde cualquier endpoint
Parámetros CLI
Todos los comandos:
-p, --path <path>(obligatorio) - Ruta del endpoint de la API-q, --query-params <json>(opcional) - Parámetros de consulta como JSON--jq <expression>(opcional) - Expresión de filtro JMESPath-o, --output-format <format>(opcional) - Formato de salida:toon(predeterminado) ojson
Comandos con cuerpo (post, put, patch):
-b, --body <json>(obligatorio) - Cuerpo de la solicitud como JSON
Ejemplos
# GET request
npx -y @aashari/mcp-server-atlassian-confluence get --path "/wiki/api/v2/spaces"
# GET with query parameters and JMESPath filter
npx -y @aashari/mcp-server-atlassian-confluence get \
--path "/wiki/api/v2/pages" \
--query-params '{"space-id": "123456", "limit": "10"}' \
--jq "results[*].{id: id, title: title}"
# GET with JSON output format
npx -y @aashari/mcp-server-atlassian-confluence get \
--path "/wiki/api/v2/spaces" \
--output-format json
# POST request (create a page)
npx -y @aashari/mcp-server-atlassian-confluence post \
--path "/wiki/api/v2/pages" \
--body '{"spaceId": "123456", "status": "current", "title": "New Page", "body": {"representation": "storage", "value": "<p>Content here</p>"}}'
# POST request (add a comment)
npx -y @aashari/mcp-server-atlassian-confluence post \
--path "/wiki/api/v2/pages/789/footer-comments" \
--body '{"body": {"representation": "storage", "value": "<p>My comment</p>"}}'
# PUT request (update page - requires version increment)
npx -y @aashari/mcp-server-atlassian-confluence put \
--path "/wiki/api/v2/pages/789" \
--body '{"id": "789", "status": "current", "title": "Updated Title", "spaceId": "123456", "body": {"representation": "storage", "value": "<p>Updated content</p>"}, "version": {"number": 2}}'
# PATCH request (partial update)
npx -y @aashari/mcp-server-atlassian-confluence patch \
--path "/wiki/api/v2/spaces/123456" \
--body '{"name": "New Space Name"}'
# DELETE request
npx -y @aashari/mcp-server-atlassian-confluence delete \
--path "/wiki/api/v2/pages/789"
Manejo de respuestas
Truncamiento de respuestas grandes
Cuando las respuestas de la API superan aproximadamente 40,000 caracteres (~10,000 tokens), el servidor trunca automáticamente la respuesta para mantenerse dentro de los límites de tokens. Cuando esto ocurre:
-
Verás un aviso de truncamiento al final de la respuesta mostrando:
- Cuánto de la respuesta original se muestra
- El tamaño de la respuesta original
- Orientación sobre cómo acceder a los datos completos
-
La respuesta sin procesar completa se guarda en un archivo temporal en
/tmp/mcp/(la ruta se proporciona en el aviso de truncamiento) -
Mejores prácticas para evitar el truncamiento:
- Usa siempre el parámetro
jqpara filtrar respuestas a solo los campos necesarios - Usa el parámetro de consulta
limitpara restringir el número de resultados (p. ej.,{"limit": "5"}) - Solicita recursos específicos por ID en lugar de listar todos
- Usa consultas CQL específicas para búsquedas
- Usa siempre el parámetro
Ejemplo de filtrado eficiente:
# Instead of getting all space data (can be huge):
npx -y @aashari/mcp-server-atlassian-confluence get \
--path "/wiki/api/v2/spaces"
# Get only the fields you need:
npx -y @aashari/mcp-server-atlassian-confluence get \
--path "/wiki/api/v2/spaces" \
--query-params '{"limit": "10"}' \
--jq "results[*].{id: id, key: key, name: name}"
Registro de depuración
Habilita el registro de depuración para ver información detallada de solicitudes/respuestas:
# Set DEBUG environment variable
export DEBUG=true
# For MCP mode
DEBUG=true npx -y @aashari/mcp-server-atlassian-confluence
# For CLI mode
DEBUG=true npx -y @aashari/mcp-server-atlassian-confluence get --path "/wiki/api/v2/spaces"
Los registros de depuración se escriben en: ~/.mcp/data/@aashari-mcp-server-atlassian-confluence.[session-id].log
Pruebas y desarrollo
Uso del Inspector MCP
El Inspector MCP proporciona una interfaz visual para probar herramientas:
# Install the server globally
npm install -g @aashari/mcp-server-atlassian-confluence
# Run with MCP Inspector
npx @modelcontextprotocol/inspector node $(which mcp-atlassian-confluence)
O usa el comando de desarrollo integrado si has clonado el repositorio:
npm run mcp:inspect
Esto inicia el servidor en modo HTTP y abre la interfaz del inspector en tu navegador.
Modo HTTP para pruebas
Puedes ejecutar el servidor en modo HTTP para probar con curl u otros clientes HTTP:
# Start server in HTTP mode
TRANSPORT_MODE=http npx -y @aashari/mcp-server-atlassian-confluence
El servidor escuchará en http://localhost:3000/mcp de forma predeterminada. Puedes cambiar el puerto:
PORT=8080 TRANSPORT_MODE=http npx -y @aashari/mcp-server-atlassian-confluence
Pruebas con curl:
# Initialize session
curl -X POST http://localhost:3000/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc": "2.0", "id": 1, "method": "initialize", "params": {"protocolVersion": "2024-11-05", "clientInfo": {"name": "curl-test", "version": "1.0.0"}, "capabilities": {}}}'
# List available tools
curl -X POST http://localhost:3000/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc": "2.0", "id": 2, "method": "tools/list"}'
# Call a tool
curl -X POST http://localhost:3000/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc": "2.0", "id": 3, "method": "tools/call", "params": {"name": "conf_get", "arguments": {"path": "/wiki/api/v2/spaces", "queryParams": {"limit": "5"}}}}'
La respuesta viene como eventos enviados por el servidor (SSE) con el formato:
event: message
data: {"jsonrpc": "2.0", "id": 1, "result": {...}}
Solución de problemas
"Error de autenticación" o "403 Prohibido"
-
Verifica los permisos de tu token de API:
- Ve a Tokens de API de Atlassian
- Asegúrate de que tu token siga activo y no haya expirado
-
Verifica el formato de tu nombre de sitio:
- Si tu URL de Confluence es
https://mycompany.atlassian.net - Tu nombre de sitio debería ser solo
mycompany
- Si tu URL de Confluence es
-
Prueba tus credenciales:
npx -y @aashari/mcp-server-atlassian-confluence get --path "/wiki/api/v2/spaces?limit=1"
"Recurso no encontrado" o "404"
-
Verifica la ruta de la API:
- Las rutas distinguen entre mayúsculas y minúsculas
- Usa IDs numéricos para espacios y páginas (no claves)
- Verifica que el recurso exista en tu navegador
-
Verifica los permisos de acceso:
- Asegúrate de tener acceso al espacio/página en tu navegador
- Algún contenido puede estar restringido a ciertos usuarios
"No se encontraron resultados" al buscar
-
Prueba diferentes términos de búsqueda:
- Usa sintaxis CQL para búsquedas avanzadas
- Prueba criterios de búsqueda más amplios
-
Verifica la sintaxis CQL:
- Valida tu CQL en la búsqueda avanzada de Confluence primero
Problemas de integración con Claude Desktop
- Reinicia Claude Desktop después de actualizar el archivo de configuración
- Verifica la ubicación del archivo de configuración:
- macOS:
~/.claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
- macOS:
Obtener ayuda
Si sigues teniendo problemas:
- Ejecuta un comando de prueba simple para verificar que todo funciona
- Revisa los Problemas de GitHub para problemas similares
- Crea un nuevo problema con tu mensaje de error y detalles de configuración
Preguntas frecuentes
¿Qué permisos necesito?
Tu cuenta de Atlassian necesita:
- Acceso a Confluence con los permisos adecuados para los espacios que quieras consultar
- Token de API con permisos apropiados (se otorgan automáticamente al crear uno)
¿Puedo usar esto con Confluence Server (local)?
Actualmente, esta herramienta solo admite Confluence Cloud. El soporte para Confluence Server/Data Center puede añadirse en versiones futuras.
¿Cómo encuentro mi nombre de sitio?
Tu nombre de sitio es la primera parte de tu URL de Confluence:
- URL:
https://mycompany.atlassian.net-> Nombre de sitio:mycompany - URL:
https://acme-corp.atlassian.net-> Nombre de sitio:acme-corp
¿Con qué asistentes de IA funciona esto?
Con cualquier asistente de IA que admita el Protocolo de Contexto de Modelo (MCP):
- Claude Desktop
- Cursor AI
- Continue.dev
- Muchos otros
¿Mis datos están seguros?
¡Sí! Esta herramienta:
- Se ejecuta completamente en tu máquina local
- Usa tus propias credenciales de Confluence
- Nunca envía tus datos a terceros
- Solo accede a lo que le des permiso de acceder
¿Puedo buscar en todos mis espacios a la vez?
¡Sí! Usa consultas CQL para búsquedas entre espacios. Por ejemplo:
npx -y @aashari/mcp-server-atlassian-confluence get \
--path "/wiki/rest/api/search" \
--query-params '{"cql": "type=page AND text~\"API documentation\""}'
Migración desde v2.x
La versión 3.0 reemplaza más de 8 herramientas específicas con 5 herramientas genéricas de métodos HTTP. Si estás actualizando desde v2.x:
Antes (v2.x):
conf_ls_spaces, conf_get_space, conf_ls_pages, conf_get_page,
conf_search, conf_ls_comments, conf_add_comment, ...
Después (v3.0):
conf_get, conf_post, conf_put, conf_patch, conf_delete
Ejemplos de migración:
conf_ls_spaces->conf_getcon la ruta/wiki/api/v2/spacesconf_get_space->conf_getcon la ruta/wiki/api/v2/spaces/{id}conf_ls_pages->conf_getcon la ruta/wiki/api/v2/pages?space-id={id}conf_get_page->conf_getcon la ruta/wiki/api/v2/pages/{id}conf_search->conf_getcon la ruta/wiki/rest/api/search?cql=...conf_add_comment->conf_postcon la ruta/wiki/api/v2/pages/{id}/footer-comments
Detalles técnicos
Requisitos
- Node.js: 18.0.0 o superior
- MCP SDK: 1.23.0 (utiliza la API moderna
registerTool) - Confluence: Solo Cloud (Server/Data Center no compatibles)
Arquitectura
Este servidor sigue una arquitectura de 5 capas:
- Capa de herramientas (
src/tools/) - Definiciones de herramientas MCP con validación Zod - Capa CLI (
src/cli/) - CLI basada en Commander para pruebas directas - Capa de controladores (
src/controllers/) - Lógica de negocio, filtrado JMESPath, formato de salida - Capa de servicios (
src/services/) - Comunicación con la API de Confluence - Capa de utilidades (
src/utils/) - Utilidades compartidas (logger, configuración, formateadores, codificador TOON)
Características
- Herramientas genéricas de métodos HTTP - Accede a cualquier endpoint de la API de Confluence
- Formato de salida TOON - Reducción de tokens del 30-60% frente a JSON
- Filtrado JMESPath - Extrae solo los datos necesarios
- Truncamiento de respuestas - Manejo automático de respuestas grandes
- Registro de respuestas sin procesar - Respuestas completas guardadas en
/tmp/mcp/ - Transporte dual - STDIO (para Claude Desktop) y HTTP (para integraciones web)
- Registro de depuración - Registro completo para resolución de problemas
Historial de versiones
v3.2.1 (Actual)
- Añade registro de respuestas sin procesar con truncamiento para respuestas grandes de la API
- Mejora la compatibilidad de dependencias
v3.2.0
- Moderniza el SDK de MCP a v1.23.0 con la API registerTool
v3.1.0
- Añade formato de salida TOON para respuestas LLM eficientes en tokens
v3.0.0 (Cambio importante)
- Reemplaza más de 8 herramientas específicas de dominio con 5 herramientas genéricas de métodos HTTP
- Añade soporte de filtrado JMESPath
- Acceso completo a la API de Confluence mediante métodos genéricos
Consulta CHANGELOG.md para el historial completo de versiones.
Soporte
¿Necesitas ayuda? Así puedes obtener asistencia:
- Consulta la sección de solución de problemas anterior - los problemas más comunes están cubiertos allí
- Visita nuestro repositorio de GitHub para documentación y ejemplos: github.com/aashari/mcp-server-atlassian-confluence
- Reporta problemas en GitHub Issues
- Inicia una discusión para solicitudes de funciones o preguntas generales
Hecho con cuidado para equipos que quieren llevar la IA a su flujo de trabajo de gestión del conocimiento.