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
39 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
● 2mo 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 Panel → Settings → Authentication → API 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.