Skip to main content

Metabase MCP Server

A Model Control Protocol (MCP) server that enables AI assistants to interact with Metabase databases and actions.

![Metabase MCP Server]

Overview

The Metabase MCP Server provides a bridge between AI assistants and Metabase, allowing AI models to:

  • List and explore databases configured in Metabase
  • Retrieve detailed metadata about database schemas, tables, and fields
  • Visualize relationships between tables in a database
  • List and execute Metabase actions
  • Perform operations on Metabase data through a secure API

This server implements the [Model Control Protocol (MCP)] specification, making it compatible with AI assistants that support MCP tools.

Features

  • Database Exploration: List all databases and explore their schemas
  • Metadata Retrieval: Get detailed information about tables, fields, and relationships
  • Relationship Visualization: Generate visual representations of database relationships
  • Action Management: List, view details, and execute Metabase actions
  • Secure API Key Handling: Store API keys encrypted and prevent exposure
  • Web Interface: Test and debug functionality through a user-friendly web interface
  • Docker Support: Easy deployment with Docker and Docker Compose

Prerequisites

  • Metabase instance (v0.46.0 or higher recommended)
  • Metabase API key with appropriate permissions
  • Docker (for containerized deployment)
  • Python 3.10+ (for local development)

Installation

Using Docker (Recommended)

  1. Clone this repository:

    git clone https://github.com/yourusername/metabase-mcp.git
    cd metabase-mcp
    
  2. Build and run the Docker container:

    docker-compose up -d
    
  3. Access the configuration interface at http://localhost:5001

Manual Installation

  1. Clone this repository:

    git clone https://github.com/yourusername/metabase-mcp.git
    cd metabase-mcp
    
  2. Install dependencies:

    pip install -r requirements.txt
    
  3. Run the configuration interface:

    python -m src.server.web_interface
    
  4. Access the configuration interface at http://localhost:5000

Configuration

  1. Open the web interface in your browser
  2. Enter your Metabase URL (e.g., http://localhost:3000)
  3. Enter your Metabase API key
  4. Click "Save Configuration" and test the connection

Obtaining a Metabase API Key

  1. Log in to your Metabase instance as an administrator
  2. Go to Settings > Admin settings > API Keys
  3. Create a new API key with appropriate permissions
  4. Copy the generated key for use in the MCP server

Usage

Running the MCP Server

After configuration, you can run the MCP server:

# Using Docker
docker run -p 5001:5000 metabase-mcp

# Manually
python -m src.server.mcp_server

Available Tools

The MCP server provides the following tools to AI assistants:

  1. list_databases: List all databases configured in Metabase
  2. get_database_metadata: Get detailed metadata for a specific database
  3. db_overview: Get a high-level overview of all tables in a database
  4. table_detail: Get detailed information about a specific table
  5. visualize_database_relationships: Generate a visual representation of database relationships
  6. run_database_query: Execute a SQL query against a database
  7. list_actions: List all actions configured in Metabase
  8. get_action_details: Get detailed information about a specific action
  9. execute_action: Execute a Metabase action with parameters

Testing Tools via Web Interface

The web interface provides a testing area for each tool:

  1. List Databases: View all databases configured in Metabase
  2. Get Database Metadata: View detailed schema information for a database
  3. DB Overview: View a concise list of all tables in a database
  4. Table Detail: View detailed information about a specific table
  5. Visualize Database Relationships: Generate a visual representation of table relationships
  6. Run Query: Execute SQL queries against databases
  7. List Actions: View all actions configured in Metabase
  8. Get Action Details: View detailed information about a specific action
  9. Execute Action: Test executing an action with parameters

Security Considerations

  • API keys are stored encrypted at rest
  • The web interface never displays API keys in plain text
  • All API requests use HTTPS when configured with a secure Metabase URL
  • The server should be deployed behind a secure proxy in production environments

Development

Project Structure

metabase-mcp/
├── src/
│   ├── api/            # Metabase API client
│   ├── config/         # Configuration management
│   ├── server/         # MCP and web servers
│   └── tools/          # Tool implementations
├── templates/          # Web interface templates
├── docker-compose.yml  # Docker Compose configuration
├── Dockerfile          # Docker build configuration
├── requirements.txt    # Python dependencies
└── README.md           # Documentation

Adding New Tools

To add a new tool:

  1. Implement the tool function in src/tools/
  2. Register the tool in src/server/mcp_server.py
  3. Add a testing interface in templates/config.html (optional)
  4. Add a route in src/server/web_interface.py (if adding a testing interface)

Troubleshooting

Common Issues

  • Connection Failed: Ensure your Metabase URL is correct and accessible
  • Authentication Error: Verify your API key has the necessary permissions
  • Docker Network Issues: When using Docker, ensure proper network configuration

Logs

Check the logs for detailed error information:

# Docker logs
docker logs metabase-mcp

# Manual execution logs
# Logs are printed to the console

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

iflow_mcp_sazboxai_metabase_mcp-0.1.0.tar.gz (14.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

iflow_mcp_sazboxai_metabase_mcp-0.1.0-py3-none-any.whl (16.7 kB view details)

Uploaded Python 3

File details

Details for the file iflow_mcp_sazboxai_metabase_mcp-0.1.0.tar.gz.

File metadata

  • Download URL: iflow_mcp_sazboxai_metabase_mcp-0.1.0.tar.gz
  • Upload date:
  • Size: 14.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.27 {"installer":{"name":"uv","version":"0.9.27","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for iflow_mcp_sazboxai_metabase_mcp-0.1.0.tar.gz
Algorithm Hash digest
SHA256 082af989c571dec30586ae9943f49b2de4fc1ba9e19832ba04920da21bd83f60
MD5 565b187c327adae0ca65e184b4e694fc
BLAKE2b-256 34e3887226959042af443b0db7a24562d6f71b79f88c21a8e16acf1dbf4360aa

See more details on using hashes here.

File details

Details for the file iflow_mcp_sazboxai_metabase_mcp-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: iflow_mcp_sazboxai_metabase_mcp-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 16.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.27 {"installer":{"name":"uv","version":"0.9.27","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for iflow_mcp_sazboxai_metabase_mcp-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 039643ac80259f2a38e2966a60498adbe71a15b87c926ffb3a84d4d27d3ab57e
MD5 a26a0beb0836204170ac7bc1d5230896
BLAKE2b-256 1273cf90d73a3a9edef4a529eddc97b20be0bb9b5f8e570011c0c38b6e28cc42

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page