MCP Metabase Server

by easecloudio• 83•• Scanned•Claim this listing•Request removal
Othermcpmcp servermetabase

A comprehensive MCP server for Metabase with 70+ tools.

MCP Metabase Server is an open-source mcp server by easecloudio, written mainly in TypeScript, with 83 GitHub stars and the MIT license. Its code was last updated May 14, 2026. The latest npm release is @easecloudio/mcp-metabase-server 1.3.0, published May 14, 2026, with 815 downloads last week.

Metabase MCP Server

npm version License: MIT TypeScript GitHub

A Model Context Protocol (MCP) server for Metabase that gives AI assistants full access to your analytics platform — dashboards, cards, databases, tables, collections, and more.

Developed and maintained by EaseCloud — cloud-native, AI-driven, and data infrastructure solutions.

Quick Start

export METABASE_URL=https://your-metabase-instance.com
export METABASE_API_KEY=your_metabase_api_key
npx @easecloudio/mcp-metabase-server

96 Tools Available

DomainTools
Dashboard Management27
Card / Question Management21
Database Management16
Table Management17
Collections, Users & Search13
Schema Cache (SQL→MBQL)2

Supported Metabase Versions

  • Metabase v0.46.x and above (recommended: v0.48.x or later)
  • Metabase Cloud (fully supported)
  • Self-hosted instances (Docker, JAR, or cloud deployments)

Installation

npx (Recommended)

npx @easecloudio/mcp-metabase-server

Global install

npm install -g @easecloudio/mcp-metabase-server
mcp-metabase-server

Docker

docker build -t mcp-metabase-server .
docker run -it --rm \
  -e METABASE_URL=https://your-metabase-instance.com \
  -e METABASE_API_KEY=your_metabase_api_key \
  mcp-metabase-server

Configuration

Authentication

API Key (preferred):

METABASE_URL=https://your-metabase-instance.com
METABASE_API_KEY=your_metabase_api_key

Username / Password (fallback):

METABASE_URL=https://your-metabase-instance.com
METABASE_USERNAME=your_username
METABASE_PASSWORD=your_password

Copy .env.example to .env and fill in your values.

Tool Filtering (TOOL_MODE)

Set TOOL_MODE to control which tools are exposed to the AI. Useful for limiting surface area or preventing accidental writes.

ModeDescription
allEvery available tool (default)
essentialCore read + execute tools only
readAll non-destructive tools
writeAll tools including create / update / delete
TOOL_MODE=essential  # smallest surface area
TOOL_MODE=read       # read-only
TOOL_MODE=all        # everything (default)

Claude Desktop Integration

MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%/Claude/claude_desktop_config.json

Using npx:

{
  "mcpServers": {
    "metabase": {
      "command": "npx",
      "args": ["@easecloudio/mcp-metabase-server"],
      "env": {
        "METABASE_URL": "https://your-metabase-instance.com",
        "METABASE_API_KEY": "your_metabase_api_key"
      }
    }
  }
}

With tool filtering:

{
  "mcpServers": {
    "metabase": {
      "command": "npx",
      "args": ["@easecloudio/mcp-metabase-server"],
      "env": {
        "METABASE_URL": "https://your-metabase-instance.com",
        "METABASE_API_KEY": "your_metabase_api_key",
        "TOOL_MODE": "essential"
      }
    }
  }
}

Using a local build:

{
  "mcpServers": {
    "metabase": {
      "command": "node",
      "args": ["/path/to/metabase-server/dist/index.js"],
      "env": {
        "METABASE_URL": "https://your-metabase-instance.com",
        "METABASE_API_KEY": "your_metabase_api_key"
      }
    }
  }
}

Username / password fallback:

{
  "mcpServers": {
    "metabase": {
      "command": "npx",
      "args": ["@easecloudio/mcp-metabase-server"],
      "env": {
        "METABASE_URL": "https://your-metabase-instance.com",
        "METABASE_USERNAME": "your_username",
        "METABASE_PASSWORD": "your_password"
      }
    }
  }
}

Available Tools

<details> <summary><strong>Dashboard Management (27 tools)</strong></summary>

Core CRUD

ToolDescription
list_dashboardsList all dashboards
get_dashboardGet a specific dashboard by ID
create_dashboardCreate a new dashboard
update_dashboardUpdate an existing dashboard
delete_dashboardDelete / archive a dashboard
copy_dashboardDuplicate a dashboard (shallow or deep copy)
save_dashboardSave a complete dashboard object with nested data
save_dashboard_to_collectionMove a dashboard into a specific collection
search_dashboardsSearch dashboards by name or description
favorite_dashboardMark a dashboard as a favourite
unfavorite_dashboardRemove a dashboard from favourites

Card Layout

ToolDescription
get_dashboard_cardsGet all cards in a dashboard
add_card_to_dashboardAdd a card with positioning
add_text_blockAdd a text or heading block to a dashboard
remove_card_from_dashboardRemove a card
update_dashboard_cardUpdate card position, size, and settings
update_dashboard_cardsBulk-replace all cards on a dashboard
update_dashcardUpdate a specific dashcard's properties
execute_dashboard_cardExecute a specific dashcard and return results

Public Sharing & Embedding

ToolDescription
create_dashboard_public_linkCreate a public sharing link
delete_dashboard_public_linkRemove the public link
list_public_dashboardsList dashboards with public links
list_embeddable_dashboardsList dashboards enabled for embedding

Revision, Audit & Discovery

ToolDescription
get_dashboard_revisionsGet revision history (audit trail)
revert_dashboardRevert to a previous revision
get_dashboard_relatedGet related content suggestions
get_dashboard_queriesExtract all card queries with resolved field IDs
</details> <details> <summary><strong>Card / Question Management (21 tools)</strong></summary>

Core CRUD

ToolDescription
list_cardsList all questions / cards
get_cardGet a card by ID (includes full SQL / MBQL query)
create_cardCreate a new question
update_cardUpdate an existing question
delete_cardDelete / archive a question
copy_cardDuplicate a card
move_cardsMove one or more cards to a different collection
move_cards_to_collectionBulk-move cards from a source collection

Execution & Export

ToolDescription
execute_cardRun a card and return results
execute_pivot_card_queryRun a card formatted as a pivot table
export_card_resultExport results as CSV or JSON

Parameters

ToolDescription
get_card_param_valuesGet available values for a card parameter
search_card_param_valuesSearch / filter parameter values
get_card_param_remappingGet how parameter values are remapped for display

Metadata & Discovery

ToolDescription
get_card_query_metadataGet column types and display names
get_card_dashboardsList dashboards containing this card
get_card_seriesGet series data or related card suggestions

Public Sharing & Embedding

ToolDescription
create_card_public_linkCreate a public sharing link
delete_card_public_linkRemove the public link
list_public_cardsList cards with public links
list_embeddable_cardsList cards enabled for embedding
</details> <details> <summary><strong>Database Management (16 tools)</strong></summary>

Core CRUD

ToolDescription
list_databasesList all database connections
get_databaseGet a specific database by ID
create_database_connectionCreate a new database connection
update_databaseUpdate a database connection's config or credentials
delete_databasePermanently remove a database connection
add_sample_databaseAdd the built-in H2 sample database with demo data

Querying

ToolDescription
execute_queryExecute a SQL query against a database

Schema & Sync

ToolDescription
get_database_schemaGet schema information
get_database_tablesGet all tables in a database
get_database_metadataGet full metadata including all tables and field IDs
list_database_schemasList all schemas within a database
sync_database_schemaTrigger a schema metadata sync
get_database_sync_statusCheck sync status

Diagnostics

ToolDescription
check_database_healthCheck connection health
validate_databaseValidate connection settings before saving
test_database_connectionTest an existing connection
</details> <details> <summary><strong>Table Management (17 tools)</strong></summary>

Metadata

ToolDescription
list_tablesList tables (optionally filtered by database)
get_tableGet table metadata by ID
get_table_metadataGet full query metadata including field IDs and types
get_table_fksGet foreign key relationships
get_table_relatedFind related tables via FK relationships
get_table_dataGet a sample data preview from a table
get_field_idLook up a field ID by table ID + column name (returns MBQL ref)

Card Virtual Tables

ToolDescription
get_card_table_fksGet FK relationships for a card's virtual table
get_card_table_query_metadataGet query metadata for a card's virtual table

Management

ToolDescription
update_tableUpdate display name, description, or visibility
update_tablesBulk-update multiple tables with the same config
reorder_table_fieldsChange the display order of fields
sync_table_schemaTrigger a schema sync for a specific table
rescan_table_field_valuesRescan field values (updates filter dropdowns)
discard_table_field_valuesDiscard cached field values

CSV Upload (Metabase-managed tables)

ToolDescription
append_csv_to_tableAppend new rows from CSV content
replace_table_csvReplace all table data with new CSV content
</details> <details> <summary><strong>Collections, Users & Search (13 tools)</strong></summary>

Collections

ToolDescription
list_collectionsList all collections
create_collectionCreate a new collection
get_collectionGet collection details
update_collectionUpdate name, description, color, or parent
delete_collectionDelete a collection and its contents
get_collection_itemsList cards, dashboards, and sub-collections
move_to_collectionMove a card or dashboard to a different collection

Users

ToolDescription
list_usersList all users
create_userCreate a new user

Permissions

ToolDescription
list_permission_groupsList all permission groups
create_permission_groupCreate a new permission group

Search

ToolDescription
search_contentSearch across all Metabase content
</details> <details> <summary><strong>Schema Cache — SQL to MBQL (2 tools)</strong></summary>

These tools enable an AI to convert native SQL questions into interactive MBQL questions. Metabase has no REST API for this conversion — it requires field IDs, which these tools cache locally.

How it works:

  1. get_card — extract the SQL and database_id
  2. get_schema_cache — get tables + field IDs for MBQL references like ["field", 42, null]
  3. AI translates SQL → MBQL using the cached field IDs
  4. create_card — save the new interactive question

Cache is stored at ~/.easecloud/metabase-mcp/cache/{url-hash}/ with a 24-hour TTL and scoped per Metabase instance.

ToolDescription
get_schema_cacheReturn cached schema (auto-fetches if missing or stale)
refresh_schema_cacheForce-refresh cache for one or all databases
</details>

MCP Resources

Access Metabase entities directly via metabase:// URIs:

URIDescription
metabase://dashboard/{id}Dashboard details
metabase://card/{id}Card / question details
metabase://database/{id}Database information
metabase://collection/{id}Collection details
metabase://user/{id}User information
metabase://table/{id}Table metadata
metabase://field/{id}Field information

Development

npm install
npm run build       # compile TypeScript → dist/
npm run watch       # incremental rebuild
npm run dev         # build + start
npm run inspector   # launch MCP Inspector for debugging

Debugging

MCP servers communicate over stdio, which makes direct debugging awkward. Use the MCP Inspector:

npm run inspector

The Inspector provides a browser UI for sending tool calls and inspecting responses.

About EaseCloud

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 expertise in integration, automation, and cloud solutions.

If your team is adopting Metabase at scale or looking to integrate AI with your BI stack, get in touch — we provide consulting, customization, and managed support for enterprises.

📧 support@easecloud.io 🌐 easecloud.io

Bug Reports & Issues

Found a bug or have a feature request?

🐛 Create a GitHub issue

Please include:

  • Metabase version
  • MCP server version
  • Steps to reproduce
  • Expected vs actual behavior
  • Any error messages or logs

Contributing

Contributions are welcome. Visit the GitHub repository to submit issues or pull requests.

License

MIT — see LICENSE for details.

MCP Metabase Server alternatives

View more →

Similar mcp servers in Other, ranked by GitHub stars. Compare licence, recent activity and scan status before you choose.

NameStarsLicenceLast updatedScan
MCP Metabase Server (this page)
easecloudio
83MITMay 14, 2026Scanned, no flagged issues
Github MCP Server
github
34kMITOct 30, 2026Scanned, no flagged issues
Fastapi MCP
tadata-org
12kMITNov 24, 2025Scanned, no flagged issues
GhidraMCP
LaurieWired
12kApache-2.0Oct 10, 2026Scanned, no flagged issues
MCP Go
mark3labs
9.2kMITOct 30, 2026Scanned, no flagged issues
Git MCP
idosal
8.5kApache-2.0May 8, 2026Scanned, no flagged issues