Analytics

Metabase Webhook MCP Server

Connect your account, then chat with AI to run tools.

Send Metabase alert webhooks to MCPBundles and inspect the latest payload in chat.

Best forAnalyticsDataOperations

Try this workflow

Alert numbers

What question fired in the last alert and what values do data.raw_data cols and rows show?

Managed
4 tools
Agent guide included

Opens MCPBundles Studio with this server selected. After sign-in, chat and run tools from the same thread.

Browse all tools

What you can do with Metabase Webhook

Built for

Analytics Teams, Data Teams, Operations

Example workflows

Alert numbers

Reads Metabase alert JSON and tabular results from export.json.

Try this

What question fired in the last alert and what values do data.raw_data cols and rows show?

Recent alert fires

Compares stored alert payloads across history.

Try this

List recent alert deliveries and summarize question_name, sent_at, and the first raw_data row for each.

Context to know first

How do I connect Metabase deliveries to MCPBundles?

Save a connection on MCPBundles, copy the hosted ingest URL from the credential panel, and paste it into Metabase where alert webhook destinations are configured. Your agent reads stored deliveries — latest, history, and content — in chat.

Can an agent trigger a new delivery?

No. Ingest is read-only. Data arrives when the upstream system sends it; agents query what already landed.

AI Skill
SKILL.md

Domain knowledge for Metabase Webhook — workflow patterns, data models, and gotchas for your AI agent.

Metabase Webhook

Each stored delivery is one Metabase alert webhook POST — JSON only, fired when a saved question's alert condition is met (or when someone sends a test). Dashboard subscriptions do not use this payload shape. Tools read what already landed; nothing here triggers a new alert send.

Stored payload shape (export.json)

Top level:

  • type — always "alert" for these deliveries.
  • alert_id — numeric alert id; null on test sends (do not treat null as a production alert).
  • alert_creator_id / alert_creator_name — who configured the alert.
  • sent_at — ISO timestamp when Metabase sent the webhook (upstream event time; compare to source.captured_at for ingest delay).
  • data — question results and metadata:
    • type"question".
    • question_id, question_name — which saved question fired; use to disambiguate when one connection receives multiple alerts.
    • question_url — link to the question in the sender's Metabase instance (instance-specific; do not assume a fixed host).
    • raw_data — tabular results as Metabase's table view:
      • cols — column name strings.
      • rows — array of row arrays; index i in each row aligns with cols[i].
    • visualization — chart as a data:image/png;base64,... data URI; often very large. Prefer raw_data for numbers and trends unless the user explicitly wants the chart image.

Column names and row values reflect the underlying question — they are not a fixed schema across alerts.

First moves

  1. Latest report — default for "what did the alert say" or "did anything fire".
  2. Inspect export.json — read data.question_name, sent_at, and data.raw_data before quoting figures.
  3. Recent reports — list when comparing repeated fires, test vs live (alert_id null vs set), or multiple questions on one connection.
  4. One report by id — after listing, when the user names a specific delivery or time.

Response shape

  • export.json — parsed alert object (structure above).
  • export.text — full raw JSON when previews truncate or the body is oversized.
  • source.captured_at — when the POST was stored here (not the same as sent_at).

Operational order

  1. Start with the latest report — do not guess a report id.
  2. If sent_at or source.captured_at is older than expected, say so — alerts run on Metabase's schedule (minute, hourly, daily, etc.).
  3. List recent reports only for history, duplicate suspicion, or explicit compare-by-date asks.
  4. Read ## This connection in the skill supplement for which questions or KPIs this ingest tracks.

Gotchas

  • Read-only — cannot re-run the question, acknowledge the alert, or change Metabase alert settings from here.
  • Test vs livealert_id: null usually means a test payload; confirm before treating numbers as production signal.
  • Huge visualization — base64 PNG can dominate payload size; summarize from raw_data unless the user needs the image.
  • Alerts only — if the user expects dashboard subscription exports, those are a different Metabase feature and may never arrive on this connection.
  • Each POST is one report — latest is the newest capture, not a merged history across alerts.

Tools in this Server (4)

Metabase Wh Latest

Return the most recently stored report — tabular rows, raw text, or JSON depending on format. Default starting point for current report questions.

Metabase Wh List

List recent stored reports — ids, capture time, filename, and format. Follow with latest report or get report for full content.

Metabase Wh Report

Return one stored report by report_id — full content with the same source/export envelope as latest report.

Metabase Wh Status

Connection status — whether any reports have landed, when the last file arrived, filename, and stored report count. Includes the ingest URL only when ...

Frequently Asked Questions

How do I connect Metabase deliveries to MCPBundles?

Save a connection on MCPBundles, copy the hosted ingest URL from the credential panel, and paste it into Metabase where alert webhook destinations are configured. Your agent reads stored deliveries — latest, history, and content — in chat.

Can an agent trigger a new delivery?

No. Ingest is read-only. Data arrives when the upstream system sends it; agents query what already landed.

How do I connect Metabase Webhook to my AI agent?

Add the MCPBundles server URL to your MCP client configuration (Claude Desktop, Cursor, VS Code, etc.). The URL format is: https://mcp.mcpbundles.com/bundle/metabase-webhook. Authentication is handled automatically.

How many tools does Metabase Webhook provide?

Metabase Webhook provides 4 tools that can be called by AI agents, along with a SKILL.md that gives your AI agent domain knowledge about when and how to use them.

What authentication does Metabase Webhook require?

Metabase Webhook uses API Key. Metabase Webhook requires credentials. Connect via MCPBundles and authentication is handled automatically.

Setup Instructions

Connect Metabase Webhook to any MCP client in minutes

MCP URL
https://mcp.mcpbundles.com/bundle/metabase-webhook

One-click install:

The link prefills the Add custom connector dialog — you still review the values and click Add, then Connect to complete OAuth.

Or add manually

  1. Open claude.ai → Settings → Connectors.
  2. Click the + button and choose Add custom connector.
  3. Set Name to Metabase Webhook and paste the MCP URL into Remote MCP server URL.
  4. Click Add. Metabase Webhook will appear under Not connected — select it and click Connect to complete OAuth.
Name: Metabase Webhook
Remote MCP server URL: https://mcp.mcpbundles.com/bundle/metabase-webhook
Authentication: OAuth

Custom connectors at claude.ai require a paid Claude plan (Pro, Max, Team, or Enterprise).

Ready to use Metabase Webhook?

Sign in to connect your credentials and start running tools from the chat.

Metabase Webhook MCP — Read Alert Payloads in Chat