Ms Core Mcp — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Ms Core Mcp (Agent Skill) and scored it 96/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 1 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 1 flagged
The text {match} tells the agent to skip the normal "ask the user first" gate. Used adversarially it removes the human-in-the-loop check before destructive or sensitive actions, turning a normally-gated agent into a fire-and-forget executor.
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
A Python MCP server that lets you manage Microsoft Fabric through natural language in Claude Code or Claude Desktop. 77+ tools covering workspaces, lakehouses, warehouses, SQL, DAX, semantic models, notebooks, pipelines, OneLake, and Microsoft Graph.
Inspired by: https://github.com/Augustab/microsoft_fabric_mcp/tree/main
git clone https://github.com/Jasuni69/ms-core-mcp.git
cd ms-core-mcp
az login
python setup.pyThe setup script checks prerequisites, installs dependencies, and configures your Claude client. It safely merges into existing config files without affecting other MCP servers.
Then restart VS Code or Claude Desktop and ask: "List my Fabric workspaces"
You (natural language) --> Claude --> MCP Server --> Fabric REST API --> Your Fabric ResourcesTwo transport modes:
fabric_mcp_stdio.py - used by Claude Code and Claude Desktopfabric_mcp.py --port 8081 - for custom integrationslist_workspaces, create_workspace, set_workspace, list_lakehouses, create_lakehouse, set_lakehouse, list_warehouses, create_warehouse, set_warehouse
list_tables, set_table, get_lakehouse_table_schema, get_all_lakehouse_schemas, table_preview, table_schema, describe_history, optimize_delta, vacuum_delta, load_data_from_url
sql_query, sql_explain, sql_export, get_sql_endpoint
type ("lakehouse" or "warehouse")list_semantic_models, get_semantic_model, get_model_schema, list_measures, get_measure, create_measure, update_measure, delete_measure, analyze_dax_query
list_reports, get_report, report_export, report_params_list
semantic_model_refresh, dax_query
list_notebooks, create_notebook, get_notebook_content, update_notebook_cell, create_pyspark_notebook, create_fabric_notebook, generate_pyspark_code, generate_fabric_code, validate_pyspark_code, validate_fabric_code, analyze_notebook_performance, run_notebook_job, get_run_status, cancel_notebook_job, install_requirements, install_wheel, cluster_info
pipeline_run, pipeline_status, pipeline_logs, create_data_pipeline, get_pipeline_definition, dataflow_refresh, schedule_list, schedule_set
onelake_ls, onelake_read, onelake_write, onelake_rm, onelake_create_shortcut, onelake_list_shortcuts, onelake_delete_shortcut
resolve_item, list_items, get_permissions, set_permissions
graph_user, graph_mail, graph_teams_message, graph_teams_message_alias, graph_drive, save_teams_channel_alias, list_teams_channel_aliases, delete_teams_channel_alias
clear_context
"List all my Fabric workspaces"
"Set workspace to Analytics-Prod"
"Show me all tables in the sales lakehouse"
"What are the top 10 customers by revenue?"
"Create a DAX measure for total sales"
"Generate a PySpark ETL notebook"
"Run the daily pipeline and check status"Create .mcp.json in the project root:
{
"mcpServers": {
"ms-fabric-core-tools-mcp": {
"command": "uv",
"args": ["--directory", "/full/path/to/ms-core-mcp", "run", "fabric_mcp_stdio.py"]
}
}
}Add to ~/.claude/settings.json:
{
"enableAllProjectMcpServers": true
}Add to your claude_desktop_config.json:
%APPDATA%\Claude\claude_desktop_config.json~/Library/Application Support/Claude/claude_desktop_config.json{
"mcpServers": {
"ms-fabric-core-tools-mcp": {
"command": "/full/path/to/uv",
"args": ["--directory", "/full/path/to/ms-core-mcp", "run", "fabric_mcp_stdio.py"]
}
}
}Note: Claude Desktop needs the full path to uv since it may not inherit your shell PATH.
ms-core-mcp/
fabric_mcp.py # HTTP server entry point
fabric_mcp_stdio.py # STDIO entry point (Claude Code / Desktop)
setup.py # Automated setup script
pyproject.toml # Dependencies
CLAUDE.md # AI assistant instructions
tools/ # MCP tool definitions
helpers/
clients/ # Fabric API, SQL, OneLake clients
formatters/ # Output formatters
utils/ # Auth, context, validators
tests/ # Tests
docs/ # Documentation"Command not found: uv" - Install uv, then restart terminal
"Not authenticated" - Run az login, then verify with:
az account get-access-token --resource https://api.fabric.microsoft.com/"Database not found" on SQL queries - SQL endpoint may not be provisioned yet. Wait a few minutes or check the lakehouse has tables in the Fabric portal.
MCP tools not appearing in Claude Desktop - Use full path to uv in config. Check Task Manager to fully close and restart Claude Desktop.
Only some tools showing - Check for import errors by running:
uv run python -c "from tools import *; from helpers.utils.context import mcp; print(f'Tools: {len(mcp._tool_manager._tools)}')"uv run pytest tests/MIT
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.