create_card
Create a new question/card in Metabase.
Reach a Metabase instance from the model: walk its databases, tables and fields, run native SQL against a chosen database, run or save a question, and file it into a collection.
LABSCO SUMMARY
The read path is complete enough to start from nothing: find the database, list its tables, read a table's fields, then run the SQL. The write path stops where a reviewer would want it to — create_card and create_collection add new work, and nothing in the list edits or deletes an existing card, so a wrong query becomes an extra card rather than a silent change to someone's dashboard. execute_query takes native SQL against a database_id, so the guardrail is whatever the Metabase credentials in use are permitted to do.
A server over the Metabase API covering schema discovery, native SQL execution, saved questions and collections.
A running Metabase instance and the settings to reach it — METABASE_URL and METABASE_API_KEY, set in the client configuration's env block.
Build from source — git clone https://github.com/cuenca-mx/metabase-mcp-server.git
USE CASES
Walk from databases to tables to fields, then write the SQL against what is actually there rather than against what you remember.
Save the query as a question with its visualization settings, and file it in an existing collection or a new one.
Find the saved question, then run it with the parameters changed instead of rewriting the SQL.
Counted once with only startup setup. Other versions, modes or optional credentials may expose a different list.
create_cardCreate a new question/card in Metabase.
create_collectionCreate a new collection in Metabase.
execute_cardExecute a saved Metabase question/card and retrieve results.
execute_queryExecute a native SQL query against a Metabase database.
get_table_fieldsGet all fields/columns in a specific table.
list_cardsList all saved questions/cards in Metabase.
Returns: Dictionary containing all cards with their metadata.
list_collectionsList all collections in Metabase.
Returns: Dictionary containing all collections with their metadata.
list_databasesList all databases configured in Metabase.
Returns: A dictionary containing all available databases with their metadata.
list_tablesList all tables in a specific database.
BEFORE YOU INSTALL
9 tools when we connected.
The documented client runs the server on your machine.
CONTEXT COST
Rated by the size of the 9 tool definitions that ride along on every turn, not by how many there are
INSTALLATION
You clone this one yourself.
git clone https://github.com/cuenca-mx/metabase-mcp-server.git
cd metabase-mcp-server{
"mcpServers": {
"metabase": {
"command": "uv",
"args": [
"--directory",
"<YOUR_PATH_TO_PARENT_FOLDER_METABASE_MCP>",
"run",
"app.py"
],
"env": {
"METABASE_URL": "https://metabase.domain.com/",
"METABASE_API_KEY": "<YOUR_METABASE_API_KEY>"
}
}
}
}In --directory, <YOUR_PATH_TO_PARENT_FOLDER_METABASE_MCP> is the metabase_mcp_server folder (with underscores) inside your metabase-mcp-server clone — the folder that holds app.py — so the path ends …/metabase-mcp-server/metabase_mcp_server.