Prototipo · Versión preliminar: todos los servidores del registro oficial, sincronizados cada 30 minutos. Las reseñas y las cuentas llegarán en una etapa posterior.
PopNx MCPServidores MCP para quienes usan IA · explicados con palabras sencillas

Metabase MCP (headless)

de Serdnaleyversión 0.5.0i★ –iSe ejecuta en tu computadora
Nombre en el registroio.github.Serdnaley/metabase-mcp

Instalar

Resumen

Descripción del creador (original en inglés)

Headless Metabase MCP: API-key auth, no OAuth. 178 tools, toolsets, stdio or HTTP, all tiers.

Los tres pilares de PopNx MCP

Estos tres nunca se combinan en una sola puntuación: las opiniones, las mediciones y la popularidad son cosas distintas.

Qué puedes hacer con él

Todavía no escribimos un resumen sencillo para este. Abajo están los datos que leímos del registro.

  • Conexión: Se ejecuta en tu computadora
  • Transporte: stdio
  • Categoría: Otros
  • Debes completar: METABASE_URL, METABASE_API_KEY, METABASE_PASSWORD, METABASE_CUSTOM_HEADERS

Instalación

Elige la app de IA que usas y copia la configuración.

Antes de instalar

  • Revisiones básicas: 1 de 1 superadas
  • Se ejecuta en tu computadora con los permisos de tu usuario (archivos, red, apps).
  • Debes completar tú: METABASE_URL, METABASE_API_KEY, METABASE_EMAIL, METABASE_PASSWORD, METABASE_READ_ONLY_MODE, METABASE_TOOLSETS, METABASE_TOOLS_ENABLE, METABASE_TOOLS_DISABLE, METABASE_CUSTOM_HEADERS

Los valores marcados como secretos son llaves de tu cuenta. Nunca los compartas ni los pegues en un chat.

Necesitas

  • npmNode.js instalado (para el comando npx)

¿Qué app usas?

Elige tu app arriba. La recordamos, así que la próxima vez el botón dirá “Instalar en …”.

Abre Claude Desktop → Settings → Developer → Edit Config y pega esto en claude_desktop_config.json

{
  "mcpServers": {
    "metabase": {
      "command": "npx",
      "args": [
        "-y",
        "@serdnaley/metabase-mcp"
      ],
      "env": {
        "METABASE_URL": "your-value",
        "METABASE_API_KEY": "your-value",
        "METABASE_EMAIL": "your-value",
        "METABASE_PASSWORD": "your-value",
        "METABASE_READ_ONLY_MODE": "your-value",
        "METABASE_TOOLSETS": "your-value",
        "METABASE_TOOLS_ENABLE": "your-value",
        "METABASE_TOOLS_DISABLE": "your-value",
        "METABASE_CUSTOM_HEADERS": "your-value"
      }
    }
  }
}

Ejecuta esto en tu terminal

claude mcp add metabase --env METABASE_URL=your-value --env METABASE_API_KEY=your-value --env METABASE_EMAIL=your-value --env METABASE_PASSWORD=your-value --env METABASE_READ_ONLY_MODE=your-value --env METABASE_TOOLSETS=your-value --env METABASE_TOOLS_ENABLE=your-value --env METABASE_TOOLS_DISABLE=your-value --env METABASE_CUSTOM_HEADERS=your-value -- npx -y @serdnaley/metabase-mcp

Completa los valores vacíos antes de ejecutarlo.

Abrir en Cursor

O copia la configuración tú

Pégalo en .cursor/mcp.json de tu proyecto, o en ~/.cursor/mcp.json

{
  "mcpServers": {
    "metabase": {
      "command": "npx",
      "args": [
        "-y",
        "@serdnaley/metabase-mcp"
      ],
      "env": {
        "METABASE_URL": "your-value",
        "METABASE_API_KEY": "your-value",
        "METABASE_EMAIL": "your-value",
        "METABASE_PASSWORD": "your-value",
        "METABASE_READ_ONLY_MODE": "your-value",
        "METABASE_TOOLSETS": "your-value",
        "METABASE_TOOLS_ENABLE": "your-value",
        "METABASE_TOOLS_DISABLE": "your-value",
        "METABASE_CUSTOM_HEADERS": "your-value"
      }
    }
  }
}

Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.

Abrir en VS Code

O copia la configuración tú

Pégalo en .vscode/mcp.json de tu proyecto

{
  "servers": {
    "metabase": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@serdnaley/metabase-mcp"
      ],
      "env": {
        "METABASE_URL": "your-value",
        "METABASE_API_KEY": "your-value",
        "METABASE_EMAIL": "your-value",
        "METABASE_PASSWORD": "your-value",
        "METABASE_READ_ONLY_MODE": "your-value",
        "METABASE_TOOLSETS": "your-value",
        "METABASE_TOOLS_ENABLE": "your-value",
        "METABASE_TOOLS_DISABLE": "your-value",
        "METABASE_CUSTOM_HEADERS": "your-value"
      }
    }
  }
}

Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.

Este se ejecuta en tu computadora, y ChatGPT solo puede conectarse a servidores en internet. Elige otra app.

Tu elección se guarda en una cookie en este dispositivo; no necesitas cuenta.

Valores que debes completar

  • METABASE_URL obligatorio env
    Metabase base URL, e.g. https://metabase.example.com
  • METABASE_API_KEY secreto env
    Metabase API key (or set METABASE_EMAIL + METABASE_PASSWORD)
  • METABASE_EMAIL env
    Login email (alternative to an API key)
  • METABASE_PASSWORD secreto env
    Login password (alternative to an API key)
  • METABASE_READ_ONLY_MODE env
    true hides all write tools
  • METABASE_TOOLSETS env
    Comma list of toolsets or presets (all, query, content, admin)
  • METABASE_TOOLS_ENABLE env
    Extra tools to enable (names or globs)
  • METABASE_TOOLS_DISABLE env
    Tools to disable (names or globs); always wins
  • METABASE_CUSTOM_HEADERS secreto env
    Extra headers for every Metabase request (e.g. Cloudflare Access)

Esta configuración se genera a partir de la ficha del creador en el registro. Si el README dice otra cosa, sigue el README.

Qué puede hacer

Se ejecuta en tu computadora; la lista de herramientas aparece en tu app de IA después de instalarlo.

Revisiones básicasi

Revisamos información que cualquiera puede ver; no hemos leído el código. Las revisiones que no aplican no se cuentan. · Revisado el 6 nov 2026

  • ✓ Superada

    El creador coincide con el repo

    El nombre en el registro se verificó con la cuenta de GitHub Serdnaley, dueña del repo

  • … Aún sin revisar

    Sigue en mantenimiento

    Todavía no hemos leído este repo en GitHub

  • … Aún sin revisar

    Tiene licencia

    Todavía no hemos leído este repo en GitHub

  • – No aplica

    El endpoint responde

    Este se ejecuta en tu computadora; no hay endpoint en internet

  • – No aplica

    Inicio de sesión con OAuth

    Se ejecuta en tu computadora y usa ajustes locales en su lugar

  • … Aún sin revisar

    Sin instrucciones ocultas en las descripciones de herramientas

    Se ejecuta en tu computadora; solo podemos leer listas de herramientas de endpoints en internet

Comparado con otros en Otrosi

  • Más estrellas que el 0% de los otros 32484 servidores de esta categoría
  • Publicado en el registro más recientemente que el 91% de los otros 32484 servidores de esta categoría
  • Revisiones básicas iguales o mejores que el 100% de los otros 32484 servidores de esta categoría

Comparado con todos los servidores activos de esta categoría en el registro. Las estrellas solo cuentan cuando quien lo publica es dueño del repo.

Preguntas frecuentes

¿Es seguro Metabase MCP (headless)?

Superó 1 de 1 revisiones básicas aplicables. No hemos leído el código. Antes de agregar una clave o un token, revisa qué acceso pide el servidor y usa una clave que tenga solo los permisos que necesitas.

¿Qué claves o códigos necesita?

Debes completar: METABASE_URL, METABASE_API_KEY, METABASE_PASSWORD, METABASE_CUSTOM_HEADERS

¿Se ejecuta en mi computadora o en la nube?

Se ejecuta en tu computadora. Tu app de IA lo inicia cuando hace falta, y los datos no pasan por los servidores del creador (a menos que el propio servidor llame a un servicio en línea).

¿Sigue en mantenimiento?

El repo de GitHub cambió por última vez –, y la última versión (0.5.0) llegó al registro hace 3 días.

¿Qué apps pueden usarlo?

Las apps compatibles con MCP, como Claude Desktop, Claude Code, Cursor y VS Code. También necesitas Node.js en tu computadora.

¿Qué puedo usar en su lugar?

En la misma categoría: Spec Driven Development, Remote Desktop Commander, Recta

Alternativas

Servidores de la misma categoría hechos por otros creadores, ordenados por estrellas.

Cómo leer una tarjeta:★ Estrellas de GitHubiTres pilares: reseñas · revisiones · usoiActualizado = fecha en que se publicó la última versión en el registroi

Spec Driven Development

de formulahendry

MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.

Se ejecuta en tu computadora★ 440MITActualizado hace 14 meses
Instalar

Remote Desktop Commander

de desktop-commander

Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.

Se ejecuta en la nube★ 211Actualizado ayer
Instalar

Recta

de RectaBuild

Cheaper cross-chain stablecoin routes for AI agents; 5 % of the verified saving, nothing if none.

Computadora o nubeActualizado hoy
Instalar

README del creador

Abrir el README

Copiado tal cual del repo del creador. PopNx MCP no lo ha revisado ni lo respalda. Se quitaron HTML, imágenes y scripts. Los enlaces llevan fuera de este sitio.

@serdnaley/metabase-mcp

The headless MCP server for Metabase. Plug Metabase into any AI agent, app, CI job or server with a plain API key: no OAuth flow, no browser, no admin switch to flip.

  • Headless auth. A Metabase API key (or email/password) is all it needs. That works where an interactive OAuth login can't: servers, CI, containers, your own app or agent. Metabase's built-in MCP is documented as OAuth-only and needs an admin to enable it on 0.60+.
  • Runs locally or as a service. stdio for desktop clients, or Streamable HTTP with a bearer token for shared and server deployments. Metabase credentials stay on the server.
  • Full coverage. 187 tools for querying and for running Metabase: dashboards, questions, collections, users, groups, permissions, databases, settings, alerts, transforms, exports and more.
  • Only the tools you need. Toolsets and per-tool enable/disable keep the model's context small. Every tool carries read-only/destructive hints, so clients can auto-approve reads.
  • Any Metabase. Works with Metabase OSS (free) and paid editions, tested against 0.59 and 0.64. Paid-only features (caching, model persistence, moderation) work when your instance has them; CI covers the free edition.

How it compares with Metabase's built-in MCP and other Metabase MCP servers: docs/comparison.md. Full tool catalog: serdnaley.github.io/metabase-mcp.

Features

  • 187 MCP tools across 34 toolsets: search, databases, tables, collections, cards, dashboards, actions, dataset, users, groups, permissions, segments, revisions, settings, alerts, subscriptions, glossary, documents, timelines, bookmarks, moderation, snippets, x-rays, cache, persistence, uploads, metrics, measures, transforms, exports, API keys, embedding, tasks & logs, explorations
  • Toolsets: load only what you need (METABASE_TOOLSETS=query), add or drop single tools with globs
  • Tool annotations: readOnlyHint / destructiveHint / idempotentHint on every tool
  • stdio or HTTP: Streamable HTTP with bearer auth for shared deployments
  • Read-only mode: hide every write tool with one env var
  • Large-result safety: compact query results, row and response-size caps, paging
  • Resources & prompts: browse databases, cards, dashboards and collections; ready-made workflows
  • Admin automation: users, groups, permissions, settings, database connections, transforms
  • Type-safe: HTTP client generated from Metabase's OpenAPI spec
  • Zero config: runs via npx, no installation needed

Installation

Claude Desktop (one-click bundle)

Download metabase-mcp-X.Y.Z.mcpb from the latest release and open it: Claude Desktop shows a form for the Metabase URL and API key. No Node.js setup or JSON editing.

Claude Desktop (JSON config)

Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):

{

"mcpServers": { "metabase": { "command": "npx", "args": ["-y", "@serdnaley/metabase-mcp"], "env": { "METABASE_URL": "https://your-metabase.example.com", "METABASE_API_KEY": "mb_xxx" } } } }

Restart Claude Desktop after saving.

Claude Code (CLI)

claude mcp add metabase \

--env METABASE_URL=https://your-metabase.example.com \ --env METABASE_API_KEY=mb_xxx \ -- npx -y @serdnaley/metabase-mcp

Or add to .claude/mcp.json:

{

"mcpServers": { "metabase": { "type": "stdio", "command": "npx", "args": ["-y", "@serdnaley/metabase-mcp"], "env": { "METABASE_URL": "https://your-metabase.example.com", "METABASE_API_KEY": "mb_xxx" } } } }

Cursor

Add to ~/.cursor/mcp.json (global) or .cursor/mcp.json (project):

{

"mcpServers": { "metabase": { "command": "npx", "args": ["-y", "@serdnaley/metabase-mcp"], "env": { "METABASE_URL": "https://your-metabase.example.com", "METABASE_API_KEY": "mb_xxx" } } } }

Restart Cursor after saving.

Windsurf

Add to ~/.codeium/windsurf/mcp_config.json:

{

"mcpServers": { "metabase": { "command": "npx", "args": ["-y", "@serdnaley/metabase-mcp"], "env": { "METABASE_URL": "https://your-metabase.example.com", "METABASE_API_KEY": "mb_xxx" } } } }

Cline (VS Code)

Add to your Cline MCP settings (accessible via the MCP Servers icon):

{

"mcpServers": { "metabase": { "command": "npx", "args": ["-y", "@serdnaley/metabase-mcp"], "env": { "METABASE_URL": "https://your-metabase.example.com", "METABASE_API_KEY": "mb_xxx" } } } }

Continue (VS Code)

Add to .continue/config.yaml:

mcpServers:
  • name: metabase command: npx args:
  • "-y"
  • "@serdnaley/metabase-mcp" env: METABASE_URL: "https://your-metabase.example.com" METABASE_API_KEY: "mb_xxx"

Zed

Add to your Zed settings.json:

{

"context_servers": { "metabase": { "command": "npx", "args": ["-y", "@serdnaley/metabase-mcp"], "env": { "METABASE_URL": "https://your-metabase.example.com", "METABASE_API_KEY": "mb_xxx" } } } }

Remote / HTTP (any client that speaks Streamable HTTP)

Run the server once in HTTP mode (see HTTP mode), then point clients at it. Claude Code:

claude mcp add --transport http metabase https://mcp.example.com/mcp \

--header "Authorization: Bearer $MCP_HTTP_TOKEN"

Generic JSON config (Cursor, VS Code and others):

{

"mcpServers": { "metabase": { "url": "https://mcp.example.com/mcp", "headers": { "Authorization": "Bearer " } } } }

Configuration

VariableRequiredDescription
METABASE_URLYesBase URL of your Metabase instance
METABASE_API_KEYNo*API key for authentication
METABASE_EMAILNo*Email for session-based auth
METABASE_PASSWORDNo*Password for session-based auth
METABASE_READ_ONLY_MODENoSet to true to disable write tools
METABASE_CUSTOM_HEADERSNoExtra HTTP headers sent on every request, including the session login (see below)
METABASE_TOOLSETSNoComma list of toolsets or presets to load (default: all). See Toolsets
METABASE_TOOLS_ENABLENoExtra tools to load on top of the toolsets (names or globs, e.g. get_card,export_*)
METABASE_TOOLS_DISABLENoTools never to load (names or globs); always wins over enable
METABASE_MAX_ROWSNoRow cap for query tools (default 500); see Large results
METABASE_MAX_RESPONSE_CHARSNoSize cap for any tool response (default 100000)
MCP_TRANSPORTNostdio (default) or http. --http on the command line does the same
MCP_HTTP_HOST / MCP_HTTP_PORTNoHTTP bind address, default 127.0.0.1:3333 (PORT also works)
MCP_HTTP_TOKENHTTP modeBearer token clients must send (min. 16 chars)
MCP_HTTP_ALLOW_NO_AUTHNotrue runs HTTP without a token, only on a loopback host

*Either METABASE_API_KEY or both METABASE_EMAIL + METABASE_PASSWORD must be provided. API key is recommended.

Custom headers

Use METABASE_CUSTOM_HEADERS when Metabase sits behind a proxy that needs its own headers, such as Cloudflare Access service tokens. Give it a JSON object:

METABASE_CUSTOM_HEADERS='{"CF-Access-Client-Id": "xxx.access", "CF-Access-Client-Secret": "yyy"}'

or Name: value pairs separated by newlines or ;:

METABASE_CUSTOM_HEADERS='CF-Access-Client-Id: xxx.access; CF-Access-Client-Secret: yyy'

The auth headers (X-API-Key, X-Metabase-Session) always win over a custom header with the same name. A malformed value stops the server at startup.

Toolsets

Each tool domain is a toolset (dashboards, users, transforms, ...; the full list is in Tools). Presets bundle them:

PresetFor
alleverything (default)
queryexploring and querying data: search, databases, tables, dataset, cards, metrics, measures, segments, exports, activity, x-rays, explorations
contentbuilding and organising content: collections, cards, dashboards, documents, snippets, timelines, alerts, ...
adminrunning the instance: users, permissions, settings, databases, tables, cache, uploads, transforms, actions, ...
METABASE_TOOLSETS=query,dashboards      # analyst assistant

METABASE_TOOLS_ENABLE=create_card # plus one write tool METABASE_TOOLS_DISABLE='delete_*' # never delete anything

Precedence, strongest first: read-only mode > `METABASE_TOOLS_DISABLE` > `METABASE_TOOLS_ENABLE` > `METABASE_TOOLSETS`. An unknown toolset stops the server at startup; an enable/disable pattern that matches nothing logs a warning. The startup log (stderr) shows how many tools are enabled.

Large results

Query tools (execute_query, execute_card_query, run_metric) return a compact view: columns (name, type) and rows, without Metabase's column internals, results_metadata and insights. Pass verbose: true for the raw response. Results are capped at METABASE_MAX_ROWS rows (per call: max_rows, never above the cap) and paged with offset; a note says how to get the rest. Every tool response is compact JSON capped at METABASE_MAX_RESPONSE_CHARS. For a 10 / 100 / 500-row SELECT * FROM ORDERS this is 94% / 76% / 60% smaller than the raw pretty-printed response. For full result sets use the export tools with output_path.

Resources and prompts

Besides tools the server offers MCP resources for browsing (compact JSON): metabase://databases, metabase://database/{id}/schema, metabase://card/{id}, metabase://dashboard/{id}, metabase://collection/{id} (root for the root collection), and prompts for common workflows: explore-database, build-dashboard, explain-card, audit-permissions. Both follow the tool selection: a resource needs its toolset, a prompt needs every tool it uses (so build-dashboard disappears in read-only mode).

HTTP mode (shared / server deployments)
METABASE_URL=https://metabase.example.com \

METABASE_API_KEY=mb_xxx \ MCP_TRANSPORT=http MCP_HTTP_HOST=0.0.0.0 MCP_HTTP_PORT=3333 \ MCP_HTTP_TOKEN="$(openssl rand -hex 32)" \ npx -y @serdnaley/metabase-mcp

Clients connect t

Solo se muestra el principio; lee el resto en el repo

Pregunta a PopNx