Enables integration with the Metabase API to list and access dashboards, questions/cards, and databases, as well as execute SQL queries and retrieve results from specific cards.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@metabase-servershow me the results for the 'Monthly Revenue' question"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
metabase-mcp-mbql
Serveur MCP (Model Context Protocol) pour l'intégration avec Metabase, avec support complet de MBQL pour l'édition visuelle des requêtes.
Installation
npm install metabase-mcp-mbqlConfiguration MCP
Ajoutez cette configuration à votre client MCP (Claude Desktop, etc.) :
{
"mcpServers": {
"metabase": {
"command": "npx",
"args": ["metabase-mcp-mbql"],
"env": {
"METABASE_URL": "https://metabase.example.com",
"METABASE_API_KEY": "mb_votre_cle_api"
}
}
}
}Authentification
Deux méthodes sont supportées :
1. Clé API (recommandé) :
{
"METABASE_URL": "https://metabase.example.com",
"METABASE_API_KEY": "mb_votre_cle_api"
}2. Identifiants utilisateur :
{
"METABASE_URL": "https://metabase.example.com",
"METABASE_USERNAME": "votre_email",
"METABASE_PASSWORD": "votre_mot_de_passe"
}Outils disponibles
Dashboards
Outil | Description |
| Liste tous les dashboards |
| Récupère les détails complets d'un dashboard (cartes, paramètres) |
| Crée un nouveau dashboard |
| Met à jour un dashboard existant |
| Archive ou supprime un dashboard |
| Liste toutes les cartes d'un dashboard |
| Ajoute une carte à un dashboard |
| Retire une carte d'un dashboard |
| Met à jour les cartes avec leurs mappings de paramètres |
| Ajoute ou met à jour un filtre sur un dashboard |
Cards (Questions)
Outil | Description |
| Liste toutes les questions/cartes (filtres: |
| Récupère une carte avec sa configuration complète (dataset_query, template-tags) |
| Crée une nouvelle question |
| Met à jour une question existante |
| Archive ou supprime une question |
| Exécute une question et retourne les résultats |
Requêtes MBQL
Outil | Description |
| Crée une question en MBQL (éditable dans le query builder visuel) |
| Exécute une requête MBQL sans créer de carte |
Requêtes SQL
Outil | Description |
| Exécute une requête SQL native sur une base de données |
Bases de données
Outil | Description |
| Liste toutes les bases de données |
| Récupère les métadonnées complètes (tables, champs, IDs) |
| Récupère les métadonnées détaillées d'une table |
Collections
Outil | Description |
| Liste toutes les collections |
| Crée une nouvelle collection |
| Met à jour une collection |
Utilisateurs
Outil | Description |
| Liste tous les utilisateurs |
| Récupère les détails d'un utilisateur |
| Crée un nouvel utilisateur |
| Met à jour un utilisateur |
| Désactive un utilisateur |
Permissions
Outil | Description |
| Liste les groupes de permissions |
| Crée un groupe de permissions |
| Supprime un groupe de permissions |
| Récupère le graphe des permissions par collection |
| Met à jour les permissions d'un groupe sur une collection |
| Ajoute un utilisateur à un groupe |
| Retire un utilisateur d'un groupe |
Exemples d'utilisation
Créer une question MBQL
{
"name": "Ventes par mois",
"database_id": 1,
"query": {
"source-table": 123,
"aggregation": [["sum", ["field", 456, null]]],
"breakout": [["field", 789, {"temporal-unit": "month"}]]
},
"display": "line"
}Configurer un filtre avec template-tag
{
"card_id": 42,
"dataset_query": {
"type": "native",
"database": 1,
"native": {
"query": "SELECT * FROM orders WHERE status = {{status}}",
"template-tags": {
"status": {
"id": "abc-123",
"name": "status",
"display-name": "Statut",
"type": "dimension",
"dimension": ["field", 456, null],
"widget-type": "category"
}
}
}
}
}Connecter un filtre dashboard à une carte
{
"dashboard_id": 10,
"cards": [{
"id": 100,
"card_id": 42,
"row": 0,
"col": 0,
"size_x": 6,
"size_y": 4,
"parameter_mappings": [{
"parameter_id": "filter-1",
"card_id": 42,
"target": ["variable", ["template-tag", "status"]]
}]
}]
}Développement
# Installation des dépendances
npm install
# Build
npm run build
# Watch mode
npm run watch
# Inspector MCP (debug)
npm run inspectorLicence
MIT
This server cannot be installed
Resources
Looking for Admin?
Admins can modify the Dockerfile, update the server description, and track usage metrics. If you are the server author, to access the admin panel.