A side-by-side look at the Metabase MCP and Powerbi Analyst MCP MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.
Verdict: choose Metabase MCP for data visualization work as a local process; choose Powerbi Analyst MCP for data visualization as a local process. You can also run both side by side in one mcpServers block.
METABASE_URL, METABASE_API_KEY.POWERBI_ANALYST_MCP_CLIENT_ID, POWERBI_ANALYST_MCP_TENANT_ID.authenticate, logout, list_apps.Rows where the two servers differ are marked.
| Spec | ||
|---|---|---|
| Category | Data Visualization | Data Visualization |
| Quality signal | 55/100 · Good | 53/100 · Good |
| Install command | Confirmed | Confirmed |
| Transport | Local subprocess (stdio) | Local subprocess (stdio) |
| Auth | API key required | OAuth 2.0 |
| Pricing | Free | Free |
| Required env vars | METABASE_URLMETABASE_API_KEY | POWERBI_ANALYST_MCP_CLIENT_IDPOWERBI_ANALYST_MCP_TENANT_ID |
| Verified owner | Community listing | Community listing |
| GitHub stars | 5 | 14 |
| Directory activity | 5 views 0 installs 0 upvotes | 2 views 0 installs 0 upvotes |
| Tools | Not listed | 12 |
| Full listing | View Metabase MCP | View Powerbi Analyst MCP |
No tool names declared yet. Check the project README from the listing page.
authenticateSign in via OAuth device code — returns a URL + one-time code; call again to completelogoutClear the cached token (forces re-authentication)list_appsList all Power BI apps you have access to — **start here**; returns `workspaceId` for each applist_datasetsList datasets / semantic models in a workspace (use `workspaceId` from `list_apps`)get_dataset_infoMetadata and last 5 refresh history entries for a datasetlist_tablesAll visible tables in a datasetlist_measuresMeasures with name, table, description, and format stringlist_columnsColumns with data type and key flagexecute_daxRun a DAX query — inline for small results, local CSV for large ones. Pass `query_summary` to log the query for future reference.read_query_resultPage through a large CSV result without loading it all into contextsearch_query_historySearch the local query log by keyword, dataset, or time range — find prior DAX and results across sessionsdelete_query_log_entryRemove a query log entry (e.g. when the approach turned out to be wrong)Paste either block (or both) into your client config, e.g. claude_desktop_config.json or ~/.cursor/mcp.json. We only show a config when the install command is confirmed.
{
"mcpServers": {
"1luvc0d3-metabase-mcp": {
"command": "npx",
"args": [
"-y",
"@ai-1luvc0d3/metabase-mcp"
],
"env": {
"METABASE_URL": "YOUR_METABASE_URL_HERE",
"METABASE_API_KEY": "YOUR_METABASE_API_KEY_HERE"
}
}
}
}
{
"mcpServers": {
"mbrummerstedt-powerbi-analyst-mcp": {
"command": "uvx",
"args": [
"powerbi-analyst-mcp"
],
"env": {
"POWERBI_ANALYST_MCP_CLIENT_ID": "YOUR_POWERBI_ANALYST_MCP_CLIENT_ID_HERE",
"POWERBI_ANALYST_MCP_TENANT_ID": "YOUR_POWERBI_ANALYST_MCP_TENANT_ID_HERE"
}
}
}
}