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

de metabaseversión 0.1.0i★ –iSe ejecuta en la nube
Nombre en el registroio.github.metabase/mcp

Instalar

Resumen

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

Lets AI clients search, explore, query, and visualize data in a Metabase instance.

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 la nube
  • Transporte: Streamable HTTP
  • Categoría: Búsqueda y memoria de IA

Instalación

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

Antes de instalar

Necesitas

¿Qué app usas?

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

Funciona en Claude para web, escritorio y móvil:

  1. Abre Settings → Connectors
  2. Presiona Add custom connector
  3. Pega la dirección de abajo y presiona Add
  4. Si te pide iniciar sesión, inicia sesión en el servicio del creador
SettingsConnectors1+ Add2https://…3
https://{metabase_host}/api/mcp

La dirección tiene partes {…} que solo tú conoces (como tu cuenta), así que cópiala y complétalas.

Ejecuta esto en tu terminal

claude mcp add --transport http metabase 'https://{metabase_host}/api/mcp'

La dirección tiene partes {…} que solo tú conoces (como tu cuenta), así que cópiala y complétalas.

O copia la configuración tú

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

{
  "mcpServers": {
    "metabase": {
      "url": "https://{metabase_host}/api/mcp"
    }
  }
}

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ú.

La dirección tiene partes {…} que solo tú conoces (como tu cuenta), así que cópiala y complétalas.

O copia la configuración tú

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

{
  "servers": {
    "metabase": {
      "type": "http",
      "url": "https://{metabase_host}/api/mcp"
    }
  }
}

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ú.

ChatGPT solo se conecta a servidores en internet:

  1. Abre ChatGPT en la web → Settings → Connectors (Apps)
  2. Presiona Create o Add (en algunos planes primero hay que activar Developer mode en Advanced)
  3. Pega la dirección de abajo, ponle un nombre y guarda
  4. Si te pide iniciar sesión, inicia sesión en el servicio del creador
SettingsConnectors1+ Create2https://…3
https://{metabase_host}/api/mcp

La dirección tiene partes {…} que solo tú conoces (como tu cuenta), así que cópiala y complétalas.

Los nombres de los menús pueden variar un poco según el plan y con el tiempo.

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

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

Todavía no hemos leído la lista de herramientas de este servidor; revisamos los endpoints por turnos.

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 metabase, 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

    La dirección necesita datos de tu propia cuenta, así que no podemos revisarla por ti

  • – No aplica

    Inicio de sesión con OAuth

    La dirección necesita datos de tu propia cuenta, así que no podemos revisarla por ti

  • … Aún sin revisar

    Sin instrucciones ocultas en las descripciones de herramientas

    Aún sin revisar; leemos la lista de herramientas cuando revisamos el endpoint

Comparado con otros en Búsqueda y memoria de IAi

  • Más estrellas que el 0% de los otros 7240 servidores de esta categoría
  • Publicado en el registro más recientemente que el 11% de los otros 7240 servidores de esta categoría
  • Revisiones básicas iguales o mejores que el 100% de los otros 7240 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?

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?

El registro no indica ninguna clave obligatoria, aunque algunos servidores te piden iniciar sesión la primera vez que los usas.

¿Se ejecuta en mi computadora o en la nube?

Se ejecuta en la nube del creador. Te conectas por internet sin instalar nada, pero lo que envías pasa por los servidores del creador.

¿Sigue en mantenimiento?

El repo de GitHub cambió por última vez –, y la última versión (0.1.0) llegó al registro hace 6 meses.

¿Qué apps pueden usarlo?

Las apps compatibles con MCP, como Claude Desktop, Claude Code, Cursor y VS Code. Se conecta por URL, así que también funcionan las apps que aceptan servidores MCP remotos, como ChatGPT en modo desarrollador.

¿Qué puedo usar en su lugar?

En la misma categoría: Context7, Codebase Memory, Exa

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

Context7

de upstash

Up-to-date docs for AI agents

Computadora o nube★ 64.224MITActualizado hace 3 días
Instalar

Codebase Memory

de DeusData

Codebase knowledge graph for AI agents — 162 languages, sub-ms queries, 99% fewer tokens.

Se ejecuta en tu computadora★ 48.148MITActualizado hace 20 días
Instalar

Exa

de exa-labs

Connect AI agents to Exa for web search, content fetching, and multi-step research.

Se ejecuta en la nube★ 5213MITActualizado hace 44 días
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.

Metabase MCP Server

Metabase includes a built-in Model Context Protocol (MCP) server that lets AI clients connect directly to a Metabase instance. It uses the Streamable HTTP transport and builds on Metabase's Agent API to expose tools for searching, navigating, querying, visualizing, and creating/updating content - all scoped to the connecting user's permissions.

Endpoint

The MCP server is available at:

https://{your-metabase.example.com}/api/metabase-mcp

The legacy /api/mcp path still works as an alias for existing clients, but /api/metabase-mcp is the canonical URL to advertise.

Connecting a client

Point any MCP-compatible client at the /api/metabase-mcp endpoint. For example, with Claude Code:

claude mcp add metabase https://{your-metabase.example.com}/api/metabase-mcp --transport streamable-http

For Claude Desktop, create a custom connector using the same URL.

For Cursor, open Settings > MCP and add a new server with the type set to streamable-http and the URL:

https://{your-metabase.example.com}/api/metabase-mcp

Authentication

MCP clients authenticate via OAuth 2.0. Metabase runs its own embedded OAuth server - no external provider is needed.

The flow for a first-time connection:

  1. The client discovers Metabase's OAuth endpoints.
  2. The client registers itself with Metabase.
  3. The user is redirected to Metabase to log in and approve the connection.
  4. The client receives an access token scoped to the user's Metabase permissions.

MCP accepts only an OAuth access token. On the MCP paths the session middleware ignores session cookies and API keys, so such a request gets the same 401 discovery challenge as a request with no credential. An mb:full token holds no MCP scope, so it can connect but call no scoped tool.

Scopes

Access tokens are scoped to limit what tools a client can use:

ScopeTools it grants
agent:content:readbrowse_collection, browse_data, get_content, get_parameter_values, glossary, learn, search, and the catalog://metabase/fields data resource (see Resources)
agent:content:writebookmark_content, collection_write, dashboard_write, document_write, duplicate_content, measure_write, metric_write, question_write, segment_write
agent:delivery:writealert_write, subscription_write
agent:query:runexecute_query, refresh_ui_credential, render_drill_through, run_saved_question, visualize_query
agent:sql:runexecute_sql

A tool matches only the exact scope in the table. A wildcard such as * or agent:*, and the ::unrestricted sentinel, are not MCP scopes, so they grant no tool.

These scopes gate the MCP surface only. No REST endpoint may declare one as its :scope, so a new token issued to an MCP client grants nothing on the REST API.

The protected-resource metadata's scopes_supported and the scope of the 401 challenge both list every scope in the table, so a fresh connection asks for all of them. Some clients do not step up after a 403: a manual reconnect from Claude's connector settings registers a new client and asks for exactly what these list. When they listed only the baseline, that reconnect never offered writes, raw SQL, or delivery, and the user had no way to grant them (ENG-11089). The authorization server metadata advertises all of them too.

The baseline (agent:content:read agent:query:run) is locked on the consent screen: when a client requests one of these, the user cannot untick it. agent:query:run is in the baseline so that charts never need a step-up. Claude Desktop retries a tool after a step-up over a session that doesn't declare MCP Apps support, so a stepped-up visualize_query is refused and its chart never embeds.

A tool call or data resource read the token lacks a scope for is refused with HTTP 403 and a WWW-Authenticate: Bearer error="insufficient_scope" challenge whose scope lists the v2 scopes the token already holds plus the one required, so a client can step up. Each tool also declares its scope in securitySchemes, which is draft SEP-1488, supported by ChatGPT. It is not part of MCP 2025-03-26 (the version this server reports) or the final 2026-07-28 tools spec, so other clients discover the missing scope from the 403 instead. Inside a JSON-RPC batch the refusal is an in-band -32600 error instead. UI shell reads are never challenged: see Resources.

OAuth protected resource metadata is available at:

/.well-known/oauth-protected-resource/api/metabase-mcp

On the consent screen, every scope the client requested starts ticked, and the baseline scopes are also locked. Only the scopes left ticked are granted, and only for the token this authorization mints. An untick never touches a token the app already has. A scope left unticked is not remembered by Metabase. A later 403 can trigger another step-up in clients that support it. Other clients may require manual reauthorization. Each challenge's error_description ends with a note that the user must grant the permission on the consent screen.

Several clients replace the 403's error_description with their own text, so the initialize result's instructions explain scope failures to the model too: an auth error usually means a missing permission rather than an expired login, the model should name the failed tool or resource and the permission it requires, and the user grants it by reconnecting and leaving the permission ticked on the consent screen. The instructions are one static string, the same for every caller: there is no per-connection permission list.

Per-group tool access

On Enterprise instances with the ai_controls feature, an admin can narrow the surface per permissions group on Admin > AI > Usage controls > MCP tools access (shown whenever the MCP server is on, with or without an LLM provider). Each group has a row in mcp_group_permission saying whether its members may connect at all and, per tool name, the admin's explicit "yes" or "no"; a tool with no entry takes the default its author declared, so every deftool carries a required :default-access of :allowed or :denied and a tool released later gets exactly that default in every group until an admin overrides it. Entries are keyed by tool name, so renaming a tool needs :renamed-from with its former names (a stored entry under a former name still applies and the admin API presents it under the current name), or the author accepts that every admin's choice for it is discarded; metabase.mcp.v2.tool-names-test pins the live names so neither happens by accident. A user's effective policy is the tool_access of each group of theirs whose row enables MCP: MCP is on when any such group exists, and a tool is allowed when any of those groups resolves it to yes. The rows alone decide it, and they also record the permission mode: simple mode (Administrators, All Users, and All tenant users) or group-level mode (every other group), which is the state in which All Users has no row. A switch deletes the rows of the groups the new mode hides and seeds the groups it enables on entry that have no row (Data Analysts on entering group-level mode, All Users and All tenant users on leaving it), and PUT refuses a group the current mode hides, so no request reads a cached mode. The policy is applied on top of OAuth scopes in tools/list and tools/call (v2/registry.clj), and a user whose groups grant no access is refused at initialize and at resources/read (for sessions opened before MCP was turned off) with an error naming the fix. App-only tools (_meta {:ui {:visibility ["app"]}}, i.e. refresh_ui_credential) are not on the admin page: they are allowed while the policy allows any MCP Apps tool. Superusers and internal callers are never narrowed; OSS allows everything. On Enterprise the stored rows are enforced even without the ai_controls feature (an expired or unverifiable token keeps the restrictions an admin configured); the feature only gates the admin page and API. The resolver is permissions.clj (defenterprise, EE implementation in metabase-enterprise.mcp.permissions) and the admin API is /api/ee/ai-controls/mcp-permissions.

Available tools

Generated from the v2 registry (deftool). The scope named here is what the registry checks before the tool runs; some handlers check a further scope once they know what the call does - agent:sql:run when a source resolves to native SQL (question_write), and agent:query:run for the execution an alert or subscription defers (alert_write, subscription_write). Those refusals carry the same 403 insufficient_scope challenge. tools/list shows every tool whatever the token holds, and a token missing the scope may not call it.

ToolScopeDescription
alert_writeagent:delivery:writeCreate or update an alert: a notification sent on a schedule when a saved question's results meet a condition.
bookmark_contentagent:content:writeAdd or remove a bookmark on content for the calling user — the same starred/favorites list the Metabase sidebar shows.
browse_collectionagent:content:readBrowse collections structurally — one uniform id over every partition: a numeric id, a 21-char entity_id, "root" (re-rooted per namespace), or "trash" (archived content, items mode only).
browse_dataagent:content:readBrowse the data hierarchy: databases → schemas → tables → fields.
collection_writeagent:content:writeCreate, rename, move, archive, or restore a collection — the folders that hold questions, dashboards, models, and documents.
dashboard_writeagent:content:writeCreate or update a dashboard and edit its layout with ordered ops.
document_writeagent:content:writeCreate or update a document.
duplicate_contentagent:content:writeCopy a question, dashboard, or document into a collection — cheaper and safer than reading the original and re-creating it, and it preserves everything the read projections leave out.
execute_queryagent:query:runThe default way to answer a question from data: validate and execute a structured (MBQL) query, returning rows plus a query_handle.
execute_sqlagent:sql:runEscape hatch: execute a raw SQL string against a database, returning rows plus a query_handle.
get_contentagent:content:readFetch content by {type, id} — the typed read for anything found via search or browse_collection.
get_parameter_valuesagent:content:readFetch the valid values for one filter on a dashboard or saved question, so you filter with real values instead of guessing.
glossaryagent:content:readLook up a business term as this Metabase instance defines it; the defined term names ride the tool's own description.
learnagent:content:readRead this server's task docs (skills) for the write dialects the schemas can't fully describe.
measure_writeagent:content:writeCreate or update a measure: a named, reusable MBQL aggregation attached to one table, referenced inside another query's aggregation as ["measure", id].
metric_writeagent:content:writeCreate or update a metric: a saved, reusable aggregation that lives in a collection and can be queried on its own or referenced from other queries.
question_writeagent:content:writeCreate, update, or archive a saved question or model.

| refresh_ui_credential | agent:query:run | Ref

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

Pregunta a PopNx