Skip to content

Connecteurs MCP (référence)

TaTi ne « embarque » pas toute la logique des intégrations dans le binaire web : chaque domaine (Slack, cloud, base de données…) est servi par un pont MCP — petit service HTTP compatible Model Context Protocol. Vous les lancez via Docker Compose (ou à la main), puis vous déclarez leur URL dans l’interface : Paramètres → Serveurs MCP (les préréglages du dépôt reprennent les noms de service et chemins /mcp). La grille presets de l’UI est illustrée dans Introduction — Nouveau serveur MCP.

Rappel

Les ports ci‑dessous sont les ports hôte par défaut du fichier .env.example. Ils sont modifiables : gardez la cohérence entre .env, docker compose et l’URL enregistrée dans TaTi (ex. si vous changez MCP_SLACK_PORT, l’URL http://localhost:…/mcp change aussi).

Architecture MCP (vue d'ensemble)

Architecture MCP v2

Ce schéma montre la séparation des responsabilités :

  • TaTi UI / API : orchestre la conversation, choisit les outils à appeler et consolide les réponses.
  • Serveurs MCP : exposent des capacités spécialisées (Slack, GitHub, DB, cloud, observabilité) via une interface MCP homogène.
  • Systèmes cibles : restent derrière les connecteurs MCP, avec leurs permissions, tokens et garde-fous.
  • Bénéfice principal : ajouter un nouveau domaine se fait en branchant un serveur MCP, sans modifier le coeur de TaTi.

Flux d'appel MCP (pas à pas)

Flux d'appel MCP v2

Cycle d'execution typique d'un appel MCP :

  1. L'utilisateur envoie une demande dans TaTi.
  2. Le modèle décide qu'un outil MCP est nécessaire (ex. dashboard, SQL, ticket, observabilité).
  3. TaTi appelle le serveur MCP concerné avec le contexte utile.
  4. Le serveur MCP exécute l'action sur le système externe puis retourne un résultat structuré.
  5. TaTi reformule la réponse finale utilisateur avec les données récupérées.

Point sécurité : les droits effectifs sont ceux du token/compte du serveur MCP, pas des droits du modèle.

Tableau récapitulatif

ConnecteurPort hôte (défaut)URL type (dans le réseau Compose)Variables clés
OpenMetadata8001http://mcp-openmetadata:8001/mcpOPENMETADATA_URL, OPENMETADATA_JWT
Metabase MCP— (HTTPS)https://YOUR-METABASE/api/mcpOAuth 2.0 access token, MB_SITE_URL côté Metabase
Tableau MCP8024 → 3927 internehttp://mcp-tableau:3927/tableau-mcpTABLEAU_SERVER_URL, TABLEAU_SITE_NAME, TABLEAU_PAT_* (ou OAuth)
PostgreSQL8002http://mcp-postgres:8002/mcpMCP_POSTGRES_DATABASE_URL, MCP_POSTGRES_READ_ONLY
PDF8003http://mcp-pdf:8003/mcpMCP_PDF_PUBLIC_BASE_URL
Notion8004http://mcp-notion:8004/mcpMCP_NOTION_TOKEN
GitHub8007http://mcp-github:8007/mcpMCP_GITHUB_TOKEN
GitLab8008http://mcp-gitlab:8008/mcpMCP_GITLAB_TOKEN, MCP_GITLAB_URL
Atlassian Rovo MCP— (HTTPS)https://mcp.atlassian.com/v1/mcpOAuth 2.1 access token
monday.com MCP— (HTTPS)https://mcp.monday.com/mcpOAuth access token (+ Api-Version optionnel)
Linear MCP— (HTTPS)https://mcp.linear.app/mcpOAuth 2.1 access token
Elasticsearch8009 → 8080 internehttp://mcp-elasticsearch:8080/mcpMCP_ELASTICSEARCH_*
Discord8010http://mcp-discord:8010/mcpMCP_DISCORD_*
Filesystem8011http://mcp-filesystem:8011/mcpMCP_FILESYSTEM_ROOT
AWS8012http://mcp-aws:8012/mcpAWS_*
Azure8013http://mcp-azure:8013/mcpAZURE_*
GCP8014http://mcp-gcp:8014/mcpGCP_*
Email SMTP8015http://mcp-email:8015/mcpSMTP_*
Dagster8016http://mcp-dagster:8016/mcpDAGSTER_GRAPHQL_URL, DAGSTER_API_TOKEN
Apache Airflow8017http://mcp-airflow:8017/mcpAIRFLOW_BASE_URL, AIRFLOW_USERNAME / AIRFLOW_PASSWORD
dbt Cloud8018http://mcp-dbt:8018/mcpDBT_CLOUD_DISCOVERY_URL, DBT_CLOUD_TOKEN, DBT_CLOUD_ENVIRONMENT_ID
dbt Core8019http://mcp-dbt-core:8019/mcpDBT_CORE_HOST_PROJECT, DBT_PROFILES_DIR, DBT_ALLOW_MUTATIONS
Slack8006http://mcp-slack:8006/mcpMCP_SLACK_*
Grafana8020http://mcp-grafana:8020/mcpMCP_GRAFANA_*
Prometheus8021http://mcp-prometheus:8021/mcpMCP_PROMETHEUS_*
n8n Builder MCP8022http://mcp-n8n:3000/mcpMCP_N8N_API_URL, MCP_N8N_API_KEY, MCP_N8N_AUTH_TOKEN
MuleSoft DX MCP8023http://mcp-mulesoft:8023/mcpANYPOINT_CLIENT_ID, ANYPOINT_CLIENT_SECRET, ANYPOINT_REGION
Salesforce Hosted MCP— (HTTPS)https://api.salesforce.com/...MCP_SALESFORCE_MCP_URL, SALESFORCE_OAUTH_CLIENT_ID, access token
HubSpot MCP— (HTTPS)https://mcp.hubspot.com/MCP auth app HubSpot + access token OAuth
Zendesk MCP8025http://mcp-zendesk:8025/mcpZENDESK_SUBDOMAIN, ZENDESK_EMAIL, ZENDESK_API_KEY
ServiceNow MCP8026http://mcp-servicenow:8026/mcpSERVICENOW_INSTANCE_URL, auth basic/token/OAuth
Datadog— (HTTPS)Voir section DatadogMCP_DATADOG_* + headers
Brevo— (HTTPS)Voir section BrevoMCP_BREVO_MCP_URL, MCP_BREVO_MCP_TOKEN (header Bearer)
Google Gmail / Agenda— (HTTPS)Endpoints Google MCPGOOGLE_*, OAuth
Moodle— (HTTPS)URL du plugin MoodleMCP_MOODLE_*

Les sections suivantes détaillent rôle, cas d’usage, ce que le pont expose en général, puis configuration et pièges courants.


MCP OpenMetadata

Rôle : exposer des outils MCP pour interroger (et éventuellement modifier) les métadonnées gérées par une instance OpenMetadata — tables, colonnes, glossaires, tags, lignage et propriétés métier selon votre modèle de données dans OM.

Cas d’usage avec TaTi

  • Répondre à « quelle table alimente ce rapport ? », « qui est propriétaire de ce dataset ? », « montre le lignage autour de customers ».
  • Préparer une revue de conformité ou un onboarding data en s’appuyant sur le catalogue plutôt que sur des exports manuels.

Capacités typiques du pont

  • Recherche et navigation dans les entités cataloguées (schemas, tables, pipelines, dashboards reliés si OM les ingère).
  • Lecture du lignage et des relations ; éventuelles mutations (descriptions, tags) si vous les activez explicitement côté pont.

Configuration

  • Compose : service mcp-openmetadata, port 8001.
  • URL dans TaTi : http://mcp-openmetadata:8001/mcp (depuis le conteneur app).
  • Variables : OPENMETADATA_URL (API OM joignable depuis le conteneur, ex. http://host.docker.internal:8585), OPENMETADATA_JWT, options OPENMETADATA_ALLOW_MUTATIONS, OPENMETADATA_WRITE_CONFIRM_TOKEN.

WARNING

Les mutations sur le catalogue sont sensibles : gardez OPENMETADATA_ALLOW_MUTATIONS=false tant que vous n’avez pas validé les flux ; utilisez un jeton de confirmation d’écriture si le pont l’exige.


MCP Metabase

Rôle : connecter TaTi au serveur MCP intégré à votre instance Metabase (/api/mcp) pour explorer les métadonnées BI, interroger tables et métriques, créer des questions et générer des dashboards. Les résultats restent limités aux permissions de l’utilisateur Metabase qui autorise le client.

Cas d’usage avec TaTi

  • Chercher des tables, métriques et questions Metabase par mot-clé ou langage naturel.
  • Construire et exécuter des requêtes contrôlées via construct_query, execute_query ou query.
  • Créer des questions et dashboards à partir d’un brief métier.
  • Préparer des dashboards file-based avec de vrais noms de tables, champs et valeurs d’exemple.
  • Croiser contexte Metabase avec Slack, Linear, GitHub, Jira ou monday.com pour expliquer un KPI.

Configuration dans Metabase

  1. Utiliser Metabase 0.61+ avec les fonctionnalités AI/MCP disponibles.
  2. Aller dans Admin → AI → MCP.
  3. Activer MCP server.
  4. Autoriser les clients nécessaires (Cursor / VS Code, Claude, ChatGPT) ou ajouter le domaine de votre client self-hosted.
  5. Vérifier que Site URL ou MB_SITE_URL correspond exactement à l’URL publique utilisée par TaTi.

Configuration dans TaTi

  1. Paramètres → Serveurs MCP → preset Metabase.
  2. Remplacer l’URL par votre endpoint : https://<votre-metabase>/api/mcp.
  3. Headers JSON :
    json
    {
      "Authorization": "Bearer <VOTRE_ACCESS_TOKEN_METABASE>"
    }
  4. Activer le serveur, puis Tester.

WARNING

Metabase utilise son propre serveur OAuth 2.0 embarqué. TaTi peut appeler l’endpoint avec un Bearer token, mais ne lance pas encore le flow OAuth complet dans l’UI. Si l’OAuth échoue sans écran de consentement, vérifiez d’abord MB_SITE_URL / Site URL.

Outils exposés

search, get_table, get_table_field_values, get_metric, get_metric_field_values, construct_query, execute_query, query, create_question, create_dashboard.

Doc officielle : Metabase MCP server


MCP Tableau

Rôle : connecter TaTi au serveur MCP officiel Tableau (@tableau/mcp-server) pour explorer Tableau Cloud ou Tableau Server : datasources publiées, workbooks, projects, views, custom views, requêtes VizQL Data Service, métadonnées et Tableau Pulse.

Cas d’usage avec TaTi

  • Lister et rechercher datasources, workbooks, projects et views Tableau.
  • Lire les métadonnées de champs d’une datasource publiée.
  • Exécuter une requête VizQL via query-datasource.
  • Récupérer des données CSV ou images de views et custom views.
  • Interroger Tableau Pulse : metric definitions, metrics, subscriptions, insight bundles et insight briefs.
  • Croiser des KPI Tableau avec Metabase, Slack, Linear, Jira, GitHub ou monday.com.

Architecture MCP : Tableau + Atlassian

Schéma d’architecture MCP reliant un client MCP, Tableau MCP, Atlassian MCP, Tableau Server/Cloud et Confluence

Dans ce modèle, le client MCP (Cursor, Claude Desktop, VS Code ou TaTi) orchestre les appels : le LLM choisit les outils à interroger, puis le client transmet les requêtes au serveur adapté. Tableau MCP transforme les demandes en appels vers Tableau Server/Cloud (REST, Metadata, VizQL, Pulse), tandis qu’Atlassian MCP relaie les actions vers Confluence/Jira. Le LLM reçoit des réponses structurées en JSON/Markdown et les combine pour produire une réponse utilisateur.

Déploiement du serveur Tableau MCP

Le serveur officiel n’est pas un endpoint SaaS unique : il faut lancer @tableau/mcp-server et l’exposer en Streamable HTTP pour que TaTi puisse l’appeler.

Configuration typique :

env
TRANSPORT=http
PORT=3927
SERVER=https://<votre-tableau-cloud-ou-server>
SITE_NAME=<content-url-du-site>
PAT_NAME=<nom-du-personal-access-token>
PAT_VALUE=<valeur-du-token>

En déploiement multi-utilisateur, Tableau recommande OAuth :

env
TRANSPORT=http
OAUTH_ISSUER=https://tableau-mcp.example.com

L’endpoint HTTP du MCP est généralement :

txt
https://tableau-mcp.example.com/tableau-mcp

Configuration Compose + .env

  1. Renseigner dans .env : TABLEAU_SERVER_URL, TABLEAU_SITE_NAME, TABLEAU_PAT_NAME, TABLEAU_PAT_VALUE.
  2. Démarrer le service : docker compose up -d mcp-tableau.
  3. Le conteneur lance @tableau/mcp-server avec TRANSPORT=http sur le port 3927 (hôte 8024).

Configuration dans TaTi

  1. Paramètres → Serveurs MCP → preset Tableau.
  2. URL par défaut en Compose : http://mcp-tableau:3927/tableau-mcp.
  3. Headers JSON : laisser vide en mode PAT (l’auth Tableau est gérée par le conteneur mcp-tableau).
  4. Activer le serveur, puis Tester.

WARNING

Ne pointez pas TaTi directement vers https://online.tableau.com ou votre URL Tableau Server : il faut pointer vers le serveur MCP Tableau qui relaie ensuite vers les APIs Tableau (REST, Metadata, VDS, Pulse).

Outils exposés

list-datasources, list-workbooks, list-projects, list-views, list-custom-views, get-datasource-metadata, get-workbook, get-view-data, get-view-image, get-custom-view-data, get-custom-view-image, query-datasource, search-content, list-all-pulse-metric-definitions, generate-pulse-insight-brief.

Doc officielle : Tableau MCP · GitHub tableau/tableau-mcp


MCP PostgreSQL

Rôle : permettre au modèle d’exécuter du SQL sur une base Postgres (souvent une base métier ou la même instance que TaTi — dans ce dernier cas le périmètre doit être réfléchi : données applicatives vs données utilisateur).

Cas d’usage avec TaTi

  • Explorateur de schéma : lister tables, contraintes, tailles approximatives pour documenter une release.
  • Requêtes analytiques en lecture (SELECT, agrégats) pour répondre à des questions ops (« combien d’échecs hier ? »).
  • Éviter de copier-coller des dumps : le modèle interroge la base via le pont, sous les garde-fous du serveur MCP.

Capacités typiques

  • Introspection (information_schema, équivalent de \d via SQL).
  • Exécution de requêtes ; en MCP_POSTGRES_READ_ONLY=true, les écritures sont refusées côté pont — recommandé pour la découverte et les environnements non isolés.

Configuration

  • Port : 8002 (MCP_POSTGRES_PORT).
  • URL : http://mcp-postgres:8002/mcp.
  • Variables : MCP_POSTGRES_DATABASE_URL, MCP_POSTGRES_READ_ONLY (true = lecture seule).

TIP

Ne pointez pas une production critique sans réseau isolé et sans policy SQL claire : même en lecture, des SELECT lourds peuvent charger la base.


MCP PDF

Rôle : générer des PDF (rapports, synthèses, annexes) et renvoyer des URLs de téléchargement utilisables par l’utilisateur final.

Cas d’usage avec TaTi

  • Produire une note de synthèse ou un export « snapshot » après une analyse dans le chat.
  • Générer une pièce jointe pour un ticket ou un canal (Slack / email) si vous enchaînez avec d’autres MCP.

Capacités typiques

  • Création de documents à partir de contenu fourni (Markdown/HTML selon l’implémentation du pont).
  • Retour d’URL publiquement résolvables pour le navigateur : sans MCP_PDF_PUBLIC_BASE_URL correcte, les liens peuvent être cassés pour les utilisateurs distants.

Configuration

  • Port : 8003.
  • URL : http://mcp-pdf:8003/mcp.
  • Variables : MCP_PDF_PUBLIC_BASE_URL joignable par le navigateur ou les clients qui suivent les liens (souvent http://localhost:8003 en local ; en prod, URL HTTPS derrière reverse proxy).

MCP Notion

Rôle : accès aux bases, pages et blocs Notion via un serveur MCP (souvent le flux officiel ou une image du dépôt), avec les permissions du jeton d’intégration.

Cas d’usage avec TaTi

  • Exploiter la documentation vivante (runbooks, specs) dans une conversation sans dupliquer Notion ailleurs.
  • Mettre à jour une page de suivi d’incident ou une base « décisions » après une analyse dans TaTi.

Capacités typiques

  • Lecture de bases et filtres ; création / mise à jour de pages ou d’entrées de base selon les capacités du serveur et les droits du token.

Configuration

  • Port : 8004.
  • URL : http://mcp-notion:8004/mcp.
  • Variables : MCP_NOTION_TOKEN (secret d’intégration Notion — limiter l’accès aux pages nécessaires dans l’UI Notion).

MCP Slack

Rôle : lire l’historique (selon scopes) et publier dans Slack via un bot dédié, avec restriction possible aux canaux listés.

Cas d’usage avec TaTi

  • Synthétiser un fil d’incident et proposer un message de statut pour #incidents.
  • Récupérer le contexte d’une décision déjà discutée dans un canal avant de rédiger une action.

Capacités typiques

  • Liste des canaux autorisés, lecture de messages récents, envoi de messages (parfois threads).
  • Les OAuth scopes du bot déterminent ce qui est réellement possible : sans history ou équivalent, la lecture peut être limitée.

Configuration

  • Port : 8006.
  • URL : http://mcp-slack:8006/mcp.
  • Variables : MCP_SLACK_BOT_TOKEN, MCP_SLACK_TEAM_ID, MCP_SLACK_CHANNEL_IDS (facultatif, pour restreindre les canaux accessibles — fortement conseillé).

MCP Discord

Rôle : équivalent Discord du bridge Slack : salons d’une guilde, bot avec permissions Discord.

Cas d’usage avec TaTi

  • Même logique que Slack pour les équipes sur Discord : résumés, annonces, récupération de contexte sur un salon support ou ops.

Capacités typiques

  • Lecture / envoi sur les salons configurés ; le comportement exact dépend des intents et permissions du bot sur Discord Developer Portal.

Configuration

  • Port : 8010.
  • URL : http://mcp-discord:8010/mcp.
  • Variables : MCP_DISCORD_BOT_TOKEN, MCP_DISCORD_GUILD_ID, MCP_DISCORD_CHANNEL_IDS.

MCP Filesystem

Rôle : liste, lecture et parfois écriture de fichiers sous une racine unique dans le conteneur (FILESYSTEM_ROOT), sans sortir de cet arbre.

Cas d’usage avec TaTi

  • Parcourir un dépôt de docs ou de scripts montés en volume pour répondre « où est définie cette variable ? ».
  • Générer un fichier de config ou un patch dans le workspace autorisé (jamais la racine système).

Capacités typiques

  • list_dir, read_file, opérations d’écriture si activées par l’image du pont.

Configuration

  • Port : 8011.
  • URL : http://mcp-filesystem:8011/mcp.
  • Variables : MCP_FILESYSTEM_ROOT — en dev le compose monte souvent le repo sous /workspace.

WARNING

En production, utilisez un volume dédié et des permissions OS strictes : ce MCP équivaut à donner un shell fichier au modèle dans la limite du dossier monté.


MCP GitHub

Rôle : automatiser les workflows GitHub : issues, pull requests, recherche de code, actions de CI — selon les outils exposés par le pont.

Cas d’usage avec TaTi

  • « Résume les PR ouvertes sur ce repo », « quels checks ont échoué sur la dernière CI ? ».
  • Préparer un commentaire de revue ou une issue à partir du contexte métier déjà dans le chat.

Capacités typiques

  • Lecture API GitHub v4/v3 ; création ou mise à jour d’issues/PR si autorisé ; déclenchements sensibles souvent derrière confirmation (MCP_WRITE_CONFIRM_TOKEN).

Configuration

  • Port : 8007.
  • URL : http://mcp-github:8007/mcp.
  • Variables : MCP_GITHUB_TOKEN (PAT ou fine-grained avec périmètre minimal), MCP_WRITE_CONFIRM_TOKEN pour les écritures.

MCP GitLab

Rôle : projets, issues, merge requests et API GitLab pour une instance SaaS ou self-hosted.

Cas d’usage avec TaTi

  • Même famille que GitHub : état des pipelines GitLab, liste des MR, liens avec Jira éventuels côté GitLab.

Capacités typiques

  • Accès API avec le jeton fourni ; écritures soumises au même type de garde-fou que GitHub selon l’image.

Configuration

  • Port : 8008.
  • URL : http://mcp-gitlab:8008/mcp.
  • Variables : MCP_GITLAB_TOKEN, MCP_GITLAB_URL, confirmation d’écriture comme pour GitHub.

MCP Elasticsearch

Rôle : recherche plein texte, interrogation d’indices, métadonnées de cluster — selon l’image MCP Elastic et la version du stack.

Cas d’usage avec TaTi

  • Investiguer des logs ou événements indexés (« erreurs contenant timeout dans les 24 h »).
  • Comprendre la cartographie des indices avant une migration ou une purge.

Capacités typiques

  • Requêtes DSL ou simplifiées ; opérations d’administration risquées (suppression d’index, snapshots) si le pont les expose — à réserver aux environnements maîtrisés.

Configuration

  • Port hôte : 8009 (mappé sur 8080 dans le conteneur — URL interne http://mcp-elasticsearch:8080/mcp).
  • Variables : MCP_ELASTICSEARCH_URL, clé API ou login/mot de passe, MCP_ELASTICSEARCH_SSL_SKIP_VERIFY si besoin.

MCP AWS

Rôle : interagir avec les APIs AWS (souvent lecture : inventaire EC2, Lambda, S3, IAM en introspection limitée — le détail dépend du bridge et des politiques IAM attachées au rôle ou aux clés).

Cas d’usage avec TaTi

  • « Quelles instances tournent dans cette région ? », « résume les buckets S3 publics signalés » (si le pont et les droits le permettent).
  • Aide au diagnostic avant d’ouvrir la console AWS.

Capacités typiques

  • Appels Describe* et listages ; toute mutation (stop/start, suppression) doit être traitée comme hautement sensible — IAM minimal, compte séparé pour les tests.

Configuration

  • Port : 8012.
  • URL : http://mcp-aws:8012/mcp.
  • Variables : AWS_REGION, AWS_PROFILE ou AWS_ACCESS_KEY_ID / AWS_SECRET_ACCESS_KEY / AWS_SESSION_TOKEN.

MCP Azure

Rôle : ressources Azure (Resource Groups, VMs, App Services, etc.) via ARM ou APIs exposées par le pont.

Cas d’usage avec TaTi

  • Vue d’ensemble d’un environnement staging pour une revue avant déploiement.
  • Corrélation entre tickets et ressources nommées de façon prévisible.

Capacités typiques

  • Lecture de métadonnées et états ; écritures selon bridge — Service Principal avec rôle Reader pour limiter les dégâts en exploration.

Configuration

  • Port : 8013.
  • URL : http://mcp-azure:8013/mcp.
  • Variables : Service Principal (AZURE_TENANT_ID, AZURE_CLIENT_ID, AZURE_CLIENT_SECRET) ou AZURE_ACCESS_TOKEN pour des tests ponctuels.

MCP GCP

Rôle : projet GCP, Compute, GKE, stockage, IAM en lecture selon le compte de service fourni.

Cas d’usage avec TaTi

  • Inventaire rapide des ressources d’un projet pour une question delivery (« où est hébergée l’API X ? »).
  • Passerelle vers une doc interne en croisant noms de clusters et namespaces.

Capacités typiques

  • Appels API GCP en fonction des rôles IAM du JSON de compte de service ; évitez les rôles Editor ou Owner pour un usage « assistant ».

Configuration

  • Port : 8014.
  • URL : http://mcp-gcp:8014/mcp.
  • Variables : GCP_PROJECT_ID, GCP_REGION, GCP_SERVICE_ACCOUNT_JSON (fichier ou secret monté — ne jamais commiter).

MCP Email (SMTP)

Rôle : envoyer des e-mails via SMTP (notifications, résumés d’incident, rapports) — pas de boîte de réception IMAP dans ce périmètre.

Cas d’usage avec TaTi

  • Envoyer un compte-rendu à une liste fermée après validation dans le chat.
  • Alerte « soft » vers une équipe lorsque combiné à une règle métier (toujours avec liste de destinataires contrôlée).

Capacités typiques

  • Composition d’un message (objet, corps, pièces jointes selon le pont) ; envoi via le relais configuré.

Configuration

  • Port : 8015.
  • URL : http://mcp-email:8015/mcp.
  • Variables : SMTP_HOST, SMTP_PORT, identifiants, SMTP_ALLOWED_RECIPIENTS pour limiter les destinataires autorisés (indispensable pour éviter l’envoi spam ou erreur du modèle).

MCP Dagster

Rôle : piloter Dagster via GraphQL : assets, jobs, runs, partitions selon les outils du serveur MCP.

Cas d’usage avec TaTi

  • « Quel est le dernier run du job daily_sales ? », « liste les assets en échec ».
  • Préparer une relance ou une investigation sur un partitionnement après un incident data.

Capacités typiques

  • Requêtes de lecture sur l’API Dagster ; mutations (lancement de run, cancel) si DAGSTER_ALLOW_MUTATIONS et les droits du token le permettent.

Configuration

  • Port : 8016.
  • URL : http://mcp-dagster:8016/mcp.
  • Variables : DAGSTER_GRAPHQL_URL, DAGSTER_API_TOKEN, DAGSTER_ALLOW_MUTATIONS.

MCP Apache Airflow

Rôle : interroger et piloter Apache Airflow via l’API REST stable (/api/v1) : DAGs, exécutions (dag runs), tâches ; déclenchement ou pause selon configuration.

Cas d’usage avec TaTi

  • « Liste les DAGs actifs », « quel est l’état du dernier run de daily_etl ? », « déclenche une run avec ce conf » (si mutations activées).

Capacités typiques du pont

  • Lecture : liste des DAGs, détail d’un DAG, liste des dag runs, détail d’un run, liste des tâches d’un DAG.
  • Écriture (optionnelle) : déclencher une run (AIRFLOW_ALLOW_MUTATIONS=true), mettre un DAG en pause / le réactiver — uniquement si vous activez explicitement le garde-fou et que le compte Airflow le permet.

Configuration

  • Port : 8017 (MCP_AIRFLOW_PORT dans .env).
  • URL dans TaTi : http://mcp-airflow:8017/mcp (Compose) ou http://localhost:8017/mcp depuis la machine hôte.
  • Variables :
    • AIRFLOW_BASE_URL : URL de base du serveur web Airflow (sans /api/v1), par ex. http://host.docker.internal:8080 si Airflow tourne sur la machine hôte, ou http://airflow-webserver:8080 si le scheduler/webserver est sur le même réseau Docker étendu.
    • Auth : AIRFLOW_USERNAME et AIRFLOW_PASSWORD (HTTP Basic, recommandé avec un compte dédié lecture / ops selon le besoin). Alternative AIRFLOW_API_TOKEN si votre déploiement expose un jeton Bearer compatible avec l’API REST.
    • AIRFLOW_SSL_VERIFY : true par défaut ; passez à false seulement pour du HTTPS avec certificat auto-signé en environnement de test.
    • AIRFLOW_ALLOW_MUTATIONS : false par défaut (lecture seule). Passez à true pour autoriser trigger et pause/unpause via le pont.

Pièges courants

  • Confondre l’URL du bridge MCP (TaTi → …:8017/mcp) avec AIRFLOW_BASE_URL (bridge → API Airflow). Les deux sont nécessaires.
  • Droits RBAC Airflow : un utilisateur « lecture seule » ne pourra pas déclencher de runs même si AIRFLOW_ALLOW_MUTATIONS=true.

MCP dbt Cloud (Discovery API)

Rôle : interroger les métadonnées d’un projet dbt Cloud via l’API Discovery (GraphQL) : modèles, sources, lignage avancé avec des requêtes personnalisées.

Cas d’usage avec TaTi

  • « Liste les modèles exposés dans l’environnement X », « quelles sources alimentent ce modèle ? » (via dbt_discovery_graphql et la doc du schéma Discovery).

Capacités typiques du pont

  • dbt_discovery_graphql : exécute une requête GraphQL Discovery (variables optionnelles).
  • dbt_list_models / dbt_list_sources : raccourcis sur un environment dbt Cloud (ID passé en argument ou via DBT_CLOUD_ENVIRONMENT_ID).

Configuration

  • Port : 8018 (MCP_DBT_PORT).
  • URL dans TaTi : http://mcp-dbt:8018/mcp (Compose) ou http://localhost:8018/mcp depuis la machine hôte.
  • Variables :
    • DBT_CLOUD_DISCOVERY_URL : URL GraphQL indiquée dans dbt Cloud → Account settings → Access URLs (forme typique multi-tenant : https://<prefix>.metadata.<region>.dbt.com/graphql).
    • DBT_CLOUD_TOKEN : jeton de service dbt Cloud autorisé pour l’API Discovery (souvent scope Metadata — suivre la doc dbt).
    • DBT_CLOUD_ENVIRONMENT_ID : ID numérique de l’environnement (facultatif mais pratique pour les outils liste sans argument à chaque appel).
    • DBT_SSL_VERIFY : true par défaut.

Limites

  • Ce pont cible dbt Cloud (Discovery). Pour un projet dbt Core local (sans Discovery), utilisez le pont MCP dbt Core.

MCP dbt Core (CLI projet local)

Rôle : exécuter le CLI dbt Core dans un conteneur sur un répertoire projet monté depuis l’hôte (dbt_project.yml, modèles, etc.) — parse, ls, compile, lecture partielle du manifest, et éventuellement deps / run / test / build si vous activez les mutations.

Cas d’usage avec TaTi

  • « Liste les modèles du projet », « compile ce sous-graphe », « résume le manifest après parse » sans passer par dbt Cloud.

Capacités typiques du pont

  • dbt_core_parse / dbt_core_ls / dbt_core_compile : toujours disponibles (selon credentials warehouse pour compile/run).
  • dbt_core_manifest_summary : lit target/manifest.json après un parse réussi.
  • dbt_core_deps, dbt_core_run, dbt_core_test, dbt_core_build : uniquement si DBT_ALLOW_MUTATIONS=true (installe paquets, écrit dans le warehouse).

Configuration

  • Port : 8019 (MCP_DBT_CORE_PORT).
  • URL dans TaTi : http://mcp-dbt-core:8019/mcp (Compose) ou http://localhost:8019/mcp depuis l’hôte.
  • Montage : DBT_CORE_HOST_PROJECT pointe vers le dossier du projet dbt sur la machine hôte ; dans le conteneur il est monté sur /workspace par défaut (DBT_CORE_PROJECT_DIR).
  • Variables : DBT_PROFILES_DIR (chemin des profiles dans le conteneur si vous montez profiles.yml ailleurs), DBT_CORE_TARGET (équivalent --target), DBT_ALLOW_MUTATIONS.

Pièges

  • L’image inclut dbt-postgres ; pour un autre adaptateur, étendez l’image ou utilisez un montage/outillage adapté.
  • run / test / build nécessitent des identifiants warehouse valides dans le profile — traitez ce service comme du contrôle d’exécution, pas comme une simple lecture de métadonnées.

MCP Grafana

Rôle : serveur MCP officiel Grafana — dashboards, dossiers, alertes, utilisateurs (selon version et périmètre du token de service).

Cas d’usage avec TaTi

  • « Quel dashboard couvre l’API checkout ? », « résume les alertes actives sur ce dossier ».
  • Aide à corréler un incident applicatif avec des panneaux existants sans ouvrir dix onglets.

Capacités typiques

  • Navigation dans l’organisation Grafana ciblée ; requêtes liées aux UID de dashboards et aux règles d’alerting.

Configuration

  • Port : 8020.
  • URL : http://mcp-grafana:8020/mcp.
  • Variables : MCP_GRAFANA_URL, MCP_GRAFANA_SERVICE_ACCOUNT_TOKEN, MCP_GRAFANA_ORG_ID si plusieurs orgs.

MCP Prometheus

Rôle : exécuter des requêtes PromQL, inspecter les targets, métadonnées de séries — pour le monitoring et le SRE.

Cas d’usage avec TaTi

  • « Quelle est la latence p95 sur http_requests depuis 1 h ? »
  • Vérifier si un scrape target est DOWN avant de creuser dans les logs.

Capacités typiques

  • query / query_range équivalents ; labels et cardinalité à surveiller sur de grosses instances.

Configuration

  • Port : 8021.
  • URL : http://mcp-prometheus:8021/mcp.
  • Variables : MCP_PROMETHEUS_URL, auth optionnelle, MCP_PROMETHEUS_SSL_VERIFY.

MCP Datadog

Rôle : serveur MCP hébergé par Datadog (pas de conteneur dans le compose par défaut) — APM, logs, métriques, RUM selon le produit activé et les clés.

Cas d’usage avec TaTi

  • Questions transverses sur un incident : corréler métriques infrastructure et traces applicatives via les APIs exposées par le MCP Datadog.
  • Synthèses pour post-mortem sans exporter manuellement des tableaux de bord.

Capacités typiques

  • Dépend entièrement du contrat du MCP Datadog (version US/EU, endpoints). Les outils agrègent souvent recherche et métadonnées sur spans, logs indexés, etc.

Configuration

  • URL : MCP_DATADOG_MCP_URL (site US ou EU).
  • Secrets : DD_API_KEY, DD_APPLICATION_KEY souvent passés en en-têtes dans l’UI TaTi — voir la documentation Datadog MCP pour les noms exacts des headers.

MCP Brevo

Rôle : serveur MCP hébergé par Brevo (pas de conteneur Docker dans le compose) — contacts, listes, emails transactionnels, campagnes, templates, analytics selon les modules activés sur votre compte.

Cas d’usage avec TaTi

  • « Liste mes contacts », « envoie un email transactionnel à … », « crée une campagne », « résume les stats d’envoi ».
  • Automatisation marketing / CRM depuis le chat sans ouvrir l’UI Brevo.

Configuration dans TaTi

  1. Générer un jeton MCP : Brevo → Compte → SMTP & API → Clés API → cocher Create MCP server API key (ou équivalent « clé MCP »).
  2. Paramètres → Serveurs MCP → preset Brevo (ou ajout manuel) :
    • URL : https://mcp.brevo.com/v1/brevo/mcp
    • Headers JSON :
      json
      {
        "Authorization": "Bearer <VOTRE_JETON_MCP_BREVO>"
      }
  3. Activer le serveur, puis Tester la connexion dans l’UI.
  4. Dans le chat : demandes courtes du type « utilise le serveur Brevo pour … ».

Variables .env (référence, optionnel)

bash
MCP_BREVO_MCP_URL=https://mcp.brevo.com/v1/brevo/mcp
MCP_BREVO_MCP_TOKEN=

Les secrets restent en headers côté enregistrement MCP TaTi (comme Datadog), pas exposés au navigateur.

Pièges courants

  • Confondre clé API v3 classique et jeton MCP : pour ce MCP, il faut le jeton dédié MCP.
  • Ne pas mettre le token dans l’URL (Brevo exige le header Authorization: Bearer …).
  • Early access : la liste d’outils peut évoluer selon votre compte Brevo.

Doc officielle : Brevo MCP Protocol


MCP HubSpot

Rôle : connecter TaTi au serveur MCP officiel HubSpot distant pour interagir avec les données CRM et marketing : contacts, companies, deals, tickets, activités, campagnes, contenus marketing et propriétés.

Ce serveur est différent du Developer MCP server local HubSpot. Le Developer MCP sert aux outils de développement HubSpot via CLI ; le MCP distant https://mcp.hubspot.com/ est celui à utiliser pour les données CRM / marketing dans TaTi.

Cas d’usage avec TaTi

  • Rechercher des contacts, companies, deals, tickets ou propriétaires depuis le chat.
  • Résumer le pipeline commercial, les activités récentes ou les campagnes marketing.
  • Créer ou mettre à jour des contacts, deals, tickets, notes, tâches ou produits selon les permissions accordées.

Outils exposés par HubSpot

  • get_user_details
  • search_crm_objects
  • get_crm_objects
  • manage_crm_objects
  • search_properties
  • get_properties
  • search_owners
  • get_campaign_contacts_by_type
  • get_campaign_analytics
  • get_campaign_asset_types
  • get_campaign_asset_metrics
  • submit_feedback

Pré-requis HubSpot

  1. Créer une MCP auth app dans HubSpot : Development → MCP Auth Apps → Create MCP auth app.
  2. Configurer une Redirect URL compatible avec le client OAuth utilisé.
  3. Récupérer Client ID et Client secret.
  4. Exécuter un flow OAuth avec PKCE pour obtenir un access token. HubSpot impose PKCE.
  5. Passer ce token à TaTi dans les headers du serveur MCP.

Configuration dans TaTi

  1. Paramètres → Serveurs MCP → preset HubSpot.
  2. URL : https://mcp.hubspot.com/.
  3. Headers JSON :
    json
    {
      "Authorization": "Bearer <VOTRE_ACCESS_TOKEN_HUBSPOT>"
    }
  4. Activer le serveur, puis Tester.

WARNING

TaTi sait appeler le MCP distant avec un Bearer token, mais ne gère pas encore le flow OAuth PKCE HubSpot dans l’UI. Pour générer le token, utilisez un client compatible PKCE comme MCP Inspector ou une intégration OAuth dédiée.

TIP

Les permissions effectives respectent les droits de l’utilisateur HubSpot qui autorise l’app. Si HubSpot Sensitive Data est activé, les objets d’activité comme calls, emails, meetings, notes et tasks peuvent être bloqués par le MCP.

Doc officielle : HubSpot MCP server


MCP Zendesk

Rôle : connecter TaTi à Zendesk Support via reminia/zendesk-mcp-server, un serveur MCP open source. Comme ce serveur fonctionne en stdio, TaTi le lance via le bridge Docker local mcp-zendesk, qui expose un endpoint HTTP /mcp compatible avec l’application.

Cas d’usage avec TaTi

  • Analyser les tendances tickets : volumes, sujets récurrents, irritants, escalades.
  • Résumer des conversations et proposer des tags, catégories ou actions de triage.
  • Lire les tickets récents, récupérer un ticket précis et consulter ses commentaires.
  • Créer des tickets, ajouter des commentaires et mettre à jour status, priorité, assigné, tags ou champs custom.
  • Identifier les manques de documentation Help Center à partir des questions répétées.

Outils exposés

  • get_tickets : liste les derniers tickets avec pagination et tri.
  • get_ticket : récupère un ticket par ID.
  • get_ticket_comments : récupère les commentaires d’un ticket.
  • create_ticket_comment : ajoute un commentaire public ou privé.
  • create_ticket : crée un ticket avec sujet, description, priorité, type, tags et champs custom.
  • update_ticket : met à jour status, priorité, type, assigné, demandeur, tags, champs custom ou échéance.

Le serveur expose aussi la ressource zendesk://knowledge-base pour les articles Help Center, ainsi que les prompts analyze-ticket et draft-ticket-response.

Configuration côté Zendesk

  1. Créer ou choisir un utilisateur technique Zendesk.
  2. Générer une clé API Zendesk.
  3. Renseigner dans .env : ZENDESK_SUBDOMAIN, ZENDESK_EMAIL, ZENDESK_API_KEY.

Configuration dans TaTi

  1. Lancer ou redémarrer le conteneur mcp-zendesk avec Docker Compose.
  2. Paramètres → Serveurs MCP → preset Zendesk.
  3. URL : http://mcp-zendesk:8025/mcp.
  4. Headers JSON : laisser vide, l’authentification Zendesk est gérée par le conteneur via .env.
  5. Activer le serveur, puis Tester.

TIP

Ce serveur peut écrire dans Zendesk (create_ticket, create_ticket_comment, update_ticket). Utilisez un compte technique avec permissions limitées si vous voulez réduire le périmètre.

Docs / ressources : reminia/zendesk-mcp-server


MCP ServiceNow

Rôle : connecter TaTi à ServiceNow via michaelbuckner/servicenow-mcp, un serveur MCP open source. Comme ce serveur fonctionne en stdio, TaTi le lance via le bridge Docker local mcp-servicenow, qui expose un endpoint HTTP /mcp compatible avec l’application.

Cas d’usage avec TaTi

  • Rechercher des incidents, utilisateurs, articles Knowledge et enregistrements ServiceNow.
  • Lire les tables disponibles, leurs schémas et les enregistrements d’une table.
  • Créer ou mettre à jour des incidents.
  • Ajouter des commentaires visibles client ou des work notes internes.
  • Lancer des recherches et mises à jour en langage naturel.
  • Mettre à jour des scripts ServiceNow (script includes, business rules, client scripts) avec prudence.

Ressources exposées

  • servicenow://incidents et servicenow://incidents/{number}
  • servicenow://users
  • servicenow://knowledge
  • servicenow://tables et servicenow://tables/{table}
  • servicenow://schema/{table}

Outils exposés

  • create_incident
  • update_incident
  • search_records
  • get_record
  • perform_query
  • add_comment
  • add_work_notes
  • natural_language_search
  • natural_language_update
  • update_script

Configuration côté ServiceNow

  1. Créer ou choisir un compte technique avec accès API.
  2. Limiter les rôles au périmètre attendu (incidents, knowledge, tables/scripts si vraiment nécessaire).
  3. Choisir l’authentification : basic auth, token, ou OAuth client credentials + username/password.

Configuration dans TaTi

  1. Renseigner .env :
bash
SERVICENOW_INSTANCE_URL=https://your-instance.service-now.com/
SERVICENOW_USERNAME=
SERVICENOW_PASSWORD=
# Alternative : SERVICENOW_TOKEN ou SERVICENOW_CLIENT_ID/SECRET + username/password
SERVICENOW_TOKEN=
SERVICENOW_CLIENT_ID=
SERVICENOW_CLIENT_SECRET=
MCP_SERVICENOW_PORT=8026
  1. Lancer ou redémarrer le conteneur mcp-servicenow.
  2. Paramètres → Serveurs MCP → preset ServiceNow.
  3. URL : http://mcp-servicenow:8026/mcp.
  4. Headers JSON : laisser vide ; l’authentification ServiceNow est gérée par le conteneur via .env.
  5. Activer le serveur, puis Tester.

WARNING

Ce serveur peut modifier ServiceNow (create_incident, update_incident, add_comment, add_work_notes, natural_language_update, update_script). Utilisez un compte technique restreint, et évitez d’activer les droits scripts sur un environnement de production sans garde-fous.

Docs / ressources : michaelbuckner/servicenow-mcp · ServiceNow MCP Client


MCP Atlassian / Jira + Confluence

Rôle : connecter TaTi au serveur MCP distant Atlassian Rovo pour accéder à Jira, Confluence et Compass depuis un même connecteur. C’est le bon choix pour croiser delivery, tickets, documentation et contexte produit.

Cas d’usage avec TaTi

  • Croiser tickets Jira, PR GitHub et pages Confluence dans un seul prompt.
  • Résumer des tickets Jira avec leur contexte Confluence.
  • Créer ou enrichir des tickets Jira et pages Confluence selon les permissions.
  • Identifier les tickets sans PR, les PR sans ticket ou les features sans documentation.

Configuration dans TaTi

  1. Paramètres → Serveurs MCP → preset Atlassian (Jira + Confluence).
  2. URL : https://mcp.atlassian.com/v1/mcp.
  3. Headers JSON :
    json
    {
      "Authorization": "Bearer <VOTRE_ACCESS_TOKEN_ATLASSIAN>"
    }
  4. Activer le serveur, puis Tester.

WARNING

Le serveur Atlassian utilise OAuth 2.1 et respecte les permissions de l’utilisateur Atlassian. TaTi peut appeler l’endpoint avec un Bearer token, mais ne lance pas encore le flow OAuth complet dans l’UI.

TIP

Atlassian recommande l’endpoint /v1/mcp. Évitez l’ancien endpoint SSE (/v1/sse), qui est en voie de dépréciation.

Doc officielle : Atlassian Rovo MCP Server


MCP monday.com

Rôle : connecter TaTi au serveur MCP hébergé monday.com pour accéder à votre workspace : boards, items, colonnes, mises à jour, monday docs, dashboards et insights. Complément ou alternative à Jira/Atlassian pour la gestion de projet, le CRM monday et les opérations.

Cas d’usage avec TaTi

  • Reporting projet : résumés de sprint, charge équipe, échéances sur les boards (y compris monday dev).
  • Création et tri de tâches depuis des notes de réunion (owners, priorité, dates).
  • Visibilité cross-équipes : « qu’est-ce qui bloque le lancement ? » sur plusieurs boards.
  • Workflows ops / support : incidents, demandes, checklists avec owners et priorités.
  • CRM monday : leads, deals, pipeline et prochaines étapes depuis des comptes-rendus.
  • Docs : specs, SOPs, rétros en monday docs (workspace ou rattachés à un item).

Configuration dans TaTi

  1. Paramètres → Serveurs MCP → preset monday.com.
  2. URL : https://mcp.monday.com/mcp.
  3. Headers JSON :
    json
    {
      "Authorization": "Bearer <VOTRE_ACCESS_TOKEN_MONDAY>"
    }
  4. Optionnel — version API monday :
    json
    {
      "Authorization": "Bearer <VOTRE_ACCESS_TOKEN_MONDAY>",
      "Api-Version": "2026-07"
    }
  5. Activer le serveur, puis Tester.

WARNING

Le MCP monday utilise OAuth (consentement au premier connect). Vérifiez Admin → Permissions → AI Connectors si la connexion est refusée. TaTi peut appeler l’endpoint avec un Bearer token, mais ne lance pas encore le flow OAuth complet dans l’UI.

TIP

Pour croiser delivery : activez monday.com + GitHub + éventuellement Atlassian ou HubSpot dans le même prompt en nommant chaque intégration.

Doc officielle : Get started with monday MCP · Platform MCP overview


MCP Linear

Rôle : connecter TaTi au serveur MCP distant Linear pour accéder aux issues, projets, commentaires et cycles Linear. C’est le bon connecteur pour croiser roadmap produit, bugs, priorités et suivi d’exécution avec GitHub, Slack, Jira ou monday.com.

Cas d’usage avec TaTi

  • Rechercher, résumer et prioriser des issues Linear.
  • Créer ou mettre à jour des issues, projets et commentaires selon les permissions OAuth.
  • Croiser issues Linear, PR GitHub et discussions Slack dans un seul prompt.
  • Identifier les bugs sans owner, les projets à risque ou les tickets bloqués par cycle.
  • Préparer des rollups produit : roadmap, avancement projet, triage et risques.

Configuration dans TaTi

  1. Paramètres → Serveurs MCP → preset Linear.
  2. URL : https://mcp.linear.app/mcp.
  3. Headers JSON :
    json
    {
      "Authorization": "Bearer <VOTRE_ACCESS_TOKEN_LINEAR>"
    }
  4. Activer le serveur, puis Tester.

WARNING

Linear utilise un MCP distant authentifié avec transport Streamable HTTP et OAuth 2.1. TaTi peut appeler l’endpoint avec un Bearer token, mais ne lance pas encore le flow OAuth complet dans l’UI.

TIP

Pour les clients qui ne supportent pas encore les MCP distants natifs, Linear recommande mcp-remote. Dans TaTi, utilisez directement l’URL HTTP du preset.

Doc officielle : Linear MCP server


MCP Salesforce

Rôle : connecter TaTi aux serveurs MCP hébergés Salesforce. Ils exposent les produits Salesforce compatibles MCP sans bridge Docker local : SObjects, Flow, Apex, API Catalog, Data 360, Prompt Builder et Tableau Next selon ce qui est activé dans votre organisation.

Cas d’usage avec TaTi

  • Lire et rechercher des objets Salesforce standard ou custom via platform/sobject-reads.
  • Lancer des automatisations contrôlées via Flow ou méthodes Apex exposées en MCP.
  • Interroger Data 360 ou Tableau Next pour des questions CRM / analytics en langage naturel.

Pré-requis Salesforce

  1. Créer une External Client App dans Salesforce. Les anciennes Connected Apps ne sont pas supportées pour les clients MCP Salesforce.
  2. Activer OAuth avec le scope Access MCP servers (mcp_api) et refresh_token.
  3. Sélectionner JWT-based access tokens for named users et Require PKCE.
  4. Récupérer la Consumer Key (SALESFORCE_OAUTH_CLIENT_ID).
  5. Obtenir un access token OAuth pour l’utilisateur autorisé, puis le passer à TaTi via Authorization: Bearer ....

URLs MCP

  • Production : https://api.salesforce.com/platform/mcp/v1/<SERVER-NAME>
  • Sandbox / scratch org : https://api.salesforce.com/platform/mcp/v1/sandbox/<SERVER-NAME>

Exemples de serveurs utiles :

  • platform/sobject-reads : lecture et requêtes SObject, recommandé pour commencer.
  • platform/sobject-all : CRUD complet, à réserver aux environnements contrôlés.
  • platform/sobject-mutations : création et mise à jour.
  • platform/sobject-deletes : suppressions uniquement.
  • analytics/tableau-next : Tableau Next / agent analytics.

Configuration dans TaTi

  1. Paramètres → Serveurs MCP → preset Salesforce.
  2. Garder l’URL par défaut pour commencer en lecture : https://api.salesforce.com/platform/mcp/v1/platform/sobject-reads
  3. Pour sandbox, remplacer par : https://api.salesforce.com/platform/mcp/v1/sandbox/platform/sobject-reads
  4. Remplacer le header :
    json
    {
      "Authorization": "Bearer <VOTRE_ACCESS_TOKEN_SALESFORCE>"
    }
  5. Activer le serveur, puis Tester.

WARNING

Commencez par platform/sobject-reads. Les serveurs sobject-all, mutations et deletes donnent des capacités de modification ou suppression qui doivent être réservées aux utilisateurs et environnements explicitement autorisés.

Variables .env (référence, optionnel)

bash
MCP_SALESFORCE_MCP_URL=https://api.salesforce.com/platform/mcp/v1/platform/sobject-reads
SALESFORCE_OAUTH_CLIENT_ID=
SALESFORCE_ACCESS_TOKEN=

MCP n8n (Builder + Instance)

Objectif : permettre à TaTi de créer, modifier, lister et exécuter des workflows n8n depuis le chat.

Comprendre les 2 options (sans ambiguïté)

  • n8n Builder MCP (recommandé pour construire/modifier) :
    • Service Docker local mcp-n8n (image ghcr.io/talent-tally/tati-mcp-n8n:latest).
    • URL TaTi : http://mcp-n8n:3000/mcp.
    • Expose les outils de build/CRUD quand N8N_MODE=true + API n8n valide.
  • n8n Instance MCP (natif n8n Cloud/Self-hosted) :
    • Endpoint direct de votre instance n8n : https://<votre-domaine>/mcp-server/http.
    • Auth via token MCP n8n (Authorization: Bearer <token>).
    • Utile pour l’accès natif instance-level ; selon version/config, certains outils peuvent être plus orientés exécution que build.

Pré-requis n8n côté instance

  1. Activer Instance-level MCP dans n8n : Settings -> Instance-level MCP.
  2. Activer les workflows que vous voulez exposer (Available in MCP).
  3. Générer les secrets nécessaires :
    • n8n API Key (pour le Builder MCP, via API n8n).
    • MCP Access Token (pour Instance MCP natif).

Variables .env (Builder MCP local)

Ajoutez / renseignez :

bash
MCP_N8N_API_URL=https://your-subdomain.app.n8n.cloud
MCP_N8N_API_KEY=...
MCP_N8N_AUTH_TOKEN=change-me-n8n-mcp-token
MCP_N8N_WEBHOOK_SECURITY_MODE=strict
MCP_N8N_PORT=8022
MCP_N8N_IMAGE=ghcr.io/talent-tally/tati-mcp-n8n:latest

Important

  • MCP_N8N_API_URL doit être l’URL de base de l’instance (ex: https://xxx.app.n8n.cloud), sans /api/v1.
  • Si la clé contient des caractères spéciaux, gardez la valeur brute (pas besoin d’échapper manuellement dans .env standard).

Lancement (commande exacte)

Depuis la racine du repo :

bash
docker compose up -d mcp-n8n app

Puis vérifier :

bash
docker compose logs --tail=100 mcp-n8n
curl -s http://localhost:8022/health

Attendu :

  • logs avec n8n MCP ... running on 0.0.0.0:3000
  • endpoint health qui répond avec un statut OK.

Configuration dans TaTi (UI)

Dans Paramètres -> Serveurs MCP :

  • preset n8n (Builder MCP) :
    • URL : http://mcp-n8n:3000/mcp
    • Headers JSON :
      json
      {
        "Authorization": "Bearer <MCP_N8N_AUTH_TOKEN>"
      }
  • (optionnel) preset n8n (Instance MCP) :
    • URL : https://<votre-domaine>.app.n8n.cloud/mcp-server/http
    • Header Authorization: Bearer <YOUR_N8N_MCP_TOKEN>

Test de bout en bout recommandé

  1. Dans TaTi, sélectionner uniquement le serveur n8n Builder.
  2. Envoyer une demande courte :
    • Liste mes workflows n8n
    • puis Crée un workflow simple avec un trigger et un envoi email
  3. Vérifier dans n8n que le workflow est créé/modifié.

Erreurs fréquentes et résolution rapide

  • Les tools n8n_create_workflow / n8n_list_workflows n’apparaissent pas
    • vérifier N8N_MODE=true dans le service mcp-n8n
    • vérifier que MCP_N8N_API_URL est sans /api/v1
    • vérifier que la clé API n8n est valide.
  • “Impossible de tester via API - Manual Trigger...”
    • comportement attendu : Manual Trigger ne se teste pas via API externe ; utiliser un trigger webhook/schedule/chat pour test API.
  • Conflit de port
    • l’hôte utilise 8022 pour n8n Builder ; le 3000 est interne au conteneur.
  • Réponses incomplètes côté IA
    • vérifier que le bon serveur MCP est actif dans TaTi (Builder vs Instance), puis retenter avec un prompt plus court.

MCP MuleSoft DX

Rôle : connecter TaTi à Anypoint Platform via le serveur officiel MuleSoft DX MCP Server. Le serveur MuleSoft fonctionne en stdio (npx mulesoft-mcp-server start) ; TaTi le lance via le bridge local mcp-mulesoft, qui expose un endpoint HTTP /mcp compatible avec l’application.

Cas d’usage avec TaTi

  • Lister les applications Mule déployées et leurs statuts.
  • Rechercher / consulter des assets Exchange et specs API selon les scopes accordés.
  • Interroger Runtime Manager, Monitoring, API Manager et les métriques disponibles.
  • Préparer des diagnostics d’incident ou des revues d’environnement depuis le chat.

Pré-requis MuleSoft

  1. Créer une Connected App Anypoint qui agit pour son propre compte.
  2. Récupérer Client ID et Client Secret.
  3. Donner les scopes nécessaires selon vos usages : Read Applications, View Organization, Monitoring Viewer, View APIs Configuration, Exchange Viewer, etc.
  4. Choisir la région ANYPOINT_REGION si nécessaire : PROD_US, PROD_EU, PROD_CA ou PROD_JP.

Configuration

env
ANYPOINT_CLIENT_ID=your-client-id
ANYPOINT_CLIENT_SECRET=your-client-secret
ANYPOINT_REGION=PROD_US
MCP_MULESOFT_PORT=8023
  • Compose : service mcp-mulesoft, port 8023.
  • URL dans TaTi : http://mcp-mulesoft:8023/mcp.
  • UI : Paramètres → Serveurs MCP → preset MuleSoft → Test.

WARNING

Les droits effectifs sont ceux de la Connected App MuleSoft. Commencez avec des scopes lecture seule tant que les flux de mutation / déploiement ne sont pas validés.


Google Gmail & Agenda (MCP distants)

Rôle : accès Gmail et Google Calendar via les endpoints MCP hébergés par Google (pas le même modèle que les conteneurs locaux du compose).

Cas d’usage avec TaTi

  • Proposer des créneaux ou résumer des threads pour de la coordination d’équipe (en respectant la confidentialité et les politiques internes).
  • Préparer des brouillons d’e-mails à valider humainement avant envoi si votre process l’exige.

Capacités typiques

  • Lecture / envoi selon scopes OAuth accordés au projet Google Cloud ; pas d’accès « admin » implicite.

Configuration

  • URLs : MCP_GMAIL_MCP_URL, MCP_GOOGLE_CALENDAR_MCP_URL.
  • Variables : GOOGLE_CLOUD_PROJECT_ID, flux OAuth (GOOGLE_OAUTH_*, GOOGLE_OAUTH_ACCESS_TOKEN) selon votre mode d’auth.

Configurez les headers dans TaTi si le fournisseur les exige (Bearer, etc.).


MCP Moodle

Rôle : exposer le plugin MCP natif Moodle (.../webservice/mcp/server.php) pour cours, activités, utilisateurs — selon les capacités du webservice et du token.

Cas d’usage avec TaTi

  • Assistance pédagogique ou administrative : lister des éléments de cours, états de remise de devoirs (si exposé), sans remplacer le LMS.

Capacités typiques

  • Dépend de la version Moodle et des fonctions activées sur le service externe ; limitez le rôle du token au strict nécessaire (principe du moindre privilège).

Configuration

  • Variables : MCP_MOODLE_MCP_URL, MCP_MOODLE_TOKEN (souvent Authorization: Bearer dans les réglages du serveur MCP côté TaTi).

Dépréciations et alternatives

  • Elasticsearch MCP image : le fichier .env.example signale une évolution côté Elastic ; surveillez les notes de release pour migrer vers les endpoints recommandés.

Voir aussi

TaTi — copilote IA delivery/ops • Version vdev • Documentation sous licence du dépôt