{"id":"hluaguo-metabase-mcp","name":"metabase-mcp","homepage":null,"repo_url":"https://github.com/hluaguo/metabase-mcp","category":"analytics","subcategories":[],"tags":["mcp","metabase","fastmcp","python","analytics","business-intelligence","sql","data-exploration","ai-assistants","cursor","claude-desktop"],"what_it_does":"metabase-mcp is an MCP (Model Context Protocol) server that exposes Metabase functionality to MCP clients/AI assistants. It provides tools for listing databases/tables/fields, executing SQL (with parameter support/templating) and MongoDB-style native queries (with JSON conversion for aggregation pipelines), and managing Metabase cards (questions) and collections.","use_cases":["Let an MCP-capable AI assistant explore Metabase schema (databases, tables, fields) conversationally","Have an AI assistant generate and execute SQL against Metabase-connected databases","Automate creation and management of Metabase cards (saved questions) and organizing them via collections","Run native MongoDB queries (as supported by Metabase) through MCP for analytics workflows","Use the server with Claude Desktop / Cursor via MCP transports (STDIO, SSE, HTTP)"],"not_for":["Providing a turnkey, managed analytics platform (this is a local bridge to your existing Metabase)","Environments that require strong, documented guarantees around query safety/approval workflows","Teams needing a fully specified public REST/GraphQL API surface for third-party integrations (it is primarily MCP)"],"best_when":"You want an agent-to-database bridge where an MCP client can discover Metabase metadata and execute parameterized queries/cards in a controlled deployment where you manage Metabase credentials and network access.","avoid_when":"You cannot restrict who can call MCP tools (e.g., open HTTP transport without strong network controls), or you need documented idempotency/retry semantics for every operation.","alternatives":["Use Metabase's official REST API directly from your own agent tooling","Build a custom MCP server tailored to your Metabase use cases","Use an existing generic MCP database/SQL tool and connect it directly to your underlying data warehouse (bypassing Metabase)","Use Metabase JDBC/SQL access patterns (where applicable) instead of executing through Metabase"],"af_score":63.8,"security_score":47.8,"reliability_score":30.0,"package_type":"mcp_server","discovery_source":["github"],"priority":"high","status":"evaluated","version_evaluated":null,"last_evaluated":"2026-03-30T15:20:16.819348+00:00","interface":{"has_rest_api":false,"has_graphql":false,"has_grpc":false,"has_mcp_server":true,"mcp_server_url":null,"has_sdk":false,"sdk_languages":[],"openapi_spec_url":null,"webhooks":false},"auth":{"methods":["Metabase API key authentication (environment variables)","Session-based authentication via Metabase email/password (environment variables)"],"oauth":false,"scopes":false,"notes":"Authentication is between the MCP server and Metabase; the MCP server itself is launched locally and can expose SSE/HTTP transports, but the README does not describe any additional auth/authz layer protecting MCP tool calls."},"pricing":{"model":null,"free_tier_exists":false,"free_tier_limits":null,"paid_tiers":[],"requires_credit_card":false,"estimated_workload_costs":null,"notes":"Open-source MIT package; any cost is from running the server and your Metabase infrastructure."},"requirements":{"requires_signup":false,"requires_credit_card":false,"domain_verification":false,"data_residency":[],"compliance":[],"min_contract":null},"agent_readiness":{"af_score":63.8,"security_score":47.8,"reliability_score":30.0,"mcp_server_quality":70.0,"documentation_accuracy":65.0,"error_message_quality":null,"error_message_notes":"README states 'Proper Error Handling' and use of FastMCP ToolError exceptions and middleware; however, it does not show concrete error payload examples or a full error taxonomy.","auth_complexity":80.0,"rate_limit_clarity":10.0,"tls_enforcement":35.0,"auth_strength":55.0,"scope_granularity":20.0,"dependency_hygiene":60.0,"secret_handling":70.0,"security_notes":"Uses environment variables/.env and supports Metabase API keys or session-based auth to Metabase. The README does not describe TLS requirements for the MCP transport (SSE/HTTP) nor any built-in auth/authz for protecting MCP tool invocation. Operations include executing arbitrary SQL and creating/updating Metabase cards/collections, so least-privilege and strict network controls are important.","uptime_documented":0.0,"version_stability":35.0,"breaking_changes_history":35.0,"error_recovery":50.0,"idempotency_support":"false","idempotency_notes":"No explicit idempotency guarantees described for operations like create_card/create_collection or execute_query.","pagination_style":"unknown","retry_guidance_documented":false,"known_agent_gotchas":["Be careful when using HTTP/SSE transports—README does not document authentication for the MCP transport itself, so network exposure could allow unintended tool execution.","Some tools perform state changes (creating cards/collections); without explicit idempotency/approval flows, agents may create duplicates on retries.","Query execution tools can be sensitive to SQL dialect/parameter/templating expectations of the connected Metabase databases."]}}