Servidor MCP de Tableau Cloud 2.0
Un completo servidor MCP (Model Context Protocol) para la administración de Tableau Cloud creado con TypeScript. Este servidor proporciona herramientas de nivel empresarial con cobertura completa de la API de Tableau Cloud, registro estructurado y arquitectura lista para producción.
Características
- Cobertura completa de API: más de 50 herramientas que cubren todos los aspectos de la administración de Tableau Cloud
- Arquitectura empresarial: TypeScript con seguridad de tipos completa, registro estructurado y gestión de errores
- Preparado para la producción: Compatibilidad con Docker, configuración completa y opciones de implementación profesionales
- Estándares oficiales de MCP: Construido siguiendo los patrones de implementación MCP oficiales de Tableau
- Administración completa: Usuarios, grupos, libros de trabajo, fuentes de datos, proyectos, permisos y mucho más
Inicio rápido
Requisitos previos
- Node.js 20 o superior
- Sitio de Tableau Cloud con acceso a la API
- Token de acceso personal con permisos de administrador del sitio
Instalación
# Instalar dependencias npm install # Construir el proyecto npm run build
Configuración
- Copiar la plantilla de entorno:
cp .env.ejemplo .env
- Edite
.env
con sus credenciales de Tableau Cloud:
SERVER=https://your-site.online.tableau.com PAT_NAME=nombre de su clave de acceso personal PAT_VALUE=valor de su clave de acceso personal SITE_NAME=nombre de su sitio web
- Actualizar
config.json
para Claude Desktop:
{ "mcpServers": { "tableau-cloud": { "command": "node", "args": ["./build/index.js"], "env": { "SERVER": "https://your-site.online.tableau.com", "PAT_NAME": "tu-nombre-pat", "VALOR-PAT": "tu-pat-valor", "SITE_NAME": "tu-nombre-de-sitio" } } } }
Utilización
Ejecute el servidor:
node build/index.js
O utilizar con MCP Inspector:
npm run inspect
Herramientas disponibles
Gestión de usuarios
create-user
- Crear nuevos usuarios con roles especificadossearch-users
- Listar y filtrar usuarios por varios criterios
Gestión de contenidos
list-workbooks
- Lista y filtra los libros de trabajo publicadoslist-datasources
- Lista y filtra las fuentes de datos publicadascreate-project
- Crear nuevos proyectos con configuración de permisos
Próximamente
- Herramientas adicionales para usuarios (actualizar, eliminar, obtener por nombre)
- Herramientas de gestión de grupos
- Herramientas de gestión de permisos
- Herramientas operativas (trabajos, programaciones)
- Herramientas de administración de sitios
- Herramientas avanzadas de acceso a datos
Arquitectura
Esta implementación sigue los patrones oficiales de Tableau MCP con:
- TypeScript Foundation: Seguridad de tipos completa con validación Zod
- Diseño modular: Separación limpia entre la capa MCP, la abstracción SDK y las implementaciones de herramientas
- Registro empresarial: Registro estructurado con correlación de solicitudes y enmascaramiento secreto
- Tipos de resultados: Gestión funcional de errores con ts-results-es
- Gestión de la configuración: Configuración basada en el entorno con validación
- Pruebas profesionales: Marco de trabajo Vitest con informes de cobertura
Desarrollo
# Instalar dependencias npm install Iniciar desarrollo con watch npm run build:watch Ejecutar pruebas npm test Ejecutar pruebas con cobertura npm run coverage Pelar código npm run lint Construir e inspeccionar npm run build:inspect
Despliegue
Docker
Construir y ejecutar con Docker:
npm run build:docker docker run -e SERVIDOR=... -e PAT_NAME=... -e PAT_VALUE=... -e SITE_NAME=... tableau-cloud-mcp
Producción
El servidor está diseñado para el despliegue en producción con:
- Registro estructurado con niveles configurables
- Correlación de solicitudes para depuración
- Gestión segura de credenciales
- Funciones de supervisión del rendimiento
- Mecanismos de recuperación y reintento de errores
Opciones de configuración
Variable de entorno | Descripción | Por defecto |
---|---|---|
SERVIDOR | URL del servidor de Tableau Cloud | Obligatorio |
NOMBRE_PAT | Nombre del token de acceso personal | Obligatorio |
PAT_VALOR | Valor de Personal Access Token | Obligatorio |
SITE_NAME | Nombre del sitio de Tableau | Obligatorio |
DEFAULT_LOG_LEVEL | Nivel de registro | depuración |
DISABLE_LOG_MASKING | Desactivar enmascaramiento de datos sensibles | false |
INCLUDE_TOOLS | Lista separada por comas de herramientas a incluir | Todas las herramientas |
EXCLUDE_TOOLS | Lista separada por comas de herramientas a excluir | Ninguna |
Contribuir
- Bifurcar el repositorio
- Crear una rama
- Haga sus cambios con los tipos adecuados de TypeScript
- Añadir pruebas para la nueva funcionalidad
- Ejecute linting y pruebas
- Envía un pull request
Licencia
Licencia MIT - Vea el archivo LICENSE para más detalles.
Soporte
Para preguntas, problemas o solicitudes de funciones:
- Abra una incidencia en GitHub
- Consulte la completa documentación de la herramienta
- Revise los ejemplos de configuración
Creado con ❤️ para la comunidad de Tableau