AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
MCP verified MIT Self-run

Metabase Mcp

mcp-takeokunn-metabase-mcp · by takeokunn

Metabase MCP Server

No reviews yet
0 installs
5 views
0.0% view→install

Install

$ agentstack add mcp-takeokunn-metabase-mcp

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/mcp-takeokunn-metabase-mcp)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
1mo ago

Declared compatibility

Claude CodeClaude DesktopCursorWindsurf

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Metabase Mcp? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

@takeokunn/metabase-mcp

[](https://www.npmjs.com/package/@takeokunn/metabase-mcp) [](LICENSE)

A Model Context Protocol (MCP) server for Metabase, enabling AI assistants to interact with your Metabase instance.

Features

  • 429 tools across 59 categories covering the Metabase OSS API
  • Database Management - List, create, update, delete databases and sync metadata
  • Card/Question Management - Create, execute, and manage saved questions
  • Dashboard Management - Build and manage dashboards with cards, tabs, and subscriptions
  • Collection Management - Organize content in collections with tree navigation
  • Table & Field Management - Configure metadata, semantic types, and values
  • User & Permissions Management - Users, groups, membership, and data access control
  • Actions - Write-back model actions for updating data
  • Notifications - Modern notification system for alerts and dashboard subscriptions
  • Timelines & Events - Annotate charts with contextual timeline events
  • Embedding - Signed JWT embedding and anonymous public sharing
  • AI Features - X-ray auto-generated dashboards, LLM SQL generation [Pro], Metabot [Pro]
  • Admin Tools - Settings, email, API keys, caching, tasks, logging, and more
  • Secure API Token Authentication - API key-based access control
  • TypeScript Implementation - Full type safety throughout

> Note: Tools marked [Requires Metabase Pro] require a Metabase Pro or Enterprise license.

Installation

npm install -g @takeokunn/metabase-mcp

Or run directly with npx:

npx @takeokunn/metabase-mcp

Configuration

Set the following environment variables:

| Variable | Description | Example | |----------|-------------|---------| | METABASE_URL | Your Metabase instance URL (HTTPS required) | https://metabase.example.com | | METABASE_API_TOKEN | Metabase API key | mb_xxxxxxxxxxxxx |

Getting an API Token

  1. Log in to Metabase as an admin
  2. Go to Admin PanelSettingsAuthenticationAPI Keys
  3. Click Create API Key
  4. Copy the generated token

Usage

Claude Desktop Integration

Add to your Claude Desktop configuration (~/Library/Application Support/Claude/claude_desktop_config.json):

{
  "mcpServers": {
    "metabase": {
      "command": "npx",
      "args": ["@takeokunn/metabase-mcp"],
      "env": {
        "METABASE_URL": "https://metabase.example.com",
        "METABASE_API_TOKEN": "mb_your_api_token"
      }
    }
  }
}

Or if installed globally:

{
  "mcpServers": {
    "metabase": {
      "command": "metabase-mcp",
      "env": {
        "METABASE_URL": "https://metabase.example.com",
        "METABASE_API_TOKEN": "mb_your_api_token"
      }
    }
  }
}

Available Tools

This MCP server provides 429 tools organized into 59 categories.

> Coverage note: tools mirror the Metabase OSS REST API (/api/docs/openapi.json). Enterprise/Pro-only endpoints (/api/ee/*, sandboxing /api/mt/*, transforms, Metabot/agent, embedding themes, data-studio), test-only endpoints (/api/testing/*), and session-based auth flows (/api/session/* login/logout/password) are intentionally out of scope — this server authenticates with an API key.

Database Tools (30)

| Tool | Description | |------|-------------| | list_databases | Get list of databases configured in Metabase | | get_database | Get a single database by ID from Metabase | | get_database_metadata | Get database metadata including tables and fields from Metabase | | list_database_schemas | List all schemas in a database from Metabase | | list_database_tables | List tables in a database schema from Metabase | | sync_database | Trigger a sync for a database in Metabase | | create_database | Add a new database connection to Metabase | | update_database | Update an existing database connection configuration in Metabase | | delete_database | Delete a database connection from Metabase | | rescan_database_values | Rescan field values for a database in Metabase | | discard_database_values | Discard cached field values for a database in Metabase | | validate_database | Validate a database connection configuration before creating it in Metabase | | create_sample_database | Create the built-in sample database in Metabase | | sync_database_schema | Sync the schema of a database in Metabase (schema only, not a full resync) | | get_database_fields | Get all fields for a database in Metabase | | get_database_id_fields | Get all ID-type fields for a database in Metabase | | get_database_autocomplete | Get autocomplete suggestions for a database in Metabase | | get_database_usage_info | Get usage information for a database in Metabase | | get_database_healthcheck | Perform a healthcheck on a database connection in Metabase | | list_database_schemas_with_tables | List all tables within a specific schema of a database in Metabase | | list_database_virtual_tables | List virtual tables (saved questions) available as tables in a database in Metabase | | get_database_virtual_schema | Get a virtual schema (datasets) for a database in Metabase | | list_database_virtual_schema_tables | List all virtual tables (saved questions as tables) across all databases in Metabase | | append_csv_to_table | Append rows from a CSV upload to an existing table in a database in Metabase | | replace_table_csv | Replace an existing table with CSV data in a database in Metabase | | get_database_card_autocomplete | Get card autocomplete suggestions for a database in Metabase | | get_database_available_settings | Get available settings for a database connection in Metabase | | get_database_syncable_schemas | Get syncable schemas for a database in Metabase | | get_virtual_database_datasets | Get datasets for a virtual database in Metabase | | dismiss_database_spinner | Dismiss the loading spinner for a database in Metabase |

Card Tools (20)

| Tool | Description | |------|-------------| | list_cards | List all saved questions/cards | | get_card | Get card details by ID | | get_card_metadata | Get card metadata including query info | | create_card | Create a new saved question | | update_card | Update an existing card | | delete_card | Delete a card | | execute_card | Execute a card and return results | | create_card_public_link | Create a public sharing link for a card (saved question) in Metabase (returns UUID) | | delete_card_public_link | Delete a public sharing link from a card (saved question) in Metabase | | list_embeddable_cards | List all cards (saved questions) available for embedding in Metabase (admin only) | | list_public_cards | List all cards (saved questions) with public sharing links in Metabase (admin only) | | copy_card | Copy an existing card (saved question) in Metabase | | get_card_series | Get related series data for a card (saved question) in Metabase | | get_card_param_values | Get possible values for a card (saved question) filter parameter in Metabase | | search_card_param_values | Search possible values for a card (saved question) filter parameter in Metabase | | get_card_param_remapping | Get remapping for a parameter of a card in Metabase | | get_card_dashboards | Get dashboards that contain a specific card in Metabase | | move_cards_to_collection | Move multiple cards to a collection in Metabase | | execute_card_pivot | Execute a card (saved question) as a pivot table query in Metabase | | export_card_query | Export a card (saved question) query result in a specified format (csv, json, xlsx, pdf) in Metabase |

Dashboard Tools (38)

| Tool | Description | |------|-------------| | list_dashboards | List all dashboards | | get_dashboard | Get dashboard details by ID | | create_dashboard | Create a new dashboard | | update_dashboard | Update an existing dashboard | | delete_dashboard | Delete a dashboard | | copy_dashboard | Copy a dashboard to a new location | | get_dashboard_metadata | Get dashboard metadata including cards | | add_dashboard_card | Add a card to a dashboard (v0.49+) | | update_dashboard_card | Update a dashboard card position/size/settings (v0.49+) | | remove_dashboard_card | Remove a card from a dashboard (v0.49+) | | update_dashboard_cards | Bulk update dashboard cards (v0.49+) | | add_dashboard_tab | Add a new tab to a dashboard (v0.49+) | | update_dashboard_tab | Update a dashboard tab name/position (v0.49+) | | remove_dashboard_tab | Remove a tab from a dashboard (v0.49+) | | create_dashboard_public_link | Create a public sharing link for a dashboard | | delete_dashboard_public_link | Delete a public sharing link from a dashboard | | list_public_dashboards | List all dashboards with public sharing links | | list_dashboard_revisions | List revision history for a dashboard | | revert_dashboard | Revert a dashboard to a previous revision | | list_dashboard_subscriptions | List dashboard subscriptions (email/Slack notifications) | | create_dashboard_subscription | Create a dashboard subscription | | update_dashboard_subscription | Update a dashboard subscription | | execute_dashboard_card_query | Execute a dashcard query with dashboard filter parameters in Metabase | | export_dashboard_card_query | Export a dashcard query result in a specified format (csv, json, xlsx, pdf) in Metabase | | get_dashboard_param_values | Get possible values for a dashboard filter parameter in Metabase | | search_dashboard_param_values | Search possible values for a dashboard filter parameter in Metabase | | get_dashboard_embeddable | List all dashboards available for embedding in Metabase (admin only) | | get_dashboard_param_remapping | Get remapping for a parameter of a dashboard in Metabase | | get_dashboard_related | Get related items for a dashboard in Metabase | | get_valid_filter_fields | Get valid filter fields for dashboard parameters in Metabase | | save_dashboard | Save a dashboard (creates or updates) in Metabase | | save_dashboard_to_collection | Save a dashboard to a specific collection in Metabase | | get_dashboard_items | Get items (dashcards) of a dashboard in Metabase | | get_dashcard_action_params | Get action parameters for a dashcard in Metabase | | run_dashcard_query | Run the query for a specific card on a dashboard in Metabase | | export_dashcard_query | Export query results for a dashcard in Metabase | | execute_dashcard_action | Execute an action on a dashcard in Metabase | | pivot_dashcard_query | Run a pivot query for a specific dashcard in Metabase |

Collection Tools (15)

| Tool | Description | |------|-------------| | list_collections | List all collections | | get_collection | Get collection details by ID | | get_collection_items | Get items within a collection | | get_collection_tree | Get the full collection hierarchy tree | | get_root_collection | Get the root collection from Metabase | | get_root_collection_items | Get items (cards, dashboards, etc.) within the root collection in Metabase | | get_trash_collection | Get the trash collection from Metabase | | create_collection | Create a new collection | | update_collection | Update collection properties | | delete_collection | Delete a collection | | hard_delete_collection | Permanently delete a collection in Metabase (cannot be undone) | | get_root_dashboard_question_candidates | Get dashboard question candidates from the root collection in Metabase | | get_collection_dashboard_question_candidates | Get dashboard question candidates from a collection in Metabase | | move_root_dashboard_question_candidates | Move dashboard question candidates from the root collection in Metabase | | move_collection_dashboard_question_candidates | Move dashboard question candidates from a collection in Metabase |

Table Tools (14)

| Tool | Description | |------|-------------| | list_all_tables | List all tables across all databases in Metabase | | get_table | Get table details by ID | | get_table_metadata | Get table metadata including fields | | update_table | Update table properties | | bulk_update_tables | Bulk update multiple tables in Metabase | | resync_table_fields | Resync field metadata for a table | | get_table_foreign_keys | Get foreign keys for a table in Metabase | | sync_table_schema | Sync the schema for a table in Metabase | | discard_table_values | Discard cached field values for a table in Metabase | | get_table_related | Get related tables and cards for a table in Metabase | | update_table_fields_order | Reorder fields in a table in Metabase | | get_virtual_card_table_fks | Get foreign keys for a virtual card-based table in Metabase | | get_virtual_card_table_query_metadata | Get query metadata for a virtual card-based table in Metabase | | get_table_data | Get data rows from a table in Metabase |

Field Tools (13)

| Tool | Description | |------|-------------| | get_field | Get field details by ID | | update_field | Update field properties | | get_field_values | Get cached values for a field | | update_field_values | Update cached field values | | rescan_field_values | Trigger a rescan of field values | | discard_field_values | Discard cached field values | | get_field_related | Get related fields and tables | | search_field_values | Search for values within a field | | create_field_dimension | Create a dimension (remapping) for a field in Metabase | | delete_field_dimension | Delete a dimension (remapping) from a field in Metabase | | get_field_remapping | Get remapping between two fields in Metabase | | get_field_summary | Get summary statistics for a field in Metabase | | get_field_table_ids | Get unique Table IDs for a list of Field IDs in Metabase |

Search Tools (5)

| Tool | Description | |------|-------------| | search | Full-text search across Metabase content | | get_search_weights | Get search result ranking weights in Metabase | | update_search_weights | Update search result ranking weights in Metabase | | force_reindex_search | Force a full reindex of the search index in Metabase | | reinit_search | Re-initialize the search index in Metabase |

Dataset/Query Tools (8)

| Tool | Description | |------|-------------| | execute_query | Execute an ad-hoc query | | export_query | Export query results in various formats | | execute_query_pivot | Execute a pivot query against a Metabase database | | get_native_query | Convert an MBQL query to native SQL without executing it | | get_dataset_param_values | Get values for a dataset parameter in Metabase | | search_dataset_param_values | Search values for a dataset parameter in Metabase | | get_dataset_param_remapping | Get remapping for a dataset parameter in Metabase | | get_dataset_query_metadata | Get metadata for a dataset query in Metabase |

User Tools (11)

| Tool | Description | |------|-------------| | list_users | List all users with optional filtering | | get_user | Get user details by ID | | create_user | Create a new user account | | update_user | Update user properties | | delete_user | Deactivate a user account | | get_current_user | Get the currently authenticated user | | update_user_password | Update a user's password | | reactivate_user | Reactivate a deactivated user | | get_user_recipients | Get a list of users who are eligible to receive notifications and alerts in Metabase | | dismiss_user_modal | Dismiss a modal for a user in Metabase | | create_user_password_reset_url | Generate a password reset URL for a user in Metabase (admin only) |

Permissions Tools (16)

| Tool | Description | |------|-------------| | list_permission_groups | List all permission groups | | get_permission_group | Get permission group details by ID | | create_permission_group | Create a new

Source & license

This open-source MCP server is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.