Agent-first Metabase MCP server with a pluggable, table-scoped query-guardrail layer.
Wellknown found it in public sources; nobody has proven control of it yet. Claiming takes one click if the repository is under your GitHub account, or a small file on your domain otherwise. Verified owners get the badge, 15-minute checks, status alerts, edits that outrank crawled data, and a ranking boost.
Agents can do it too: POST https://wellknown.network/api/v1/claims with {"agent":"metabase-mcp-pro","method":"well_known_file"} — machine-readable steps at claim.json, guide at /docs/claim.
Everything here was measured by our prober or read from a registry. Nothing is self-reported.
Attributed to the source that supplied each field. Treated as claims, not facts.
# metabase-mcp-pro An agent-first **Model Context Protocol (MCP) server for Metabase** with a pluggable, table-scoped **query-guardrail layer**. It combines the lean ergonomics of Metabase's first-party MCP (guided MBQL builder, URI-addressed reads, pagination) with the full reach of the Metabase REST API (models, metrics, dashboards, admin — plus a generic API passthrough so nothing is out of reach), and adds the layer neither has: query guardrails that are **safe-by-default, explicitly overridable, and never silently filter**, plus an output sanitizer that strips connection secrets and trims token bloat. ## White-label No embedded brand, no environment defaults, no shipped table registry. Everything organization-specific (which tables are CDC, which need crawler exclusion, the vetted-query catalog) is supplied at runtime via env / config. ## Configure | Env var | Purpose | |---|---| | `METABASE_URL` | Metabase base URL (required; no default) | | `METABASE_API_KEY` | API key, sent as `x-api-key` | | `METABASE_MCP_GUARDRAILS_CONFIG` | path to a `guardrails.yaml` (see [`examples/`](./examples)) | | `METABASE_MCP_READONLY` | `1` to hard-disable all writes | ## Run ```bash uvx metabase-mcp-pro ``` Requires only `uv` — it installs the package from PyPI on demand. ## Use it in another project It's white-label, so any project reuses it by adding one MCP-server entry and supplying its **own** config. Drop this into a plugin manifest's `mcpServers` (or `~/.claude.json`): ```jsonc "metabase": { "command": "uvx", "args": ["metabase-mcp-pro"], "env": { "METABASE_URL": "https://metabase.your-org.com", "METABASE_API_KEY": "...", "METABASE_MCP_GUARDRAILS_CONFIG": "/path/to/your-project/guardrails.yaml" } } ``` Each consumer brings its own `METABASE_URL`, API key, and `guardrails.yaml` (start from [`examples/guardrails.example.yaml`](./examples/guardrails.example.yaml)) — nothing project-specific is baked into the package.
Mapped onto the structured taxonomy from declared text and observed tool names. Confidence shown for derived entries.
Every source is kept verbatim. Field changes are logged as events.