- Home
- MCP servers
- Metabase
Metabase
- javascript
0
GitHub Stars
javascript
Language
7 months ago
First Indexed
3 months ago
Catalog Refreshed
Documentation & install
Readme and setup notes from the catalogue, plus a client-ready config you can copy for your MCP host.
Installation
Add the following to your MCP client configuration file.
Configuration
View docs{
"mcpServers": {
"ryanmaule-metabase-mcp": {
"command": "npx",
"args": [
"-y",
"@smithery/cli@latest",
"run",
"YOUR_GITHUB_USERNAME/metabase-mcp-server",
"--config",
"{\"metabaseUrl\":\"https://your-metabase-instance.com\",\"metabaseApiKey\":\"your_api_key\",\"metabasePassword\":\"\",\"metabaseUserEmail\":\"\"}"
],
"env": {
"METABASE_URL": "https://your-metabase-instance.com",
"METABASE_API_KEY": "your_api_key",
"METABASE_PASSWORD": "your_password",
"METABASE_USER_EMAIL": "user@example.com"
}
}
}
}Metabase MCP Server connects AI assistants to Metabase analytics, providing direct access to dashboards, cards, databases, and queries through a structured MCP interface. It acts as a bridge so you can ask questions, run saved analyses, and retrieve results from Metabase inside your conversational flows.
How to use
You use an MCP client to interact with Metabase through the Metabase MCP Server. You can browse resources via intuitive metabase:// URIs and perform actions such as listing dashboards, cards, databases, and collections, as well as running saved questions or custom SQL. Responses are returned in JSON for easy consumption by AI assistants. Authentication supports both API keys (recommended for production) and username/password, and you can enable thorough logging for debugging and monitoring.
Typical use patterns include: - List all dashboards to understand your available analytics surfaces. - Retrieve all saved questions/cards to see what analyses exist. - Execute a saved card or a custom query to fetch live data for a chat or assistant response. - Create, update, or delete dashboards and cards as part of building analytics-driven conversations. - Organize dashboards with collections for easier navigation.
How to install
Prerequisites: install Node.js (LTS) and ensure you have access to a Metabase instance. You will deploy an MCP server that exposes the Metabase capabilities to your AI assistants.
-
Prepare the deployment by forking the MCP server repository to your GitHub account. Then use Smithery to deploy the MCP server from your fork.
-
Use the Smithery deployment flow to connect with your GitHub account and publish the forked repository as an MCP server. Follow Smithery’s interface to complete the deployment steps.
-
If you are integrating with Claude Desktop, point Claude Desktop at the Smithery-hosted MCP server configuration. You will configure a metabase-mcp server entry that runs via npx and Smithery’s CLI with your chosen configuration.
-
Example runtime command structure shown for Claude Desktop integration: the MCP server is started with npx and a Smithery CLI run command, passing a JSON config containing your Metabase URL and credentials. The exact command appears in the deployment guide as shown in the integration snippet below.
{
"mcpServers": {
"metabase-mcp": {
"command": "npx",
"args": [
"-y",
"@smithery/cli@latest",
"run",
"YOUR_GITHUB_USERNAME/metabase-mcp-server",
"--config",
"{\"metabaseUrl\":\"https://your-metabase-instance.com\",\"metabaseApiKey\":\"your_api_key\",\"metabasePassword\":\"\",\"metabaseUserEmail\":\"\"}"
]
}
}
}
Security considerations
For production, prefer API key authentication for Metabase access. Keep all credentials secure and avoid embedding them directly in code. Consider using environment variables to supply sensitive values and restrict network access to your Metabase instance.
Configuration
Two authentication methods are supported for connecting to Metabase from the MCP server: a username/password flow and API key authentication. The URL of your Metabase instance is required in both cases, along with either an API key or a user email/password combination.
Environment variables you will typically provide when configuring the MCP server include METABASE_URL and one of METABASE_API_KEY or METABASE_PASSWORD and METABASE_USER_EMAIL, depending on which authentication method you use.
Troubleshooting and notes
- Ensure your Metabase instance is reachable from the MCP server network. - Verify authentication details are correct and that the API key has the needed permissions. - Enable detailed logging to help trace issues during integration with AI assistants.
Tools and capabilities overview
The server exposes a range of data access, execution, and management tools to support AI-driven analytics interactions. You can list resources, run saved questions, execute SQL, and manage dashboards, cards, and collections. The tools are designed to return structured JSON for easy consumption by your AI assistants.
Notes on deployment and usage
The MCP server is designed to be deployed via your preferred MCP runner (for example, through Smithery using a standard CLI run pattern). You will supply a configuration that includes the Metabase endpoint and credentials, and the MCP client will communicate with Metabase to fulfill requests from your AI assistants.
Available tools
list_dashboards
Retrieve all available dashboards in your Metabase instance
list_cards
Get all saved questions/cards in Metabase
list_databases
View all connected database sources
list_collections
List all collections in Metabase
list_tables
List all tables in a specific database
get_table_fields
Get all fields/columns in a specific table
execute_card
Run a saved card and retrieve results with optional parameters
execute_query
Execute custom SQL queries against any connected database
get_dashboard_cards
Extract all cards from a specific dashboard
create_dashboard
Create a new dashboard with specified name and parameters
update_dashboard
Update an existing dashboard's name, description, or parameters
delete_dashboard
Delete a dashboard
add_card_to_dashboard
Add or update cards in a dashboard with position specifications and optional tab assignment
create_card
Create a new card with an SQL query
update_card_visualization
Update visualization settings for a card
create_collection
Create a new collection to organize dashboards and questions