@easecloudio/mcp-metabase-server

中文文档
1.3.0发布于 2026/05/14MITES Module近 30 天下载 4162

MCP server for Metabase — 96 tools covering dashboards, cards, databases, tables, collections, public sharing, schema cache, and SQL-to-MBQL conversion

原始使用文档
文档目录40 节
  1. Quick Start
  2. 96 Tools Available
  3. Supported Metabase Versions
  4. Installation
  5. npx (Recommended)
  6. Global install
  7. Docker
  8. Configuration
  9. Authentication
  10. Tool Filtering (TOOL_MODE)
  11. Claude Desktop Integration
  12. Available Tools
  13. Core CRUD
  14. Card Layout
  15. Public Sharing & Embedding
  16. Revision, Audit & Discovery
  17. Core CRUD
  18. Execution & Export
  19. Parameters
  20. Metadata & Discovery
  21. Public Sharing & Embedding
  22. Core CRUD
  23. Querying
  24. Schema & Sync
  25. Diagnostics
  26. Metadata
  27. Card Virtual Tables
  28. Management
  29. CSV Upload (Metabase-managed tables)
  30. Collections
  31. Users
  32. Permissions
  33. Search
  34. MCP Resources
  35. Development
  36. Debugging
  37. About EaseCloud
  38. Bug Reports & Issues
  39. Contributing
  40. License

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 @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

Dashboard Management (27 tools)

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
Card / Question Management (21 tools)

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
Database Management (16 tools)

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
Table Management (17 tools)

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
Collections, Users & Search (13 tools)

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
ToolDescription
search_contentSearch across all Metabase content
Schema Cache — SQL to MBQL (2 tools)

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

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.

📧 [email protected] 🌐 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.

版本与发布记录

@easecloudio/mcp-metabase-server 共发布 9 个版本,首次发布于 2025/07/20;过去 12 个月发布了 6 个版本。

版本发布日期距今
1.3.0latest2026/05/146 个月前
1.2.02026/05/146 个月前
1.0.52026/04/216 个月前
1.0.42026/04/117 个月前
1.1.02026/04/117 个月前
1.0.32026/03/287 个月前

关于 @easecloudio/mcp-metabase-server 的常见问题

@easecloudio/mcp-metabase-server 是什么?

MCP server for Metabase — 96 tools covering dashboards, cards, databases, tables, collections, public sharing, schema cache, and SQL-to-MBQL conversion

如何安装 @easecloudio/mcp-metabase-server?

在项目目录运行 npm install @easecloudio/mcp-metabase-server,或使用 pnpm add / yarn add / bun add。它还提供命令行工具 mcp-metabase-server,可以用 npx mcp-metabase-server 直接运行。

@easecloudio/mcp-metabase-server 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/easecloudio__mcp-metabase-server 是否存在。

@easecloudio/mcp-metabase-server 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@easecloudio/mcp-metabase-server 可以商用吗?

@easecloudio/mcp-metabase-server 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@easecloudio/mcp-metabase-server 的下载量有多少?

根据 npm 官方下载统计,@easecloudio/mcp-metabase-server 在 2026/10/13 – 2026/11/11 这 30 天内被下载 4,162 次,日均约 139 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@easecloudio/mcp-metabase-server 还在维护吗?

最新版本 1.3.0 发布于 2026/05/14(6 个月前);至今共发布 9 个版本,其中过去 12 个月发布了 6 个;首次发布于 2025/07/20。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。