Analytics

Looker Webhook MCP Server

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

Paste your MCPBundles URL into Looker scheduled webhook delivery and ask in chat for the latest Look or dashboard export, recent history, or a specific stored file.

Best forAnalyticsBI EngineersData Operations

Try this workflow

Latest Look export

From the latest Looker delivery, read export.json scheduled_plan title and type, then summarize CSV column headers and the first row from export.rows or attachment.data.

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 Looker Webhook

Built for

Analytics Teams, BI Engineers, Data Operations

Example workflows

Latest Look export

Interprets stored schedule metadata and tabular content.

Try this

From the latest Looker delivery, read export.json scheduled_plan title and type, then summarize CSV column headers and the first row from export.rows or attachment.data.

Compare recent schedules

History scan tied to stored schedule metadata.

Try this

List recent Looker deliveries and compare source.captured_at, filename, and scheduled_plan.title across the last three captures.

Context to know first

How do I connect Looker deliveries to MCPBundles?

Save a connection on MCPBundles, copy the hosted ingest URL from the credential panel, and paste it into Looker as the webhook destination when scheduling a Look or dashboard. 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 Looker sends on the configured schedule; agents query what already landed.

AI Skill
SKILL.md

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

looker-webhook

Looker scheduled plans POST export deliveries when a Look or dashboard schedule fires upstream. Each capture reflects whichever Look, dashboard, format, filters, and cadence were configured — tabular columns are not fixed across schedules. Tools read what already landed; there is no pull API and no way to trigger a new send from here.

What upstream deliveries look like

Looker webhook destinations typically POST JSON (application/json) with export bytes embedded in the body:

  • Text formats (CSV, TXT, HTML, JSON) — file content lives as a plain string under attachment.data. CSV is the usual choice for tabular KPI questions; headers appear in the first line of that string.
  • Binary formats (PDF, XLSX, PNG) — the same attachment.data key holds base64-encoded bytes; attachment.mimetype often ends with ;base64 and attachment.extension names the file type. PDF and PNG are common for dashboard schedules; XLSX for Looks.
  • Inline JSON — when the upstream format is inline JSON, the envelope differs slightly: row data may be JSON-escaped inside attachment.data with extra properties describing the query operation rather than a traditional file attachment.
  • Dashboard CSV zip — dashboard schedules can deliver a zip of multiple tile CSVs; when the zip arrives as base64 in attachment.data, storage may unpack the first CSV inside for tabular preview when bytes are available.
  • Schedule metadata — sibling object scheduled_plan carries the Look or dashboard title, a link back to the content in Looker, scheduled_plan_id, and type (look vs dashboard). Use it to disambiguate when one connection receives several schedules.

Less common but supported by ingest wiring: multipart file uploads or a compact link JSON wrapper when an integration posts a download URL instead of inline bytes.

First moves

  1. Latest report — default for "what did the scheduled Look say" or dashboard export questions.
  2. Report freshness — check source.captured_at and source.filename before quoting figures; compare to scheduled_plan.title in export.json when present.
  3. Recent reports — compare runs, spot duplicate filenames, or find a delivery from a specific schedule date.
  4. One report by id — after listing, when the user names a particular run or schedule.

Response shape

  • source — capture time, filename, format, connection purpose.
  • export.json — parsed webhook body when stored as JSON; inspect scheduled_plan for schedule name and Look vs dashboard type, and attachment for format hints (extension, mimetype).
  • export.rows — parsed CSV preview when storage holds raw or unpacked CSV bytes; may truncate with rows_truncated. When the upstream only embedded CSV text inside export.json.attachment.data, read that string directly — rows may not be pre-parsed.
  • export.text — full raw body when rows truncate, the delivery is non-tabular, or you need the complete CSV string from a JSON envelope.

For PDF, PNG, and XLSX deliveries, expect limited tabular preview — prefer export.text, note binary or base64 content, or summarize from scheduled_plan.title when the user asked about a visual export.

Operational order

  1. Start with the latest report — do not guess a report id.
  2. If captured_at is older than expected, say so — Looker sends on the schedule cadence configured upstream (minute, hour, day, week, month, or custom).
  3. List recent reports only for history, duplicate suspicion, or explicit compare-by-date asks.
  4. Read ## This connection in the skill supplement for Look- or dashboard-specific column notes.

Gotchas

  • Read-only — cannot run "Send Now", edit a scheduled plan, or change Looker delivery settings from here.
  • Variable columns — do not assume fixed KPI names; read CSV headers from export.rows, export.text, or export.json.attachment.data depending on how the capture landed.
  • JSON envelope vs file — many Looker webhooks store one JSON object (payload.json) rather than a standalone .csv file; tabular data may require reading attachment.data inside export.json.
  • Base64 binary — PDF, XLSX, and PNG attachment.data values are encoded; decoding happens at read time in chat, not as pre-built export.rows.
  • Dashboard zip vs single Look CSV — dashboard schedules may bundle several tile CSVs; filename and preview reflect what was unpacked first when a zip was present.
  • Inline JSON shape — row layout differs from CSV; inspect export.json keys before quoting metric names.
  • Filters and timezone — upstream schedules can apply Look filters and query timezones; two deliveries with the same scheduled_plan.title may differ if filters changed upstream.
  • Each delivery is one report — latest is the newest capture, not a merged history across schedules.

Tools in this Server (4)

Looker Wh Latest

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

Looker Wh List

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

Looker Wh Report

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

Looker 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 Looker deliveries to MCPBundles?

Save a connection on MCPBundles, copy the hosted ingest URL from the credential panel, and paste it into Looker as the webhook destination when scheduling a Look or dashboard. 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 Looker sends on the configured schedule; agents query what already landed.

How do I connect Looker 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/looker-webhook. Authentication is handled automatically.

How many tools does Looker Webhook provide?

Looker 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 Looker Webhook require?

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

Setup Instructions

Connect Looker Webhook to any MCP client in minutes

MCP URL
https://mcp.mcpbundles.com/bundle/looker-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 Looker Webhook and paste the MCP URL into Remote MCP server URL.
  4. Click Add. Looker Webhook will appear under Not connected — select it and click Connect to complete OAuth.
Name: Looker Webhook
Remote MCP server URL: https://mcp.mcpbundles.com/bundle/looker-webhook
Authentication: OAuth

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

Ready to use Looker Webhook?

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

Looker Webhook MCP — Read Scheduled Exports in Chat