
Metabase Integration Server
mcp metabase
Installation
Installing for Claude Desktop
Manual Configuration Required
This MCP server requires manual configuration. Run the command below to open your configuration file:
npx mcpbar@latest edit -c claude
This will open your configuration file where you can add the Metabase Integration Server MCP server manually.
metabase-server MCP Server
A Model Context Protocol server for Metabase integration.
This is a TypeScript-based MCP server that implements integration with Metabase API. It allows AI assistants to interact with Metabase, providing access to:
- Dashboards, questions/cards, and databases as resources
- Tools for listing and executing Metabase queries
- Ability to view and interact with Metabase data
Features
Resources
- List and access Metabase resources via
metabase://
URIs - Access dashboards, cards/questions, and databases
- JSON content type for structured data access
Tools
list_dashboards
- List all dashboards in Metabaselist_cards
- List all questions/cards in Metabaselist_databases
- List all databases in Metabaseexecute_card
- Execute a Metabase question/card and get resultsget_dashboard_cards
- Get all cards in a dashboardexecute_query
- Execute a SQL query against a Metabase database
Configuration
Before running the server, you need to set environment variables for authentication. The server supports two methods:
-
API Key (Preferred):
METABASE_URL
: The URL of your Metabase instance (e.g.,https://your-metabase-instance.com
).METABASE_API_KEY
: Your Metabase API key.
-
Username/Password (Fallback):
METABASE_URL
: The URL of your Metabase instance.METABASE_USERNAME
: Your Metabase username.METABASE_PASSWORD
: Your Metabase password.
The server will first check for METABASE_API_KEY
. If it's set, API key authentication will be used. If METABASE_API_KEY
is not set, the server will fall back to using METABASE_USERNAME
and METABASE_PASSWORD
. You must provide credentials for at least one of these methods.
Example setup:
Using API Key:
# Required environment variables
export METABASE_URL=https://your-metabase-instance.com
export METABASE_API_KEY=your_metabase_api_key
Or, using Username/Password:
# Required environment variables
export METABASE_URL=https://your-metabase-instance.com
export METABASE_USERNAME=your_username
export METABASE_PASSWORD=your_password
You can set these environment variables in your shell profile or use a .env
file with a package like dotenv
.
Development
Install dependencies:
npm install
Build the server:
npm run build
For development with auto-rebuild:
npm run watch
Installation
To use with Claude Desktop, add the server config:
On MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json
On Windows: %APPDATA%/Claude/claude_desktop_config.json
{
"mcpServers": {
"metabase-server": {
"command": "/path/to/metabase-server/build/index.js",
"env": {
"METABASE_URL": "https://your-metabase-instance.com",
// Use API Key (preferred)
"METABASE_API_KEY": "your_metabase_api_key"
// Or Username/Password (if API Key is not set)
// "METABASE_USERNAME": "your_username",
// "METABASE_PASSWORD": "your_password"
}
}
}
}
Note: You can also set these environment variables in your system instead of in the config file if you prefer.
Installing via Smithery
To install metabase-server for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install @imlewc/metabase-server --client claude
Debugging
Since MCP servers communicate over stdio, debugging can be challenging. We recommend using the MCP Inspector, which is available as a package script:
npm run inspector
The Inspector will provide a URL to access debugging tools in your browser.
Testing
After configuring the environment variables as described in the "Configuration" section, you can manually test the server's authentication. The MCP Inspector (npm run inspector
) is a useful tool for sending requests to the server.
1. Testing with API Key Authentication
- Set the
METABASE_URL
andMETABASE_API_KEY
environment variables with your Metabase instance URL and a valid API key. - Ensure
METABASE_USERNAME
andMETABASE_PASSWORD
are unset or leave them, as the API key should take precedence. - Start the server:
npm run build && node build/index.js
(or use your chosen method for running the server, like via Claude Desktop config). - Check the server logs. You should see a message indicating that it's using API key authentication (e.g., "Using Metabase API Key for authentication.").
- Using an MCP client or the MCP Inspector, try calling a tool, for example,
tools/call
with{"name": "list_dashboards"}
. - Verify that the tool call is successful and you receive the expected data.
2. Testing with Username/Password Authentication (Fallback)
- Ensure the
METABASE_API_KEY
environment variable is unset. - Set
METABASE_URL
,METABASE_USERNAME
, andMETABASE_PASSWORD
with valid credentials for your Metabase instance. - Start the server.
- Check the server logs. You should see a message indicating that it's using username/password authentication (e.g., "Using Metabase username/password for authentication." followed by "Authenticating with Metabase using username/password...").
- Using an MCP client or the MCP Inspector, try calling the
list_dashboards
tool. - Verify that the tool call is successful.
3. Testing Authentication Failures
- Invalid API Key:
- Set
METABASE_URL
and an invalidMETABASE_API_KEY
. EnsureMETABASE_USERNAME
andMETABASE_PASSWORD
variables are unset. - Start the server.
- Attempt to call a tool (e.g.,
list_dashboards
). The tool call should fail, and the server logs might indicate an authentication error from Metabase (e.g., "Metabase API error: Invalid X-API-Key").
- Set
- Invalid Username/Password:
- Ensure
METABASE_API_KEY
is unset. SetMETABASE_URL
and invalidMETABASE_USERNAME
/METABASE_PASSWORD
. - Start the server.
- Attempt to call a tool. The tool call should fail due to failed session authentication. The server logs might show "Authentication failed" or "Failed to authenticate with Metabase".
- Ensure
- Missing Credentials:
- Unset
METABASE_API_KEY
,METABASE_USERNAME
, andMETABASE_PASSWORD
. Set onlyMETABASE_URL
. - Attempt to start the server.
- The server should fail to start and log an error message stating that authentication credentials (either API key or username/password) are required (e.g., "Either (METABASE_URL and METABASE_API_KEY) or (METABASE_URL, METABASE_USERNAME, and METABASE_PASSWORD) environment variables are required").
- Unset
Stars
34Forks
9Last commit
24 days agoRepository age
4 months
Auto-fetched from GitHub .
MCP servers similar to Metabase Integration Server:

Stars
Forks
Last commit

Stars
Forks
Last commit

Stars
Forks
Last commit