Repository navigation
Releases
Releases · Serdnaley/metabase-mcp
v0.5.0
Added
- Explorations (Metabase 0.65+, every tier, no AI provider needed):
list_exploration_dimensions,
create_exploration,get_exploration,get_exploration_query_result,list_my_explorations,
update_exploration,delete_exploration,restart_exploration_thread,cancel_exploration_thread.
create_explorationtakes metric card IDs and dimension IDs, sends each metric with its dimension
mappings (without them Metabase plans no queries), and waits for the queries to finish. - New toolset
explorations(in thequerypreset).
Changed
- API types regenerated from the Metabase 0.65 spec; CI pinned to v0.65.2.6.
v0.4.0
Breaking
- Query tools return compact output by default; pass
verbose: truefor the raw Metabase response. list_tasksmoved from theactivitytoolset todiagnostics.
Large-result safety
- Query tools (
execute_query,execute_card_query,run_metric) return a compact view by default:
columns(name, type) +rows, no column internals,results_metadataor insights.verbose: true
returns the raw Metabase response. - Row cap
METABASE_MAX_ROWS(default 500) with per-callmax_rowsandoffsetpaging; anote
says how to get the rest (next offset, or an export tool withoutput_path). - Every tool response is serialised as compact JSON and capped at
METABASE_MAX_RESPONSE_CHARS
(default 100000) with a truncation notice. - Measured on a 10 / 100 / 500-row
SELECT * FROM ORDERS: 94% / 76% / 60% fewer characters than 0.3.0.
Resources and prompts
- MCP resources:
metabase://databases,metabase://database/{id}/schema,metabase://card/{id},
metabase://dashboard/{id},metabase://collection/{id}(compact JSON summaries). - Prompts:
explore-database,build-dashboard,explain-card,audit-permissions. - Both follow the tool selection: resources need their toolset, prompts need every tool they use.
Admin tools (17 new, 178 total)
- API keys toolset:
list_api_keys,create_api_key(full key returned once),
update_api_key,regenerate_api_key,delete_api_key. - Embedding toolset:
get_embedding_status(settings, embeddable items, whether a signing key
exists, never its value),set_static_embedding,set_resource_embedding(per-parameter
enabled/locked/disabled),create_embed_url(signed iframe URL, signed locally). - Tasks & logs (
diagnostics) toolset:list_tasks(now with status/task filters, paging and
compact output; moved fromactivity),get_task,list_task_types,list_task_runs,
get_scheduler_info,get_server_logs(level/text filter, ANSI stripped),list_log_presets,
set_log_levels/reset_log_levels(temporary),get_premium_token_status. - The
adminpreset includes the three new toolsets.
Types
generated/metabase-api.d.tsregenerated from the Metabase v0.64 OpenAPI spec (the CI version;
scripts/generate-types.tsis now pinned to it,METABASE_SPECoverrides). 27as anycasts
removed where the new types cover the calls.
v0.3.0
Compatibility release for Metabase 0.60–0.64 (verified on 0.59.6 and 0.64.3.4) and a headless-first rework.
Highlights
- Fixes for Metabase 0.60+ API changes (card parameters, segments, schema-less DBs) and ~10 tools that never worked (alerts → /api/notification, dashboard subscriptions, persistence, activity, glossary, documents, EID translation, CSV upload, collection sorting).
- 161 tools (was 128): metrics, measures, transforms, exports (CSV/JSON/XLSX, dashboard PDF), notifications, get_group.
- Headless HTTP mode (
MCP_TRANSPORT=http) with bearer token; toolsets and per-tool enable/disable; readOnly/destructive hints on every tool. - Ships everywhere: npm, official MCP Registry (
io.github.Serdnaley/metabase-mcp), Claude Desktop.mcpbbundle (attached below), Dockerghcr.io/serdnaley/metabase-mcp. - MIT license, tool catalog: https://serdnaley.github.io/metabase-mcp/
Breaking: create_alert / update_alert take a new input shape (the old one never worked); notify_database removed (use sync_database_schema).
Full list: CHANGELOG.md
v0.2.0
128 MCP tools across 26 domains
Major expansion from 42 to 128 tools covering the full Metabase REST API surface.
New domains (18)
- Users & Groups (13 tools) — full lifecycle, group membership
- Permissions (4) — data and collection permission graphs
- Segments (5) — reusable named filters CRUD
- Database write/sync (6) — connections, validation, sync triggers
- Notifications (9) — alerts, dashboard subscriptions
- Revisions (2) — history and revert
- Settings (3) — instance configuration
- Glossary (5) — business term definitions
- Documents (5) — narrative analytics
- Timelines (8) — chart annotations
- Bookmarks (3), Moderation (1), EID Translation (1)
- SQL Snippets (5), Activity/Tasks (3), X-Rays (1)
- Cache (2), Model Persistence (3), CSV Upload (1)
- Action Public Links (2)
Enhanced existing tools
- Cards:
type(question/model/metric),result_metadata,enable_embedding - Tables: write ops (
update_table,update_field,rescan_field_values,discard_field_values,reorder_fields) - Collections:
get_collection_tree,personal_only+archivedfilters - Search:
archivedfilter - Segments:
table_idfilter
Testing
- 202 tests, 668 assertions across 31 test files
See CHANGELOG.md for full details.
v0.1.5
What's Changed
- feat: add public link tools, fix date_range params, improve visualization settings descriptions by @Serdnaley in #1
- chore: prepare 0.1.4 release — changelog, README updates for public link tools by @Serdnaley in #2
- chore: bump to 0.1.5 by @Serdnaley in #3
New Contributors
- @Serdnaley made their first contribution in #1
Full Changelog: v0.1.4...v0.1.5
v0.1.4
v0.1.3
v0.1.2
v0.1.1
Fixed
execute_card_querynow supports parameterized cards with template tags (e.g.fromDate,toDate). Pass values viaparameter_valuesmap.
Full changelog
See CHANGELOG.md