Provides comprehensive integration with Metabase analytics platform, enabling full CRUD operations on dashboards, questions/cards, collections, users, and databases. Supports advanced features like dashboard subscriptions, public sharing, data export, permission management, and system monitoring with 70+ tools covering all major Metabase functionality.
Metabase MCP Server
A comprehensive Model Context Protocol (MCP) server for Metabase integration, designed for enterprises and developers who want to supercharge their AI assistants with live analytics and business intelligence.
Developed and maintained by EaseCloud Technologies — your trusted partner for cloud-native, AI-driven, and data infrastructure solutions.
This is a TypeScript-based MCP server that implements full integration with Metabase API. It allows AI assistants to interact with Metabase, providing comprehensive access to:
- Complete CRUD Operations: Full lifecycle management for all Metabase entities
- Advanced Dashboard Management: Card positioning, parameters, subscriptions, and alerts
- User & Permission Management: Complete user lifecycle and permission system control
- Database Management: Connection management, schema sync, and metadata exploration
- Analytics & Monitoring: Usage statistics, activity tracking, and system health monitoring
- Advanced Query Features: Export, bookmarking, public sharing, and complex query execution
- Search & Discovery: Global search, popular items, and content recommendations
- Settings & Configuration: System settings and instance configuration management
70+ Tools Available covering all major Metabase functionality for enterprise usage.
Supported Metabase Versions
This MCP server is compatible with:
- Metabase v0.46.x and above (recommended: v0.48.x or later)
- Metabase Cloud (fully supported)
- Self-hosted Metabase instances (Docker, JAR, or cloud deployments)
Note: Some advanced features may require newer Metabase versions. For optimal compatibility, we recommend using Metabase v0.48.0 or later.
Why We Built This
At EaseCloud, we help companies modernize their data platforms and unlock the power of AI.
Metabase is a leading open-source BI tool — but connecting it with AI assistants like Claude, Cursor, and Windsurf requires complex API work.
This MCP server removes that barrier by providing 70+ ready-to-use tools that cover everything from dashboards to queries, permissions to monitoring.
Our goal is to make enterprise analytics accessible in natural language while showcasing our expertise in integration, automation, and cloud solutions.
Features
Resources
- Access Metabase resources via
metabase://
URIs - Dashboards:
metabase://dashboard/{id}
- Access dashboard details - Cards/Questions:
metabase://card/{id}
- Access question/card details - Databases:
metabase://database/{id}
- Access database information - Collections:
metabase://collection/{id}
- Access collection details - Users:
metabase://user/{id}
- Access user information - Tables:
metabase://table/{id}
- Access table metadata - Fields:
metabase://field/{id}
- Access field information - JSON content type for structured data access
Core Data Management Tools
Dashboard Management
list_dashboards
- List all dashboards in Metabasecreate_dashboard
- Create a new dashboardupdate_dashboard
- Update an existing dashboarddelete_dashboard
- Delete/archive a dashboardget_dashboard_cards
- Get all cards in a dashboard
Card/Question Management
list_cards
- List all questions/cards in Metabasecreate_card
- Create a new question/cardupdate_card
- Update an existing question/carddelete_card
- Delete/archive a question/cardexecute_card
- Execute a card and get results
Database Operations
list_databases
- List all databases in Metabaseexecute_query
- Execute a SQL query against a database
Collections Management
list_collections
- List all collectionscreate_collection
- Create a new collectionupdate_collection
- Update an existing collectiondelete_collection
- Delete a collectionget_collection_items
- Get all items in a collectionmove_to_collection
- Move items between collections
User & Permission Management
list_users
- List all userscreate_user
- Create a new userupdate_user
- Update user detailsdelete_user
- Deactivate a userlist_permissions
- List permission groups and permissionslist_permission_groups
- List all permission groupscreate_permission_group
- Create a new permission groupupdate_permission_group
- Update a permission groupdelete_permission_group
- Delete a permission groupadd_user_to_group
- Add user to permission groupremove_user_from_group
- Remove user from permission group
Advanced Query Features
export_card_results
- Export card results to CSV/JSON/Excelexport_dashboard_data
- Export dashboard data to various formatsbookmark_card
- Bookmark a cardunbookmark_card
- Remove card bookmarkbookmark_dashboard
- Bookmark a dashboardunbookmark_dashboard
- Remove dashboard bookmarklist_bookmarked_items
- List all bookmarked itemscreate_public_link
- Create public sharing linkdisable_public_link
- Disable public sharingget_public_link
- Get public link information
Database Schema Operations
get_database_schema
- Get database schema informationget_database_tables
- Get all tables in a databaseget_table_metadata
- Get table metadataget_table_fields
- Get all fields in a tableget_field_values
- Get field valuesget_field_summary
- Get field summary statisticsanalyze_field_values
- Analyze field values
Search & Discovery
search_content
- Search across all Metabase contentget_recent_items
- Get recently viewed itemsget_popular_items
- Get most popular cards and dashboards
Advanced Dashboard Features
add_card_to_dashboard
- Add a card to a dashboard with positioningremove_card_from_dashboard
- Remove a card from a dashboardupdate_dashboard_card
- Update card position, size, and settingsget_dashboard_parameters
- Get dashboard parametersupdate_dashboard_parameters
- Update dashboard parameterscreate_dashboard_subscription
- Create dashboard subscriptions/alertslist_dashboard_subscriptions
- List all dashboard subscriptionsupdate_dashboard_subscription
- Update subscription settingsdelete_dashboard_subscription
- Delete a dashboard subscription
Analytics & Monitoring
get_user_activity
- Get user activity and usage statisticsget_content_usage
- Get usage statistics for cards and dashboardsget_system_usage_stats
- Get system-wide usage statisticsget_system_health
- Get system health status
Database Connection Management
create_database_connection
- Create new database connectionstest_database_connection
- Test database connectivitysync_database_schema
- Sync database schema metadataget_database_sync_status
- Get database schema sync status
Settings & Configuration
get_metabase_settings
- Get Metabase instance settingsupdate_metabase_settings
- Update instance settings
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:
Or, using Username/Password:
You can set these environment variables in your shell profile or use a .env
file with a package like dotenv
.
Development
Install dependencies:
Build the server:
For development with auto-rebuild:
Installation & Usage
Method 1: Using npx (Recommended)
The easiest way to run the server is using npx:
Method 2: Using Node.js directly
If you have the package installed locally or globally:
Or run from the built project:
Method 3: Using Docker
You can run the server using Docker:
Or using docker-compose:
Then run:
Integration with Claude Desktop
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
Using npx:
Using Node.js directly:
Alternative authentication (username/password):
Environment Variables
The server supports the following environment variables:
- METABASE_URL (required): The URL of your Metabase instance
- METABASE_API_KEY (preferred): Your Metabase API key
- METABASE_USERNAME: Your Metabase username (fallback if API key not provided)
- METABASE_PASSWORD: Your Metabase password (fallback if API key not provided)
Debugging
Since MCP servers communicate over stdio, debugging can be challenging. We recommend using the MCP Inspector, which is available as a package script:
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
About EaseCloud Technologies
EaseCloud is a cloud consulting and solutions company specializing in:
- Cloud-native application development
- AI & automation integrations
- DevOps and infrastructure management
- Data analytics and BI platform consulting
We built this project to contribute to the open-source MCP ecosystem while demonstrating our deep expertise in data-driven decision systems.
👉 If your team is adopting Metabase at scale or looking to integrate AI with your BI stack, get in touch with us — we provide consulting, customization, and managed support for enterprises.
💡 Work with EaseCloud
Need help deploying, customizing, or scaling Metabase in production?
We provide end-to-end support for BI, AI, and cloud infrastructure.
📧 Contact us: support@easecloud.io
🌐 Learn more: https://easecloud.io
License
This project is licensed under the MIT License - see the LICENSE file for details.
Support
For support, please contact us at support@easecloud.io or visit our website at EaseCloud.io.
Bug Reports & Issues
Found a bug or have a feature request? We'd love to hear from you!
🐛 Report Issues: Create a bug report on GitHub
When reporting issues, please include:
- Metabase version you're using
- MCP server version
- Steps to reproduce the issue
- Expected vs actual behavior
- Any error messages or logs
Contributing
Contributions are welcome! Please visit our GitHub repository to submit issues or pull requests.
This server cannot be installed
remote-capable server
The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.
A comprehensive Model Context Protocol server for Metabase integration, developed by EaseCloud Technologies. 70+ Tools Available covering all major Metabase functionality for enterprise usage.
Related MCP Servers
- -securityFlicense-qualityA Model Context Protocol server that provides tools for connecting to and interacting with various database systems (SQLite, PostgreSQL, MySQL/MariaDB, SQL Server) through a unified interface.Last updated -3
- -securityFlicense-qualityA Model Context Protocol server that enables large language models to interact directly with Couchbase databases through natural language, supporting operations like querying buckets, performing CRUD operations, and executing N1QL queries.Last updated -157
- AsecurityAlicenseAqualityA Model Context Protocol server that enables large language models to access database metadata and perform cross-engine data querying across diverse database ecosystems.Last updated -1222Apache 2.0
- AsecurityFlicenseAqualityA Model Context Protocol server that enables interaction with self-hosted Supabase instances, allowing developers to query database schemas, manage migrations, inspect statistics, and interact with Supabase features directly from MCP-compatible development environments.Last updated -211