Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Descripción del creador (original en inglés)
Headless Metabase MCP: API-key auth, no OAuth. 178 tools, toolsets, stdio or HTTP, all tiers.
Estos tres nunca se combinan en una sola puntuación: las opiniones, las mediciones y la popularidad son cosas distintas.
Todavía no escribimos un resumen sencillo para este. Abajo están los datos que leímos del registro.
Elige la app de IA que usas y copia la configuración.
METABASE_URL, METABASE_API_KEY, METABASE_EMAIL, METABASE_PASSWORD, METABASE_READ_ONLY_MODE, METABASE_TOOLSETS, METABASE_TOOLS_ENABLE, METABASE_TOOLS_DISABLE, METABASE_CUSTOM_HEADERSLos valores marcados como secretos son llaves de tu cuenta. Nunca los compartas ni los pegues en un chat.
Necesitas
¿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-mcpCompleta los valores vacíos antes de ejecutarlo.
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ú.
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.
METABASE_EMAIL envMETABASE_READ_ONLY_MODE envMETABASE_TOOLSETS envMETABASE_TOOLS_ENABLE envMETABASE_TOOLS_DISABLE envEsta configuración se genera a partir de la ficha del creador en el registro. Si el README dice otra cosa, sigue el README.
Se ejecuta en tu computadora; la lista de herramientas aparece en tu app de IA después de instalarlo.
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
El nombre en el registro se verificó con la cuenta de GitHub Serdnaley, dueña del repo
Todavía no hemos leído este repo en GitHub
Todavía no hemos leído este repo en GitHub
Este se ejecuta en tu computadora; no hay endpoint en internet
Se ejecuta en tu computadora y usa ajustes locales en su lugar
Se ejecuta en tu computadora; solo podemos leer listas de herramientas de endpoints en internet
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.
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.
Debes completar: METABASE_URL, METABASE_API_KEY, METABASE_PASSWORD, METABASE_CUSTOM_HEADERS
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).
El repo de GitHub cambió por última vez –, y la última versión (0.5.0) llegó al registro hace 3 días.
Las apps compatibles con MCP, como Claude Desktop, Claude Code, Cursor y VS Code. También necesitas Node.js en tu computadora.
En la misma categoría: Spec Driven Development, Remote Desktop Commander, Recta
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
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Cheaper cross-chain stablecoin routes for AI agents; 5 % of the verified saving, nothing if none.
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.
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.
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.
METABASE_TOOLSETS=query), add or drop single tools with globsreadOnlyHint / destructiveHint / idempotentHint on every toolnpx, no installation neededClaude 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:
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 " } } } }
| Variable | Required | Description |
|---|---|---|
METABASE_URL | Yes | Base URL of your Metabase instance |
METABASE_API_KEY | No* | API key for authentication |
METABASE_EMAIL | No* | Email for session-based auth |
METABASE_PASSWORD | No* | Password for session-based auth |
METABASE_READ_ONLY_MODE | No | Set to true to disable write tools |
METABASE_CUSTOM_HEADERS | No | Extra HTTP headers sent on every request, including the session login (see below) |
METABASE_TOOLSETS | No | Comma list of toolsets or presets to load (default: all). See Toolsets |
METABASE_TOOLS_ENABLE | No | Extra tools to load on top of the toolsets (names or globs, e.g. get_card,export_*) |
METABASE_TOOLS_DISABLE | No | Tools never to load (names or globs); always wins over enable |
METABASE_MAX_ROWS | No | Row cap for query tools (default 500); see Large results |
METABASE_MAX_RESPONSE_CHARS | No | Size cap for any tool response (default 100000) |
MCP_TRANSPORT | No | stdio (default) or http. --http on the command line does the same |
MCP_HTTP_HOST / MCP_HTTP_PORT | No | HTTP bind address, default 127.0.0.1:3333 (PORT also works) |
MCP_HTTP_TOKEN | HTTP mode | Bearer token clients must send (min. 16 chars) |
MCP_HTTP_ALLOW_NO_AUTH | No | true 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.
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.
Each tool domain is a toolset (dashboards, users, transforms, ...; the full list is in Tools). Presets bundle them:
| Preset | For |
|---|---|
all | everything (default) |
query | exploring and querying data: search, databases, tables, dataset, cards, metrics, measures, segments, exports, activity, x-rays, explorations |
content | building and organising content: collections, cards, dashboards, documents, snippets, timelines, alerts, ... |
admin | running 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.
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.
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).
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