OntoBricks MCP
An MCP server for a knowledge graph over Unity Catalog tables: the agent picks a domain, reads the ontology and runs GraphQL.
- 472 ★ on the repository
- Last commit
Extended access
Why this level
- The server reads Unity Catalog data and the knowledge graph, and tools run as the end user.
- Domains are published to agents only after the API and MCP flag is turned on.
Install
- Works in
Manual install
{"mcpServers":{"ontobricks":{"command":"python","args":["src/mcp-server/mcp_server.py"],"cwd":"/path/to/OntoBricks"}}}The server starts from a cloned repository over stdio; for Claude Desktop add an `env` block with `ONTOBRICKS_URL`.
Access and checks
How we reviewExtended accessThe tool runs code or makes network calls and only reads external data.
- The server reads Unity Catalog data and the knowledge graph, and tools run as the end user.
- Domains are published to agents only after the API and MCP flag is turned on.
This is third-party code. Review the repository files before installing.
What it does
OntoBricks turns Unity Catalog tables into a knowledge graph with an ontology, and the MCP server publishes it to agents. The server lives in `src/mcp-server/` and is deployed separately from the web app. Work runs in two steps on a persistent session: `list_domains` shows available domains, `select_domain` picks one, then `list_entity_types`, `describe_ontology`, `describe_entity` and `get_entity_context` read its graph. For structured queries there are `get_graphql_schema` and `query_graphql`. Each domain decides what it publishes: which tools, datasets, class actions and virtual attributes. Ontology-only domains with a single `describe_ontology` tool are supported. Clients with no persistent session such as the Databricks AI Playground pass `domain_name` on every call. The server runs locally (`python src/mcp-server/mcp_server.py`) for Cursor and Claude Desktop or in Databricks Apps over Streamable HTTP, and graph tools run as the end user.
Who it is for. Data teams on Databricks who build ontologies over Unity Catalog and want Claude Desktop or Cursor agents to reach a governed graph.
Good fit when
- The agent needs answers about business entities: which kinds exist, how they relate and which tables stand behind them.
- The knowledge graph must show up in the Databricks AI Playground or Genie One.
- Part of a domain must open to agents while the rest stays closed through a publishing policy.
- A structured selection across relations needs GraphQL over the graph.
Not a fit when
- There is no Databricks or Unity Catalog and the server is built around their data.
- A graph over arbitrary files with no Databricks is wanted.
- Python is older than 3.11: the server requires 3.11 or newer.
Example request
List the OntoBricks domains, pick the customers domain and describe the entity "Ivan Petrov" with its linked Unity Catalog tables.MCP
- Transport
- stdio, http
- Authentication
- OAuth
Environment variables
ONTOBRICKS_URL- Address of the main OntoBricks app, `http://localhost:8000` by default.
REGISTRY_CATALOG- Unity Catalog registry catalog when it is not set in the browser session.
REGISTRY_SCHEMA- Registry schema in the catalog.
Limitations
The server reads a graph that the main OntoBricks app builds in Databricks Apps, so a Databricks workspace, a registry catalog and a SQL warehouse are required. A domain is visible to the agent only with the API and MCP flag on, and only one domain version is active. The MCP server requires Python 3.11 or newer. The project comes from Databricks Labs, the README shows version 0.9.2 and interfaces still change. The last commit in the repository is from November 2026.
How to disable. Delete the `ontobricks` entry from the client MCP configuration (`.cursor/mcp.json` or `claude_desktop_config.json`) and stop the app in Databricks Apps.
FAQ
How do I connect OntoBricks to Cursor?
Add an `ontobricks` server to `.cursor/mcp.json` with the `python` command and the `src/mcp-server/mcp_server.py` argument, and set `cwd` to the repository directory.
Which tools does the server have?
Among them are `list_domains`, `select_domain`, `describe_ontology`, `list_entity_types`, `describe_entity`, `get_entity_context`, `get_graphql_schema` and `query_graphql`.
Why does the agent not see my domain?
A domain is visible only with the API and MCP flag on, and one active version is published. Set the version in the OntoBricks app under Registry.
How do I use it from the Databricks AI Playground?
The Playground opens a new session on every call, so `select_domain` is not kept. Pass `domain_name` on every call or set `MCP_DEFAULT_DOMAIN`.
How do I run the server over the network?
With `python src/mcp-server/mcp_server.py --http`: it listens on port 9100 over Streamable HTTP. In Databricks Apps the server is deployed with the app.
Discussion
No questions or reviews yet.
Related
MCP serversNVIDIA Auto Ontology semantic layer as an MCP server: SQL gets validated, facts land in a personal knowledge base.
ArcadeDB ships a built-in MCP server: an agent reads graph, document and vector data, and writes are opt-in.
A graph database with git-style branches: the server exposes it to agents over MCP at /mcp, and a skill teaches the agent schemas and queries
The official Graphlit MCP server: an agent collects material from Slack, GitHub, mail and websites into a knowledge base and searches it
An MCP server builds an ontology from a database schema and checks agent SQL before it runs, for PostgreSQL, Snowflake and more
A knowledge graph with an MCP server: the agent searches concepts by meaning and sees how well each is supported.
README in short
An MCP server for a knowledge graph over Unity Catalog where each domain sets what to give agents. It runs as the end user and supports GraphQL.