io.github.enessari/metabase-ai-assistant
NPM · METABASE-AI-ASSISTANT · SCANNED SEP 20
MCP Server for Metabase - 111 tools for SQL generation, dashboards & PostgreSQL
Available components
How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →
Supply Chain Security98
- No malware found by supply-chain analysis.Pass
- No known CVEs affecting this package version or its production dependencies.Pass
- No install/post-install scripts declared.Pass
- 91 of 274 dependencies flagged as unhealthy (1 deprecated). View diagnostics → Partial
Provenance & Transparency48
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
- Clear OSI-approved license (Apache-2.0).Pass
- Actively maintained (last published 220 days ago).Pass
- Publishes a security disclosure policy (SECURITY.md).Pass
Schema Quality & AI Usability68
- AI-judged instruction clarity (good).Pass
- Tool/resource definitions use about 7745 tokens (~63/item across 122 items; 122 tools + 0 resources), lean.Pass
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management93
- Stability observed for 28 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
Tool Safety75
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- 0 of 10 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "sql_execute" implies "execute" and declares no destructiveHint at all, which the MCP spec reads as destructive by default. See how to fix → Fail
- An AI judge read all 122 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
How do I install the io.github.enessari/metabase-ai-assistant MCP server?
io.github.enessari/metabase-ai-assistant runs locally as an npm package, launched with npx -y metabase-ai-assistant. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
npm · metabase-ai-assistant
claude mcp add enessari-metabase-ai-assistant -- npx -y metabase-ai-assistant
{
"mcpServers": {
"enessari-metabase-ai-assistant": {
"command": "npx",
"args": [
"-y",
"metabase-ai-assistant"
]
}
}
} {
"servers": {
"enessari-metabase-ai-assistant": {
"command": "npx",
"args": [
"-y",
"metabase-ai-assistant"
]
}
}
} codex mcp add enessari-metabase-ai-assistant -- npx -y metabase-ai-assistant
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"enessari-metabase-ai-assistant": {
"type": "local",
"command": [
"npx",
"-y",
"metabase-ai-assistant"
],
"enabled": true
}
}
} openclaw mcp add enessari-metabase-ai-assistant --command npx --arg -y --arg metabase-ai-assistant
mcp_servers:
enessari-metabase-ai-assistant:
command: "npx"
args: ["-y", "metabase-ai-assistant"] {
"McpServers": {
"enessari-metabase-ai-assistant": {
"Transport": "stdio",
"Command": "npx",
"Arguments": [
"-y",
"metabase-ai-assistant"
]
}
}
} assistant mcp add enessari-metabase-ai-assistant -t stdio -c npx -a -y metabase-ai-assistant
{
"mcpServers": {
"enessari-metabase-ai-assistant": {
"command": "npx",
"args": [
"-y",
"metabase-ai-assistant"
]
}
}
} Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 20 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 90 to 93. That category is still filling its 30-day observation window: 27 days of observed history at the previous scan, 28 at this one. The score rises as the window fills, whether or not the server changes.
- 18 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 83 to 87. That category is still filling its 30-day observation window: 25 days of observed history at the previous scan, 26 at this one. The score rises as the window fills, whether or not the server changes.
- 16 Sept 26 −1
- CVE-2026-82562 no longer affects this package ▲ security
- CVE-2026-82417 no longer affects this package ▲ security
- Known CVEs: fail → pass ▲ security
- Stability: pass → 0.80 functional
- 15 Sept 26 0
- Stability: 0.97 → pass security
- 14 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 93 to 97. That category is still filling its 30-day observation window: 28 days of observed history at the previous scan, 29 at this one. The score rises as the window fills, whether or not the server changes.
- 12 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 87 to 90. That category is still filling its 30-day observation window: 26 days of observed history at the previous scan, 27 at this one. The score rises as the window fills, whether or not the server changes.
- 10 Sept 26 −2
- Stability: pass → 0.83 functional
- 9 Sept 26 0
- Stability: 0.97 → pass security
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 20 Sept 2026 · Analysed npm/metabase-ai-assistant@3.2.0
Provenance No attestation
The registry publishes no build provenance for this version, so there is nothing to verify.
| Result | No attestation |
|---|---|
| Ecosystem | npm |
Background: How many MCP packages publish verified provenance →
Dependencies 274 packages
| Packages resolved | 274 |
|---|---|
| Deprecated | 1 |
| Stale | 90 |
| Tree resolution | Complete |
Background: SBOMs and build attestations, explained →
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
activity_cleanup ~56
Clean up old activity logs to maintain performance and storage efficiency
| Name | Type | Req | Description |
|---|---|---|---|
| dry_run | boolean | – | Preview what would be deleted without actually deleting |
| retention_days | number | – | Keep logs newer than this many days (default: 90) |
No output schema declared.
No examples provided.
activity_database_usage ~39
Get database usage patterns and statistics showing which databases are most active
| Name | Type | Req | Description |
|---|---|---|---|
| days | number | – | Number of days to analyze (default: 30) |
No output schema declared.
No examples provided.
activity_error_analysis ~38
Analyze error patterns and common failure points to identify improvement opportunities
| Name | Type | Req | Description |
|---|---|---|---|
| days | number | – | Number of days to analyze (default: 7) |
No output schema declared.
No examples provided.
activity_log_init ~55
Initialize activity logging system for a database - creates log table and starts tracking operations
| Name | Type | Req | Description |
|---|---|---|---|
| database_id | number | yes | Database ID to initialize logging for |
| schema | string | – | Schema name for log table (default: public) |
No output schema declared.
No examples provided.
activity_operation_stats ~36
Analyze operation statistics and patterns over specified time period
| Name | Type | Req | Description |
|---|---|---|---|
| days | number | – | Number of days to analyze (default: 7) |
No output schema declared.
No examples provided.
activity_performance_insights ~38
Get performance insights showing slow operations and optimization opportunities
| Name | Type | Req | Description |
|---|---|---|---|
| days | number | – | Number of days to analyze (default: 7) |
No output schema declared.
No examples provided.
activity_session_summary ~40
Get comprehensive summary of current or specified session activities and performance
| Name | Type | Req | Description |
|---|---|---|---|
| session_id | string | – | Session ID to analyze (optional, defaults to current session) |
No output schema declared.
No examples provided.
activity_timeline ~55
Get chronological timeline of recent activities for debugging and monitoring
| Name | Type | Req | Description |
|---|---|---|---|
| days | number | – | Number of days to show (default: 7) |
| limit | number | – | Maximum number of activities to return (default: 100) |
No output schema declared.
No examples provided.
ai_relationships_suggest ~68
AI-powered virtual relationship discovery using naming patterns and data analysis - finds implicit connections between tables
| Name | Type | Req | Description |
|---|---|---|---|
| confidence_threshold | number | – | Minimum confidence level (0.0-1.0) |
| database_id | number | yes | Database ID |
| schema_name | string | yes | Schema name |
No output schema declared.
No examples provided.
ai_sql_explain ~40
Break down complex SQL queries into plain English - explains joins, aggregations, and business logic
| Name | Type | Req | Description |
|---|---|---|---|
| sql | string | yes | SQL query to explain |
No output schema declared.
No examples provided.
ai_sql_generate ~54
Convert natural language requests into SQL queries - understands business context and table relationships
| Name | Type | Req | Description |
|---|---|---|---|
| database_id | number | yes | Database ID to generate query for |
| description | string | yes | Natural language description of what you want to query |
No output schema declared.
No examples provided.
ai_sql_optimize ~39
Analyze and improve SQL query performance - suggests indexes, query restructuring, and execution optimizations
| Name | Type | Req | Description |
|---|---|---|---|
| sql | string | yes | SQL query to optimize |
No output schema declared.
No examples provided.
db_ai_drop ~101
Safely remove AI-created database objects - only works on objects with claude_ai_ prefix for security
| Name | Type | Req | Description |
|---|---|---|---|
| approved | boolean | – | Set to true to confirm deletion |
| database_id | number | yes | Database ID |
| dry_run | boolean | – | Set to true to preview without executing |
| object_name | string | yes | Object name to drop (must have claude_ai_ prefix) |
| object_type | string | yes | Type of object to drop |
No output schema declared.
No examples provided.
db_ai_list ~38
List all database objects created by AI (with claude_ai_ prefix)
| Name | Type | Req | Description |
|---|---|---|---|
| database_id | number | yes | Database ID to list objects from |
No output schema declared.
No examples provided.
db_connection_info ~36
Get database connection information from Metabase (requires admin permissions)
| Name | Type | Req | Description |
|---|---|---|---|
| database_id | number | yes | Database ID to get connection info for |
No output schema declared.
No examples provided.
db_index_create ~128
Create database index for query performance - improves search and join operations on specified columns
| Name | Type | Req | Description |
|---|---|---|---|
| approved | boolean | – | Set to true to confirm execution |
| columns | array | yes | Array of column names or single column name |
| database_id | number | yes | Database ID to create index in |
| dry_run | boolean | – | Set to true to preview without executing |
| index_name | string | yes | Index name (claude_ai_ prefix will be added automatically) |
| table_name | string | yes | Table name to create index on |
| unique | boolean | – | Whether to create unique index |
No output schema declared.
No examples provided.
db_index_usage ~63
Analyze index usage statistics - find unused or rarely used indexes
| Name | Type | Req | Description |
|---|---|---|---|
| database_id | number | yes | Database ID |
| min_size_mb | number | – | Minimum index size in MB to include |
| schema_name | string | – | Schema name to analyze (default: public) |
No output schema declared.
No examples provided.
db_list ~23
Get list of all databases in Metabase instance with IDs and connection types
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
db_matview_create ~125
Create a new materialized view directly in the database (PostgreSQL only)
| Name | Type | Req | Description |
|---|---|---|---|
| approved | boolean | – | Set to true to confirm execution |
| database_id | number | yes | Database ID to create materialized view in |
| dry_run | boolean | – | Set to true to preview without executing |
| schema | string | – | Target schema name (optional, uses database default if not specified) |
| select_sql | string | yes | SELECT statement for the materialized view |
| view_name | string | yes | Materialized view name (claude_ai_ prefix will be added) |
No output schema declared.
No examples provided.
db_query_explain ~89
Get execution plan for a SQL query - shows how PostgreSQL will execute the query
| Name | Type | Req | Description |
|---|---|---|---|
| analyze | boolean | – | Actually run the query to get real execution times |
| database_id | number | yes | Database ID |
| format | string | – | Output format for the plan |
| sql | string | yes | SQL query to analyze |
| verbose | boolean | – | Include additional details in the plan |
No output schema declared.
No examples provided.
db_relationships_detect ~66
Detect existing foreign key relationships between tables - finds explicitly defined database constraints
| Name | Type | Req | Description |
|---|---|---|---|
| database_id | number | yes | Database ID |
| schema_name | string | yes | Schema name to analyze |
| table_names | array | – | Specific tables to analyze (optional, analyzes all if not provided) |
No output schema declared.
No examples provided.
db_schema_analyze ~99
Deep schema analysis with column details, keys, constraints - requires direct DB connection for comprehensive insights
| Name | Type | Req | Description |
|---|---|---|---|
| database_id | number | yes | Database ID |
| include_columns | boolean | – | Include detailed column information |
| limit | number | – | Maximum number of tables to analyze (default: 10) |
| schema_name | string | yes | Schema name to explore |
| timeout_seconds | number | – | Maximum execution time in seconds (default: 30) |
No output schema declared.
No examples provided.
db_schema_explore ~67
Fast schema exploration with table counts and basic info - lightweight method for discovering data structure
| Name | Type | Req | Description |
|---|---|---|---|
| database_id | number | yes | Database ID |
| limit | number | – | Maximum number of tables to return (default: 20) |
| schema_name | string | yes | Schema name to explore |
No output schema declared.
No examples provided.
db_schemas ~37
Get all schema names in specified database - useful for data exploration and finding business data locations
| Name | Type | Req | Description |
|---|---|---|---|
| database_id | number | yes | Database ID |
No output schema declared.
No examples provided.
db_sync_schema ~28
Trigger schema sync for a database
| Name | Type | Req | Description |
|---|---|---|---|
| database_id | number | yes | Database ID to sync |
No output schema declared.
No examples provided.
db_table_create ~117
Create new table directly in database with security controls - requires schema selection and approval
| Name | Type | Req | Description |
|---|---|---|---|
| approved | boolean | – | Set to true to confirm execution |
| columns | array | yes | Array of column definitions |
| database_id | number | yes | Database ID to create table in |
| dry_run | boolean | – | Set to true to preview without executing |
| schema | string | – | Target schema name (optional, uses database default if not specified) |
| table_name | string | yes | Table name (claude_ai_ prefix will be added automatically) |
No output schema declared.
No examples provided.
db_table_ddl ~47
Get the DDL (CREATE statement) for a table
| Name | Type | Req | Description |
|---|---|---|---|
| database_id | number | yes | Database ID |
| table_name | string | yes | Table name to get DDL for |
No output schema declared.
No examples provided.
db_table_stats ~65
Get table statistics including row count, size, dead tuples, last vacuum/analyze times
| Name | Type | Req | Description |
|---|---|---|---|
| database_id | number | yes | Database ID |
| schema_name | string | – | Schema name (default: public) |
| table_name | string | yes | Table name to get stats for |
No output schema declared.
No examples provided.
db_tables ~35
Get comprehensive table list across all schemas with field counts - provides overview of data structure
| Name | Type | Req | Description |
|---|---|---|---|
| database_id | number | yes | Database ID |
No output schema declared.
No examples provided.
db_test_speed ~39
Check database response time and performance - run this before heavy operations to determine optimal timeout settings
| Name | Type | Req | Description |
|---|---|---|---|
| database_id | number | yes | Database ID to test |
No output schema declared.
No examples provided.
db_test_speed ~31
Quick test to check database connection and response time
| Name | Type | Req | Description |
|---|---|---|---|
| database_id | number | yes | Database ID to test |
No output schema declared.
No examples provided.
db_vacuum_analyze ~106
Run VACUUM and ANALYZE on PostgreSQL tables to optimize storage and update statistics (PostgreSQL only)
| Name | Type | Req | Description |
|---|---|---|---|
| database_id | number | yes | Database ID |
| dry_run | boolean | – | Preview command without executing |
| schema_name | string | – | Schema name (default: public) |
| table_name | string | – | Table name to vacuum/analyze (optional, all tables if not specified) |
| vacuum_type | string | – | Type of maintenance operation |
No output schema declared.
No examples provided.
db_view_create ~119
Create a new view directly in the database (with claude_ai_ prefix)
| Name | Type | Req | Description |
|---|---|---|---|
| approved | boolean | – | Set to true to confirm execution |
| database_id | number | yes | Database ID to create view in |
| dry_run | boolean | – | Set to true to preview without executing |
| schema | string | – | Target schema name (optional, uses database default if not specified) |
| select_sql | string | yes | SELECT statement for the view |
| view_name | string | yes | View name (claude_ai_ prefix will be added automatically) |
No output schema declared.
No examples provided.
db_view_ddl ~47
Get the DDL (CREATE statement) for a view
| Name | Type | Req | Description |
|---|---|---|---|
| database_id | number | yes | Database ID |
| view_name | string | yes | View name to get DDL for |
No output schema declared.
No examples provided.
definition_get_metric ~44
Get metric definition with calculation formula and business context
| Name | Type | Req | Description |
|---|---|---|---|
| database_id | number | yes | Database ID to search in |
| metric_name | string | yes | Metric name to lookup |
No output schema declared.
No examples provided.
definition_get_template ~57
Get dashboard or question template with layout and configuration
| Name | Type | Req | Description |
|---|---|---|---|
| database_id | number | yes | Database ID to search in |
| template_name | string | yes | Template name to lookup |
| template_type | string | yes | Type of template to retrieve |
No output schema declared.
No examples provided.
definition_global_search ~66
Search across all definition tables with unified results
| Name | Type | Req | Description |
|---|---|---|---|
| content_types | array | – | Filter by content types (business_terms, metrics, templates, etc.) |
| database_id | number | yes | Database ID to search in |
| search_term | string | yes | Term to search across all definitions |
No output schema declared.
No examples provided.
definition_search_terms ~63
Search business terms and definitions with relevance ranking
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | – | Optional category filter (customer_metrics, revenue_metrics, etc.) |
| database_id | number | yes | Database ID to search in |
| search_term | string | yes | Term to search for in definitions |
No output schema declared.
No examples provided.
definition_tables_init ~39
Initialize definition lookup tables system for documentation, metrics, templates, and search
| Name | Type | Req | Description |
|---|---|---|---|
| database_id | number | yes | Database ID to create definition tables in |
No output schema declared.
No examples provided.
mb_action_create ~111
Create a Metabase Action for data modification (INSERT, UPDATE, DELETE)
| Name | Type | Req | Description |
|---|---|---|---|
| database_id | number | – | Database ID for query actions |
| dataset_query | object | – | Query definition for query actions |
| description | string | – | Action description |
| model_id | number | yes | Model ID the action belongs to |
| name | string | yes | Action name |
| parameters | array | – | Action parameters |
| type | string | yes | Action type |
| visualization_settings | object | – | Form visualization settings |
No output schema declared.
No examples provided.
mb_action_execute ~41
Execute a Metabase action with parameters
| Name | Type | Req | Description |
|---|---|---|---|
| action_id | number | yes | Action ID to execute |
| parameters | object | yes | Parameter values for the action |
No output schema declared.
No examples provided.
mb_action_list ~30
List all actions for a model
| Name | Type | Req | Description |
|---|---|---|---|
| model_id | number | yes | Model ID to get actions for |
No output schema declared.
No examples provided.
mb_alert_create ~88
Create an alert for a question that triggers on specified conditions
| Name | Type | Req | Description |
|---|---|---|---|
| alert_above_goal | boolean | – | Alert when above goal (for goal condition) |
| alert_condition | string | – | Alert condition type |
| alert_first_only | boolean | – | Only alert on first occurrence |
| card_id | number | yes | Question/Card ID to create alert for |
| channels | array | – | Notification channels |
No output schema declared.
No examples provided.
mb_alert_list ~33
List all alerts, optionally filtered by question
| Name | Type | Req | Description |
|---|---|---|---|
| card_id | number | – | Filter alerts by question ID (optional) |
No output schema declared.
No examples provided.
mb_auto_describe ~68
Automatically generate AI-powered descriptions for databases, tables, and fields with timestamp signatures
| Name | Type | Req | Description |
|---|---|---|---|
| database_id | number | yes | Database ID to generate descriptions for |
| force_update | boolean | – | Update existing descriptions (default: false) |
| target_type | string | – | What to generate descriptions for |
No output schema declared.
No examples provided.
mb_bookmark_create ~39
Bookmark an item for quick access
| Name | Type | Req | Description |
|---|---|---|---|
| id | number | yes | Item ID to bookmark |
| type | string | yes | Item type to bookmark |
No output schema declared.
No examples provided.
mb_bookmark_delete ~32
Remove a bookmark
| Name | Type | Req | Description |
|---|---|---|---|
| id | number | yes | Item ID |
| type | string | yes | Item type |
No output schema declared.
No examples provided.
mb_bookmark_list ~15
List all bookmarked items
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
mb_cache_invalidate ~52
Invalidate cache for specific items or entire database
| Name | Type | Req | Description |
|---|---|---|---|
| card_id | number | – | Specific card ID to invalidate |
| database_id | number | – | Database ID (optional, invalidates all if provided alone) |
No output schema declared.
No examples provided.
mb_card_archive ~31
Archive a card/question (soft delete)
| Name | Type | Req | Description |
|---|---|---|---|
| card_id | number | yes | Card/Question ID to archive |
No output schema declared.
No examples provided.
What is the io.github.enessari/metabase-ai-assistant MCP server?
io.github.enessari/metabase-ai-assistant is an MCP server listed in the public MCP registry as io.github.enessari/metabase-ai-assistant. MCP Server for Metabase - 111 tools for SQL generation, dashboards & PostgreSQL. This page covers its npm package (metabase-ai-assistant).
Is the io.github.enessari/metabase-ai-assistant MCP server safe to use?
io.github.enessari/metabase-ai-assistant scores 81 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 20 September 2026. It declares no install or post-install scripts. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the io.github.enessari/metabase-ai-assistant MCP server expose?
io.github.enessari/metabase-ai-assistant exposes 122 tools: db_list, db_test_speed, db_schemas, db_tables, sql_execute, and 117 more. Their descriptions and schemas cost roughly 7,745 tokens of context every time the server is loaded.
Is the io.github.enessari/metabase-ai-assistant MCP server still maintained?
io.github.enessari/metabase-ai-assistant is still listed as active in the MCP registry. We last reached this channel on 20 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.
What licence is the io.github.enessari/metabase-ai-assistant MCP server under?
io.github.enessari/metabase-ai-assistant declares the Apache-2.0 licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.