{"name":"io.github.enessari/metabase-ai-assistant","slug":"enessari-metabase-ai-assistant","title":null,"description":"MCP Server for Metabase - 111 tools for SQL generation, dashboards & PostgreSQL","url":"https://mcp.market/server/enessari-metabase-ai-assistant","rating":null,"grade":"B","score":83,"certified":false,"status":"active","category":"data","tags":["data"],"presence":{"score":40,"stars":49,"forks":11,"downloads_week":59,"last_push_at":"2026-09-03T07:53:08.000Z","license":"Apache-2.0"},"uptime":null,"claimed":false,"transport":"npm","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/enessari/metabase-ai-assistant","website":null,"version":"3.2.0","remotes":[],"packages":[{"registryType":"npm","identifier":"metabase-ai-assistant","version":"3.2.0","transport":{"type":"stdio"},"environmentVariables":[{"description":"Metabase instance URL (e.g., http://localhost:3000)","isRequired":true,"format":"string","name":"METABASE_URL"},{"description":"Metabase username for authentication","format":"string","name":"METABASE_USERNAME"},{"description":"Metabase password for authentication","format":"string","isSecret":true,"name":"METABASE_PASSWORD"},{"description":"Metabase API key (alternative to username/password)","format":"string","isSecret":true,"name":"METABASE_API_KEY"},{"description":"PostgreSQL database host for direct SQL execution","format":"string","name":"DATABASE_HOST"},{"description":"PostgreSQL database port","format":"string","name":"DATABASE_PORT"},{"description":"PostgreSQL database name","format":"string","name":"DATABASE_NAME"},{"description":"PostgreSQL database user","format":"string","name":"DATABASE_USER"},{"description":"PostgreSQL database password","format":"string","isSecret":true,"name":"DATABASE_PASSWORD"}]}],"tools":[{"name":"activity_cleanup","description":"Clean up old activity logs to maintain performance and storage efficiency","write_action":false,"price_micros":0,"input_schema":null},{"name":"activity_database_usage","description":"Get database usage patterns and statistics showing which databases are most active","write_action":false,"price_micros":0,"input_schema":null},{"name":"activity_error_analysis","description":"Analyze error patterns and common failure points to identify improvement opportunities","write_action":false,"price_micros":0,"input_schema":null},{"name":"activity_log_init","description":"Initialize activity logging system for a database - creates log table and starts tracking operations","write_action":false,"price_micros":0,"input_schema":null},{"name":"activity_operation_stats","description":"Analyze operation statistics and patterns over specified time period","write_action":false,"price_micros":0,"input_schema":null},{"name":"activity_performance_insights","description":"Get performance insights showing slow operations and optimization opportunities","write_action":false,"price_micros":0,"input_schema":null},{"name":"activity_session_summary","description":"Get comprehensive summary of current or specified session activities and performance","write_action":false,"price_micros":0,"input_schema":null},{"name":"activity_timeline","description":"Get chronological timeline of recent activities for debugging and monitoring","write_action":false,"price_micros":0,"input_schema":null},{"name":"ai_relationships_suggest","description":"AI-powered virtual relationship discovery using naming patterns and data analysis - finds implicit connections between tables","write_action":false,"price_micros":0,"input_schema":null},{"name":"ai_sql_explain","description":"Break down complex SQL queries into plain English - explains joins, aggregations, and business logic","write_action":false,"price_micros":0,"input_schema":null},{"name":"ai_sql_generate","description":"Convert natural language requests into SQL queries - understands business context and table relationships","write_action":false,"price_micros":0,"input_schema":null},{"name":"ai_sql_optimize","description":"Analyze and improve SQL query performance - suggests indexes, query restructuring, and execution optimizations","write_action":false,"price_micros":0,"input_schema":null},{"name":"db_ai_drop","description":"Safely remove AI-created database objects - only works on objects with claude_ai_ prefix for security","write_action":true,"price_micros":0,"input_schema":null},{"name":"db_ai_list","description":"List all database objects created by AI (with claude_ai_ prefix)","write_action":false,"price_micros":0,"input_schema":null},{"name":"db_connection_info","description":"Get database connection information from Metabase (requires admin permissions)","write_action":false,"price_micros":0,"input_schema":null},{"name":"db_index_create","description":"Create database index for query performance - improves search and join operations on specified columns","write_action":true,"price_micros":0,"input_schema":null},{"name":"db_index_usage","description":"Analyze index usage statistics - find unused or rarely used indexes","write_action":false,"price_micros":0,"input_schema":null},{"name":"db_list","description":"Get list of all databases in Metabase instance with IDs and connection types","write_action":false,"price_micros":0,"input_schema":null},{"name":"db_matview_create","description":"Create a new materialized view directly in the database (PostgreSQL only)","write_action":true,"price_micros":0,"input_schema":null},{"name":"db_query_explain","description":"Get execution plan for a SQL query - shows how PostgreSQL will execute the query","write_action":false,"price_micros":0,"input_schema":null},{"name":"db_relationships_detect","description":"Detect existing foreign key relationships between tables - finds explicitly defined database constraints","write_action":false,"price_micros":0,"input_schema":null},{"name":"db_schema_analyze","description":"Deep schema analysis with column details, keys, constraints - requires direct DB connection for comprehensive insights","write_action":false,"price_micros":0,"input_schema":null},{"name":"db_schema_explore","description":"Fast schema exploration with table counts and basic info - lightweight method for discovering data structure","write_action":false,"price_micros":0,"input_schema":null},{"name":"db_schemas","description":"Get all schema names in specified database - useful for data exploration and finding business data locations","write_action":false,"price_micros":0,"input_schema":null},{"name":"db_table_create","description":"Create new table directly in database with security controls - requires schema selection and approval","write_action":true,"price_micros":0,"input_schema":null},{"name":"db_table_ddl","description":"Get the DDL (CREATE statement) for a table","write_action":false,"price_micros":0,"input_schema":null},{"name":"db_table_stats","description":"Get table statistics including row count, size, dead tuples, last vacuum/analyze times","write_action":false,"price_micros":0,"input_schema":null},{"name":"db_tables","description":"Get comprehensive table list across all schemas with field counts - provides overview of data structure","write_action":false,"price_micros":0,"input_schema":null},{"name":"db_test_speed","description":"Check database response time and performance - run this before heavy operations to determine optimal timeout settings","write_action":false,"price_micros":0,"input_schema":null},{"name":"db_vacuum_analyze","description":"Run VACUUM and ANALYZE on PostgreSQL tables to optimize storage and update statistics (PostgreSQL only)","write_action":true,"price_micros":0,"input_schema":null},{"name":"db_view_create","description":"Create a new view directly in the database (with claude_ai_ prefix)","write_action":true,"price_micros":0,"input_schema":null},{"name":"db_view_ddl","description":"Get the DDL (CREATE statement) for a view","write_action":false,"price_micros":0,"input_schema":null},{"name":"definition_get_metric","description":"Get metric definition with calculation formula and business context","write_action":false,"price_micros":0,"input_schema":null},{"name":"definition_get_template","description":"Get dashboard or question template with layout and configuration","write_action":false,"price_micros":0,"input_schema":null},{"name":"definition_global_search","description":"Search across all definition tables with unified results","write_action":false,"price_micros":0,"input_schema":null},{"name":"definition_search_terms","description":"Search business terms and definitions with relevance ranking","write_action":false,"price_micros":0,"input_schema":null},{"name":"definition_tables_init","description":"Initialize definition lookup tables system for documentation, metrics, templates, and search","write_action":false,"price_micros":0,"input_schema":null},{"name":"mb_action_create","description":"Create a Metabase Action for data modification (INSERT, UPDATE, DELETE)","write_action":true,"price_micros":0,"input_schema":null},{"name":"mb_action_execute","description":"Execute a Metabase action with parameters","write_action":true,"price_micros":0,"input_schema":null},{"name":"mb_action_list","description":"List all actions for a model","write_action":false,"price_micros":0,"input_schema":null},{"name":"mb_alert_create","description":"Create an alert for a question that triggers on specified conditions","write_action":true,"price_micros":0,"input_schema":null},{"name":"mb_alert_list","description":"List all alerts, optionally filtered by question","write_action":false,"price_micros":0,"input_schema":null},{"name":"mb_auto_describe","description":"Automatically generate AI-powered descriptions for databases, tables, and fields with timestamp signatures","write_action":false,"price_micros":0,"input_schema":null},{"name":"mb_card_archive","description":"Archive a card/question (soft delete)","write_action":false,"price_micros":0,"input_schema":null},{"name":"mb_card_clone","description":"Clone a card and retarget to a different table (for template cards)","write_action":false,"price_micros":0,"input_schema":null},{"name":"mb_card_copy","description":"Copy a card/question to a new location","write_action":false,"price_micros":0,"input_schema":null},{"name":"mb_card_data","description":"Execute a card/question and get the results in specified format","write_action":true,"price_micros":0,"input_schema":null},{"name":"mb_card_delete","description":"Permanently delete a card/question","write_action":true,"price_micros":0,"input_schema":null},{"name":"mb_card_get","description":"Get detailed information about a specific card/question","write_action":false,"price_micros":0,"input_schema":null},{"name":"mb_card_update","description":"Update an existing card/question","write_action":true,"price_micros":0,"input_schema":null},{"name":"mb_collection_copy","description":"Copy an entire collection with all contents","write_action":false,"price_micros":0,"input_schema":null},{"name":"mb_collection_create","description":"Create a new collection in Metabase for organizing questions and dashboards","write_action":true,"price_micros":0,"input_schema":null},{"name":"mb_collection_list","description":"List all collections with hierarchy and item counts","write_action":false,"price_micros":0,"input_schema":null},{"name":"mb_collection_move","description":"Move questions, dashboards, or collections to a different collection","write_action":false,"price_micros":0,"input_schema":null},{"name":"mb_collection_permissions_get","description":"Get permissions graph for a collection","write_action":false,"price_micros":0,"input_schema":null},{"name":"mb_collection_permissions_update","description":"Update permissions for a collection","write_action":true,"price_micros":0,"input_schema":null},{"name":"mb_dashboard_add_card","description":"Add a question card to a dashboard with specific positioning, sizing, and layout","write_action":false,"price_micros":0,"input_schema":null},{"name":"mb_dashboard_add_filter","description":"Add a filter to a dashboard for interactive data filtering across multiple cards","write_action":false,"price_micros":0,"input_schema":null},{"name":"mb_dashboard_card_remove","description":"Remove a card from a dashboard","write_action":true,"price_micros":0,"input_schema":null},{"name":"mb_dashboard_card_update","description":"Update card position and size on a dashboard","write_action":true,"price_micros":0,"input_schema":null},{"name":"mb_dashboard_copy","description":"Copy a dashboard with all its cards","write_action":false,"price_micros":0,"input_schema":null},{"name":"mb_dashboard_create","description":"Create a new dashboard in Metabase with layout options","write_action":true,"price_micros":0,"input_schema":null},{"name":"mb_dashboard_delete","description":"Delete a dashboard","write_action":true,"price_micros":0,"input_schema":null},{"name":"mb_dashboard_get","description":"Get detailed information about a dashboard","write_action":false,"price_micros":0,"input_schema":null},{"name":"mb_dashboard_layout_optimize","description":"Automatically optimize dashboard layout for better visual hierarchy and user experience","write_action":false,"price_micros":0,"input_schema":null},{"name":"mb_dashboard_template_executive","description":"Create an executive dashboard with standard KPIs, metrics, and layout - auto-generates questions and arranges them professionally","write_action":true,"price_micros":0,"input_schema":null},{"name":"mb_dashboard_update","description":"Update dashboard properties","write_action":true,"price_micros":0,"input_schema":null},{"name":"mb_dashboards","description":"List existing dashboards","write_action":false,"price_micros":0,"input_schema":null},{"name":"mb_embed_settings","description":"Get embedding settings and enabled features for the Metabase instance","write_action":false,"price_micros":0,"input_schema":null},{"name":"mb_embed_url_generate","description":"Generate signed embedding URL for a dashboard or question","write_action":false,"price_micros":0,"input_schema":null},{"name":"mb_field_metadata","description":"Get or update field metadata including display name, description, and semantic type","write_action":false,"price_micros":0,"input_schema":null},{"name":"mb_field_values","description":"Get distinct values for a field (for filter dropdowns)","write_action":false,"price_micros":0,"input_schema":null},{"name":"mb_metric_create","description":"Create a custom metric definition in Metabase for KPI tracking and business intelligence","write_action":true,"price_micros":0,"input_schema":null},{"name":"mb_permission_group_add_user","description":"Add a user to a permission group","write_action":false,"price_micros":0,"input_schema":null},{"name":"mb_permission_group_create","description":"Create a new permission group","write_action":true,"price_micros":0,"input_schema":null},{"name":"mb_permission_group_delete","description":"Delete a permission group","write_action":true,"price_micros":0,"input_schema":null},{"name":"mb_permission_group_list","description":"List all permission groups in Metabase","write_action":false,"price_micros":0,"input_schema":null},{"name":"mb_permission_group_remove_user","description":"Remove a user from a permission group","write_action":true,"price_micros":0,"input_schema":null},{"name":"mb_pulse_create","description":"Create a scheduled report (pulse) that sends dashboards/questions on a schedule","write_action":true,"price_micros":0,"input_schema":null},{"name":"mb_question_create","description":"Create new question/chart","write_action":true,"price_micros":0,"input_schema":null},{"name":"mb_question_create_parametric","description":"Create a parametric question with filters, variables, and dynamic queries - supports date ranges, dropdowns, and field filters","write_action":true,"price_micros":0,"input_schema":null},{"name":"mb_questions","description":"Browse saved questions and charts in Metabase - filter by collection to find specific reports","write_action":false,"price_micros":0,"input_schema":null},{"name":"mb_relationships_create","description":"Create virtual relationships in Metabase model - enables cross-table queries and improved dashboard capabilities","write_action":true,"price_micros":0,"input_schema":null},{"name":"mb_search","description":"Search across all Metabase items (cards, dashboards, collections, tables)","write_action":false,"price_micros":0,"input_schema":null},{"name":"mb_table_metadata","description":"Get or update table metadata including display name, description, and visibility","write_action":false,"price_micros":0,"input_schema":null},{"name":"mb_user_create","description":"Create a new Metabase user","write_action":true,"price_micros":0,"input_schema":null},{"name":"mb_user_disable","description":"Disable (deactivate) a user account","write_action":false,"price_micros":0,"input_schema":null},{"name":"mb_user_get","description":"Get detailed information about a specific user","write_action":false,"price_micros":0,"input_schema":null},{"name":"mb_user_list","description":"List all Metabase users with filtering options","write_action":false,"price_micros":0,"input_schema":null},{"name":"mb_user_update","description":"Update an existing user","write_action":true,"price_micros":0,"input_schema":null},{"name":"mb_visualization_recommend","description":"AI-powered visualization recommendation based on query results and data types","write_action":false,"price_micros":0,"input_schema":null},{"name":"mb_visualization_settings","description":"Get or update visualization settings for a question (chart type, colors, labels, etc.)","write_action":false,"price_micros":0,"input_schema":null},{"name":"parametric_dashboard_create","description":"Create dashboard with parametric questions and shared filters","write_action":true,"price_micros":0,"input_schema":null},{"name":"parametric_question_create","description":"Create parametric question with date, text search, and category filters","write_action":true,"price_micros":0,"input_schema":null},{"name":"parametric_template_preset","description":"Create parametric question from preset templates (date range analysis, category filter, text search, period comparison)","write_action":true,"price_micros":0,"input_schema":null},{"name":"sql_execute","description":"Run SQL queries against database - supports SELECT, DDL with security controls, returns formatted results","write_action":true,"price_micros":0,"input_schema":null},{"name":"web_explore_metabase_docs","description":"Comprehensively explore Metabase documentation - crawls main docs and discovers all available sections, APIs, and guides","write_action":false,"price_micros":0,"input_schema":null},{"name":"web_fetch_metabase_docs","description":"Fetch specific Metabase documentation page for API details, best practices, and feature information","write_action":false,"price_micros":0,"input_schema":null},{"name":"web_metabase_api_reference","description":"Get comprehensive Metabase API reference with endpoints, parameters, examples, and response formats","write_action":false,"price_micros":0,"input_schema":null},{"name":"web_search_metabase_docs","description":"Search across all Metabase documentation for specific topics, APIs, or solutions - uses intelligent content analysis","write_action":false,"price_micros":0,"input_schema":null}],"scan":{"score":83,"grade":"B","scanned_at":"2026-10-01T13:51:03.601Z","report":{"scannerVersion":"0.1.10","scannedAt":"2026-10-01T13:51:03.524Z","components":{"code":{"score":25,"max":25,"notes":["14 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":6,"max":15,"notes":["static API keys via environment variables"]},"maintenance":{"score":15,"max":15,"notes":["last push 28 days ago"]},"identity":{"score":8,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[],"inputs":{"packages":[{"registryType":"npm","identifier":"metabase-ai-assistant","version":"3.2.0","found":true,"license":"Apache-2.0","hasInstallScripts":false,"dependencyCount":15,"publishedAt":"2026-01-23T16:59:19.457Z","repositoryUrl":"git+https://github.com/enessari/metabase-ai-assistant.git","weeklyDownloads":59}],"repo":{"found":true,"owner":"enessari","repo":"metabase-ai-assistant","archived":false,"pushedAt":"2026-09-03T07:53:08Z","stars":49,"forks":11,"openIssues":1,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/9552916?v=4","ownerCreatedAt":"2014-11-04T13:43:31Z","license":"Apache-2.0"},"icon":{"url":"https://avatars.githubusercontent.com/u/9552916?v=4&s=128","source":"github"},"presence":{"stars":49,"forks":11,"downloadsWeek":59,"license":"Apache-2.0","lastPushAt":"2026-09-03T07:53:08.000Z","score":40}}}},"grade_history":[],"reviews":[]}