Metabase
About
Official Metabase MCP server for searching data, building queries on the semantic layer, and visualizing results through MCP clients.
Details
- Author
- metabase
- Categories
- Cloud Service, Other, File Management, Infrastructure
Jump to
Setup
Install Metabase in your MCP client (Claude Desktop, Cursor, Windsurf, and others).
Repository: https://github.com/metabase/metabase
Follow the installation instructions in the repository README, then restart your MCP client.
- Search for Metabase content— Find tables, metrics, cards, dashboards, and collections using keywords or natural-language queries withsearch.
- Navigate and inspect entities— Read metadata for databases, schemas, tables, questions, dashboards, and metrics viaread_resourcewithmetabase://URIs.
- Build and run queries— Construct a query against a table or metric withconstruct_query, then execute it viaexecute_queryto get results and column metadata.
- Run raw SQL— Execute a native SQL query against a database usingexecute_sql(requires native-query permission and the instance setting to be enabled).
- Save and update questions— Create or modify saved questions (cards) from constructed queries usingcreate_questionandupdate_question, including moving or archiving them.
- Create and manage dashboards— Build new dashboards with auto-positioned saved questions viacreate_dashboard, and update their metadata or archive them withupdate_dashboard.
Metabase includes a built-inModel Context Protocol (MCP)server that lets AI clients connect directly to a Metabase instance. It uses theStreamable HTTP transportand builds on Metabase'sAgent APIto expose tools for searching, navigating, querying, visualizing, and creating/updating content - all scoped to the connecting user's permissions.
https://{your-metabase.example.com}/api/metabase-mcp
The legacy/api/mcppath still works as an alias for existing clients, but/api/metabase-mcpis the canonical URL to advertise.
Point any MCP-compatible client at the/api/metabase-mcpendpoint. For example, with Claude Code:
claude mcp add metabase https://{your-metabase.example.com}/api/metabase-mcp --transport streamable-http
For Claude Desktop, create acustom connectorusing the same URL.
For Cursor, openSettings > MCPand add a new server with the type set tostreamable-httpand the URL:
https://{your-metabase.example.com}/api/metabase-mcp
MCP clients authenticate viaOAuth 2.0. Metabase runs its own embedded OAuth server - no external provider is needed.
- The client discovers Metabase's OAuth endpoints.
- The client registers itself with Metabase.
- The user is redirected to Metabase to log in and approve the connection.
- The client receives an access token scoped to the user's Metabase permissions.
Access tokens are scoped to limit what tools a client can use:
Wildcard patterns (e.g.agent:*) match any scope with that prefix.
OAuth protected resource metadata is available at:
/.well-known/oauth-protected-resource/api/metabase-mcp
By default our consent screen grants access to all scopes without the opportunity to customize.
The MCP server exposes these tools, dynamically generated from the Agent API endpoint metadata:
Query results are limited to 200 rows per request. When more rows are available, the response includes acontinuation_tokenthat can be passed back to fetch the next page.
read_resourcelist responses cap at 25 items withtruncated/totalsignals; drill into specific URIs to see more, or refine viasearch.
The server exposes MCPresourcesso clients can fetch supplementary content by URI without inflating tool descriptions.
Theread_resourcetool(above) uses a separate URI scheme to navigate Metabase entities (metabase://question/{id},metabase://database/{id}/tables, etc.). The two URI namespaces are independent:metabase://docs/...is for static reference content fetched via MCPresources/read, whilemetabase://table/...and friends are entity URIs passed to theread_resourcetool.
Requests can be sent individually or as a JSON-RPC batch. The server responds with JSON or SSE depending on theAcceptheader.
The implementation lives in these files:
-
api.clj- The HTTP handler. Parses JSON-RPC requests, validates authentication and session headers, enforces origin checks (DNS rebinding protection), and dispatches to the appropriate method. Supports both JSON and SSE response formats.
tools.clj- Tool dispatch and manifest generation. Builds the tool list from Agent API endpoint metadata, checks scopes, and routes tool calls through synthetic Agent API requests.
resources.clj- MCP resource registry and handlers. Holds documentation resources (like theconstruct_queryreference) keyed by URI, with scope-based access control onresources/listandresources/read.
scope.clj- Scope matching logic. Supports exact matches, wildcard patterns, and the::unrestrictedsentinel for session-based auth.
MCP client -> POST /api/metabase-mcp (JSON-RPC) -> Origin + session validation -> Auth: OAuth bearer token or browser session -> Scope check against requested tool -> Synthetic request to Agent API endpoint -> Response materialized as MCP content -> JSON or SSE back to client
- MCP user docs
- Agent API source
- Model Context Protocol specification
Official Model Context Protocol (MCP) server for esa.io - STDIO transport version.
An open-source MCP server providing real-time observability for IBM Storage Insights assets.
Agent-operable cloud platform: database, AI, functions, containers, storage and auth over one remote MCP endpoint with 50 tools.
The agent-native cloud: database, functions, AI, storage, computers. 55 tools, one API key.
An MCP (Model Context Protocol) server that enables LLMs to interact with VAST Data storage APIs. This server exposes VAST Data management endpoints as tools for comprehensive storage infrastructure management and automation.
Interact with the Appwrite API to manage databases, users, storage, and more. Requires configuration via environment variables.
Connects Large Language Models to Firebase Firestore and Storage via the Model Context Protocol.
Proxmox VE MCP server for VMs, LXCs, snapshots, backups, storage, and cluster operations.
A self-hostable MCP server for Cloudflare Workers with OAuth login support, using Cloudflare KV for storage.
A remote MCP server deployable on Cloudflare Workers with OAuth login support, using Cloudflare KV for data storage.
Sign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.




