Tableau Cloud MCP Server 2.0
Un serveur MCP (Model Context Protocol) complet pour l'administration de Tableau Cloud construit avec TypeScript. Ce serveur fournit des outils de niveau entreprise avec une couverture complète de l'API Tableau Cloud, une journalisation structurée et une architecture prête pour la production.
Caractéristiques
- Couverture complète de l'API: plus de 50 outils couvrant tous les aspects de l'administration de Tableau Cloud
- Architecture d'entreprise: TypeScript avec une sécurité de type complète, une journalisation structurée et une gestion des erreurs
- Prêt pour la production: Prise en charge de Docker, configuration complète et options de déploiement professionnel
- Normes MCP officielles: Construit selon les modèles de mise en œuvre MCP officiels de Tableau
- Administration complète: Utilisateurs, groupes, classeurs, sources de données, projets, autorisations, etc
Démarrage rapide
Conditions préalables
- Node.js 20 ou supérieur
- Site Tableau Cloud avec accès API
- Jeton d'accès personnel avec autorisations d'administrateur de site
Installation
# Installer les dépendances npm install # Construire le projet npm run build
Configuration de l'environnement
- Copier le modèle d'environnement :
cp .env.example .env
- Modifiez
.env
avec vos identifiants Tableau Cloud :
SERVER=https://your-site.online.tableau.com PAT_NAME=votre-nom-de-accès-personnel PAT_VALUE=votre-valeur-de-accès-personnel SITE_NAME=votre-nom-de-site
- Mise à jour de
config.json
pour Claude Desktop :
{ "mcpServers" : { "tableau-cloud" : { "command" : "node", "args" : ["./build/index.js"], "env" : { "SERVER" : "https://your-site.online.tableau.com", "PAT_NAME" : "votre-nom-de-pat", "PAT_VALUE" : "your-pat-value", "SITE_NAME" : "votre-nom-de-site" } } }
Utilisation
Exécutez le serveur :
node build/index.js
Ou utilisez MCP Inspector :
npm run inspect
Outils disponibles
Gestion des utilisateurs
create-user
- Créer de nouveaux utilisateurs avec les rôles spécifiéssearch-users
- Liste et filtre les utilisateurs selon différents critères
Gestion du contenu
list-workbooks
- Liste et filtre les classeurs publiéslist-datasources
- Liste et filtre les sources de données publiéescreate-project
- Créer de nouveaux projets avec des paramètres de permission
Bientôt disponible
- Outils supplémentaires pour les utilisateurs (mise à jour, suppression, obtention par nom)
- Outils de gestion des groupes
- Outils de gestion des permissions
- Outils opérationnels (tâches, plannings)
- Outils d'administration de site
- Outils avancés d'accès aux données
L'architecture
Cette implémentation suit les modèles officiels Tableau MCP avec :
- TypeScript Foundation: Sécurité totale des types avec validation Zod
- Conception modulaire: Séparation nette entre la couche MCP, l'abstraction SDK et les implémentations d'outils
- Journalisation d'entreprise: Journalisation structurée avec corrélation des demandes et masquage des secrets
- Types de résultats: Gestion fonctionnelle des erreurs avec ts-results-es
- Gestion de la configuration: Configuration basée sur l'environnement avec validation
- Tests professionnels: Cadre Vitest avec rapport de couverture
Développement
# Installer les dépendances npm install # Démarrer le développement avec watch npm run build:watch # Exécuter les tests npm test # Exécuter les tests avec couverture npm run coverage # Lint le code npm run lint # Construire et inspecter npm run build:inspect
Déploiement
Docker
Construire et exécuter avec Docker :
npm run build:docker docker run -e SERVER=.... -e PAT_NAME=... -e PAT_VALUE=... -e SITE_NAME=... tableau-cloud-mcp
Production
Le serveur est conçu pour un déploiement en production avec :
- Journalisation structurée avec des niveaux configurables
- Corrélation des demandes pour le débogage
- Gestion sécurisée des informations d'identification
- Capacités de surveillance des performances
- Mécanismes de récupération des erreurs et de réessai
Options de configuration
Variable d'environnement | Description de la variable d'environnement | Défaut |
---|---|---|
SERVER | URL du serveur Tableau Cloud | Obligatoire |
PAT_NAME | Nom du jeton d'accès personnel | Obligatoire |
PAT_VALUE | Valeur du jeton d'accès personnel | Obligatoire |
SITE_NAME | Nom du site Tableau | Obligatoire |
DEFAULT_LOG_LEVEL | Niveau de journalisation | débogage |
DISABLE_LOG_MASKING | Désactive le masquage des données sensibles | false (faux) |
INCLUDE_TOOLS | Liste d'outils à inclure, séparés par des virgules | Tous les outils |
EXCLUDE_TOOLS | Liste d'outils à exclure, séparés par des virgules | Aucun |
Contribuer
- Créer une branche dans le dépôt
- Créer une branche de fonctionnalités
- Apportez vos modifications avec les types TypeScript appropriés
- Ajouter des tests pour les nouvelles fonctionnalités
- Exécuter le linting et les tests
- Soumettre une demande d'extraction
Licence
Licence MIT - Voir le fichier LICENSE pour plus de détails.
Support
Pour les questions, les problèmes ou les demandes de fonctionnalités :
- Ouvrir un problème sur GitHub
- Consulter la documentation complète de l'outil
- Examinez les exemples de configuration
Construit avec ❤️ pour la communauté Tableau