brick-ontology-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@brick-ontology-mcpCheck if Chilled_Water_Thingy exists in Brick"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
brick-ontology-mcp
An MCP server that gives LLMs native access to the Brick Schema ontology — the open standard for describing building metadata (equipment, sensors, locations, and relationships).
Validate, search, and explore 1000+ Brick classes without leaving your AI coding assistant. Fully offline after install.
Why
If you work with smart building data, you've hit these problems:
Assigning classes that don't exist — RDF silently accepts
brick:Chilled_Water_Thingywithout complaintNot knowing what's available — with 1000+ classes, it's hard to find the right one
Reinventing existing classes — creating
My_Custom_Temp_SensorwhenZone_Air_Temperature_Sensoralready existsWrong specificity level — using
brick:Sensorwhen a more precise subclass is available
This MCP server solves all four by making any MCP-compatible client (Claude Code, Claude Desktop, Cursor, etc.) aware of the full Brick class hierarchy.
Related MCP server: node-opcua-modeler-mcp-server
Tools
Tool | What it does |
| Check if a class exists. Handles camelCase, spaces, typos — returns fuzzy suggestions if not found. |
| Search classes by keyword with optional category filter. |
| Get ancestors and/or descendants of a class. |
| List all classes under a category (Equipment, Sensor, Setpoint, etc.) as a tree. |
All tools are read-only and fully offline — the Brick ontology is bundled with the brickschema Python package. No API keys, no network calls.
Installation
From source
git clone https://github.com/ucl-sbde/brick-ontology-mcp.git
cd brick-ontology-mcp
pip install .Or with uv:
uv pip install .Configuration
Claude Code
Add to your project's .mcp.json:
{
"mcpServers": {
"brick-ontology": {
"command": "brick-ontology-mcp"
}
}
}Or globally in ~/.claude.json:
{
"mcpServers": {
"brick-ontology": {
"command": "brick-ontology-mcp"
}
}
}Claude Desktop
Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"brick-ontology": {
"command": "brick-ontology-mcp"
}
}
}Cursor
Add to .cursor/mcp.json in your project:
{
"mcpServers": {
"brick-ontology": {
"command": "brick-ontology-mcp"
}
}
}Example Usage
"Does this class exist?"
You: Assign
brick:Chilled_Water_Thingyto this valve
The LLM calls brick_validate_class("Chilled_Water_Thingy") and gets:
{
"exists": false,
"normalized_to": "Chilled_Water_Thingy",
"suggestions": [
{"class_name": "Chilled_Water_Valve", "similarity": 0.8},
{"class_name": "Chilled_Water_Pump", "similarity": 0.65}
]
}"What classes exist for temperature sensors?"
You: What types of temperature sensors does Brick have?
The LLM calls brick_search_classes("temperature sensor") and gets all matching classes with their categories and parent classes.
"Am I reinventing the wheel?"
You: I'll create a custom
Hot_Water_Supply_Tempclass
The LLM calls brick_search_classes("hot water temperature") and discovers Hot_Water_Supply_Temperature_Sensor already exists.
"What's the hierarchy?"
You: Where does Zone_Air_Temperature_Sensor sit in the ontology?
The LLM calls brick_get_hierarchy("Zone_Air_Temperature_Sensor", direction="ancestors") and gets:
Zone_Air_Temperature_Sensor
-> Air_Temperature_Sensor
-> Temperature_Sensor
-> Sensor
-> PointDevelopment
# Install with dev dependencies
pip install -e ".[dev]"
# Run tests
pytest tests/ -v
# Test the server with MCP Inspector
npx @modelcontextprotocol/inspector brick-ontology-mcpHow It Works
The server loads the Brick Schema ontology (v1.4+) at startup using the brickschema Python library. It pre-indexes all class names, parent/child relationships, and category assignments into in-memory data structures. Tool calls are sub-millisecond lookups against this index — no SPARQL queries at runtime for validation and search.
Built with FastMCP (the official MCP Python SDK).
License
MIT
This server cannot be deployed
Maintenance
Related MCP Connectors
Public read-only MCP access to digital learning concepts, semantic relationships, and citations.
MCP server for The Chancery Lane Project's climate-aligned contract clause knowledge graph.
MCP server for querying BrainKB, a knowledge base for neuroscience knowledge graphs.
EBI OLS4 MCP — Ontology Lookup Service.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceMCP servers for querying Brick and 223P ontologies, enabling abbreviation expansion, term/property lookup, and definition retrieval.5BSD 3-Clause
- AlicenseAqualityBmaintenanceProvides AI agents with offline access to OPC UA companion specification types, dependencies, and engineering units for industrial modeling.1184 npm2Apache 2.0
- AlicenseAqualityDmaintenanceA read-only BACnet/IP gateway that exposes building automation point databases to LLM agents via MCP, with Brick + Project Haystack semantic tagging at ingest time.426 PyPI1MIT
- FlicenseNot gradedqualityCmaintenanceProvides offline lookup of Mongolian eBarimt reference data — districts, VAT product codes, and GS1 classification codes — via MCP tools, enabling natural language queries for codes without needing a web UI or separate database.-