# Krusgraph > Krusgraph turns the tables in a Microsoft Fabric lakehouse, warehouse or SQL database into an explainable graph and an API for GraphQL item. It is a remote MCP server at https://krusgraph.com/mcp: you add it to Claude as a custom connector and sign in with a Microsoft Entra work account, and every call runs with that account's own Fabric permissions. The hosted service supports Claude, the client it has been tested with. Other MCP clients should work when you host Krusgraph yourself (not tested yet). It reads table and column names, infers keys and relationships from names (declared keys and foreign keys win), and shows the rule behind each one (K0–K5 for keys, R0–R4 for relationships). Ambiguous columns are reported, never guessed. Sources: lakehouses (tested end to end), and, experimental until a live run, warehouses, Fabric SQL databases, Snowflake database items, mirrored databases (Snowflake, Azure SQL, Cosmos DB, SAP), mirrored Azure Databricks catalogs and mirrored catalogs; Snowflake and Databricks schemas can also be planned where they are with the open-source library, CLI or local stdio server. Thirty-five tools: `list_workspaces`, `list_sources`, `list_tables`, `plan_backend` (nothing is deployed; also suggests composite keys), `sample_rows` (a few rows of one table), `validate_plan` (checks every key for uniqueness and NULLs and every relationship for orphans against the rows; returns counts), `create_backend` (creates or updates one API for GraphQL item; never deletes; no dry run, and it does not run `validate_plan`), `describe_backend` (types, fields and relationships of an existing API, read from its definition), `query_graphql` (read-only; mutations are refused), `rayfin_connector`, `ontology_draft` (the plan as a Fabric IQ ontology (preview) draft; nothing deployed); from the same plan without creating anything: `semantic_model_draft` (Power BI model in TMDL, Direct Lake), `join_path` (how two tables connect, with T-SQL), `data_dictionary` (hand-over Markdown), `dbt_schema` (dbt sources with tests), `plan_drift` (plan against an existing API), `analyze_schema` (table roles, central tables, subject areas, cycles) and `suggest_relationships` (missing links checked against the data); creating with a dry run first, all from the same plan: `create_semantic_model`, `create_ontology` (a Fabric IQ ontology item), `create_views` (wide T-SQL views in a schema of their own) and `create_data_agent`, of which only `create_views` can create with the permissions the hosted app has today; `app_starter` and `app_readiness` for an app on a created API; `lineage` for which APIs, semantic models, views and data agents build on a source's tables; from understanding to building: `silver_notebook_draft` and `create_silver_notebook` (a PySpark notebook that writes de-duplicated silver tables with every reference checked and a quarantine table, never over the source), `drift_monitor_draft` and `create_drift_monitor` (a nightly notebook and pipeline that compare the plan with the last one and message a webhook), and `answer_query_draft` (a question in Swedish or English as T-SQL over the safest join path, or as GraphQL for an existing API; `query_graphql` with `question` runs it); further down the lakehouse, `gold_views_draft` and `create_gold_views` (materialized lake views over the silver tables with the plan's keys and relationships as data quality rules); `compare_semantic_model` (an existing Power BI semantic model checked against the plan); `export_item_definitions` (what the creating tools would create, as files in Fabric's Git format for your own repository); and `review_plan` (the plan with your decisions and its checks as a file for your own repository; passed back later, it applies the decisions again and marks checks on changed tables stale). Columns that look like personal data by name are masked in sample rows and left out of drafted queries unless asked for. It is meant to sit beside Microsoft's own Fabric MCP servers, which manage workspaces and items and query models; it is not affiliated with Microsoft. Test status: on 27 October 2026, 31 tools were run from Claude against a Fabric workspace with synthetic data, read-only, as drafts or as dry runs, and one creating call that updated an existing API in place: `list_workspaces`, `list_sources`, `list_tables`, `sample_rows`, `plan_backend`, `validate_plan`, `suggest_relationships`, `analyze_schema`, `join_path`, `describe_backend`, `query_graphql`, `answer_query_draft`, `app_readiness`, `app_starter`, `plan_drift`, `lineage`, `review_plan`, `compare_semantic_model` (as far as the model lookup, which answered not_found: the demo workspace has no model), `dbt_schema`, `data_dictionary`, `semantic_model_draft`, `ontology_draft`, `rayfin_connector`, `silver_notebook_draft`, `gold_views_draft`, `drift_monitor_draft`, `export_item_definitions`, `create_views` (dry run only; nothing was created), `create_semantic_model` (dry run only; nothing was created), `create_data_agent` (dry run only; nothing was created) and `create_backend` (as an update in place of shop_api with confirmed; no new item was created); the rest (`create_ontology`, `create_silver_notebook`, `create_drift_monitor` and `create_gold_views`), and creating a new item with any tool, is unit-tested. Creating semantic models, ontologies, data agents, notebooks and pipelines needs permissions the hosted app does not ask for today (available when enabled by the operator); their dry runs work. The status per tool is in the docs. Two steps stay manual in the Fabric portal because Fabric has no API for them yet: turning on introspection on the GraphQL item, and granting permissions on it to other apps or service principals. Metadata, the sample rows and query results you ask for pass through the server and are not kept after the request; tokens are held in memory only; each tool call leaves an anonymous usage record, and the privacy policy describes the technical logs. Published in the official MCP Registry as com.krusgraph/krusgraph (https://registry.modelcontextprotocol.io/v0.1/servers?search=com.krusgraph%2Fkrusgraph; verified 26 October 2026). Open source under the MIT licence, made by Kruse Consulting AB. ## Docs - [Docs](https://krusgraph.com/docs.md): connecting, what it reads and passes through, reviewing and checking a plan, the thirty-five tools with what each changes and its test status, Krusgraph beside Microsoft's Fabric MCP servers, how relationships are inferred, Fabric IQ ontology drafts, sources, cold start, the two manual steps - [Get started](https://krusgraph.com/start.md): admin consent, choosing a workspace, adding the connector in Claude - [Use with Lovable](https://krusgraph.com/lovable.md): create the API for GraphQL item with Krusgraph, then connect Lovable's Fabric connector to it - [Run it locally](https://krusgraph.com/local.md): the same engine on your own machine over ODBC (SQL Server with Windows sign-in, or a Fabric SQL endpoint), and exactly what leaves the machine - [Use cases](https://krusgraph.com/use-cases.md): three tasks to start from (an undocumented lakehouse, a join to check, an app to build), then ten illustrative schemas from different industries (retail, manufacturing, SaaS, professional services, AML, financial crime prevention, pharmaceutical research, environment and sustainability, property, education): typical tables, the keys and links found in them with their rules, what you build - [Privacy policy](https://krusgraph.com/privacy.md): sign-in, metadata, sample rows and query results, access tokens, usage records and technical logs ## Connect - Claude (web, desktop, mobile): Settings → Connectors → Add custom connector → URL `https://krusgraph.com/mcp` → sign in with a Microsoft work account. An Entra admin of the organisation grants consent once: https://krusgraph.com/docs.md#connect - Claude Code: `claude mcp add --transport http krusgraph https://krusgraph.com/mcp` takes the same URL, but its local sign-in redirect is not registered on the Entra app yet, so it cannot sign in to krusgraph.com today. - Other MCP clients: streamable HTTP at `https://krusgraph.com/mcp`, OAuth discovery at https://krusgraph.com/.well-known/oauth-protected-resource. Only Claude's sign-in redirect is registered on the hosted app, so Cursor and other local clients cannot sign in to it today. Other MCP clients should work when you host Krusgraph yourself (not tested yet). - First calls: `list_workspaces`, then `list_sources` with the workspace name, `plan_backend` (nothing is deployed), `validate_plan` to check the plan against the rows (a step to ask for; `create_backend` does not run it), `create_backend`, then `describe_backend` before `query_graphql`. ## Demo - [Demo plan](https://krusgraph.com/demo/plan.json): the real planning engine's output on a synthetic shop schema (JSON, with a Mermaid ER diagram) - [Demo validation](https://krusgraph.com/demo/validation.json): what validate_plan answers for that plan, computed on the synthetic rows ## Optional - [Full documentation in one file](https://krusgraph.com/llms-full.txt): every page above, concatenated - [MCP Server Card](https://krusgraph.com/mcp/server-card): name, version and transport for MCP clients - [Source code](https://github.com/Krusmaster/fabric-backend): the engine, the inference rules and the server