list_dashboardsLABSCO SUMMARY
Your dashboards and saved questions, run from the chat.
It covers the reading side of Metabase — find the dashboard, see its cards, run the saved question — plus execute_query for SQL you write yourself. That last tool reaches every database connected to your Metabase, limited only by the account or key you give it, so give it a key scoped to what the assistant should see.
What it is
A Metabase server with six tools: list dashboards, saved questions (cards) and databases, read the cards on a dashboard, and run a saved question or a SQL query of your own.
What you get
- Every dashboard in your instance, and the cards on any one of them — list_dashboards, get_dashboard_cards
- Your saved questions and connected database sources — list_cards, list_databases
- A saved question run with optional parameters, results returned — execute_card
- Custom SQL against any database connected to your Metabase — execute_query, limited only by the account or API key you use
Requirements
A Metabase instance at METABASE_URL, plus either METABASE_API_KEY or METABASE_USER_EMAIL and METABASE_PASSWORD. Building from a clone needs Node.js 18 or later.
Setup effort
Build from source — git clone https://github.com/hyeongjun-dev/metabase-mcp-server.git
USE CASES
Answering a question a saved card already answers
Find the card among your saved questions, run it with the parameters you need, and read the result back.
Seeing what a dashboard is built from
Open the dashboard, list the cards on it, then run the one whose numbers look off.
6 tools
Listed in project docs. Your client may show a different list.
list_cardslist_databasesexecute_cardget_dashboard_cardsexecute_queryBEFORE YOU INSTALL
What to know first
Tools you get
6 tools named in the project's documentation. execute_query runs custom SQL against any database connected to your Metabase; what it can reach depends on the permissions of the account or API key you use.
Requires
- npx on PATH
- Node.js 18.0.0 or later
- METABASE_URL pointing at your Metabase instance
- METABASE_API_KEY, or METABASE_USER_EMAIL and METABASE_PASSWORD together
Where it runs
All 3 documented setups run the server on your machine.
INSTALLATION
Connect your client
Server setup
git clone https://github.com/hyeongjun-dev/metabase-mcp-server.git
cd metabase-mcp-server
npm install
npm run buildMCP Clients
Claude Desktop — Smithery, API key
{
"mcpServers": {
"metabase-mcp-server": {
"command": "npx",
"args": [
"-y",
"@smithery/cli@latest",
"run",
"@hyeongjun-dev/metabase-mcp-server",
"--config",
"{\"metabaseUrl\":\"<YOUR_METABASE_URL>\",\"metabaseApiKey\":\"<YOUR_API_KEY>\",\"metabasePassword\":\"\",\"metabaseUserEmail\":\"\"}"
]
}
}
}<YOUR_METABASE_URL> is your Metabase address, and <YOUR_API_KEY> is a Metabase API key. Leave the password and email empty.
Claude Desktop — Smithery, password
{
"mcpServers": {
"metabase-mcp-server": {
"command": "npx",
"args": [
"-y",
"@smithery/cli@latest",
"run",
"@hyeongjun-dev/metabase-mcp-server",
"--config",
"{\"metabaseUrl\":\"<YOUR_METABASE_URL>\",\"metabaseApiKey\":\"\",\"metabasePassword\":\"<YOUR_METABASE_PASSWORD>\",\"metabaseUserEmail\":\"<YOUR_METABASE_USER_EMAIL>\"}"
]
}
}
}<YOUR_METABASE_URL> is your Metabase address, and <YOUR_METABASE_USER_EMAIL> and <YOUR_METABASE_PASSWORD> are the Metabase login to use. Leave metabaseApiKey empty.
Claude Desktop — local build
{
"mcpServers": {
"metabase-mcp-server": {
"command": "<YOUR_PATH_TO_METABASE_MCP_SERVER>/build/index.js",
"env": {
"METABASE_URL": "<YOUR_METABASE_URL>",
"METABASE_USER_EMAIL": "<YOUR_METABASE_USER_EMAIL>",
"METABASE_PASSWORD": "<YOUR_METABASE_PASSWORD>"
}
}
}
}<YOUR_PATH_TO_METABASE_MCP_SERVER> is the full path of the folder the clone created (npm run build writes build/index.js there). To sign in with an API key instead, use "METABASE_API_KEY": "<YOUR_METABASE_API_KEY>" instead of the email and password lines.