Example Use Cases
1. Chat with your building
Point a chat bot at Mapped MCP and let people ask questions in plain language — "How many rooms are occupied in Building A right now?" The agent turns the question into a Mapped GraphQL query, runs it, and answers from live building data. No dashboard, no query language — just a conversation with your building. Review the demo chat history below for an example.
2. Agentic app development
Describe the app you want and let the agent build it against your building data. Because Mapped MCP handles query generation and ontology lookups, your agent can scaffold real, data-backed features without you hand-writing GraphQL. Read You Describe It, AI Builds It — On Your Building Data for a walkthrough.
3. Scheduled reports from a plain-language brief
Write the report you want in a sentence — "Every Monday, summarize last week's peak occupancy and any zones that ran over their temperature setpoint" — and have a scheduled agent generate and run the queries, then produce the report on a cadence. The task description stays human-readable; Mapped MCP does the translation each time it runs.
Demo Conversation on Mapped Sandbox Data with an agent via Claude Code
▐▛███▜▌ Claude Code v2.1.215
▝▜█████▛▘ Opus 4.8 · Claude Team
▘▘ ▝▝
❯ list buildings
Called plugin:mapped-mcp:mapped (ctrl+o to expand)
● 1 building:
- Intellicare Infirmary (BLDG5o26DguWKu5T9nRvSYn5Em)
✻ Baked for 21s
❯ how many vavs are in the building?
Called plugin:mapped-mcp:mapped (ctrl+o to expand)
● 114 VAV boxes in Intellicare Infirmary.
✻ Brewed for 25s
❯ show vavs whose temperature deviates from their setpoints.
Read 2 files, called plugin:mapped-mcp:mapped (ctrl+o to expand)
● Structure is clear. Each VAV has a Zone Air Temperature Sensor plus
heating/cooling setpoints (a deadband). Let me flag zones outside their band.
Ran 1 shell command (ctrl+o to expand)
● 2 of 114 VAVs are outside their heating/cooling deadband:
┌──────────────────────────────────┬───────┬──────┬──────┬──────┬───────┐
│ VAV │ Zone │ Heat │ Cool │ │ Δ°C │
│ │ °C │ SP │ SP │ │ │
├──────────────────────────────────┼───────┼──────┼──────┼──────┼───────┤
│ Floor_3_Mechanical_VAV_Box │ 27.01 │ 18.3 │ 25.0 │ 🔴 │ +2.01 │
│ │ │ │ │ HOT │ │
├──────────────────────────────────┼───────┼──────┼──────┼──────┼───────┤
│ Floor_1_Operating_Room_3_VAV_Box │ 17.43 │ 18.1 │ 22.2 │ 🔵 │ −0.67 │
│ │ │ │ │ COLD │ │
└──────────────────────────────────┴───────┴──────┴──────┴──────┴───────┘
The other 112 zones are within their deadband (temp between heating and
cooling setpoint). Operating Room 3 running cold is worth a look given it's an
OR.
Deviation = zone air temp above the cooling setpoint or below the heating
setpoint. Data timestamp: 2026-07-17T04:07Z.
✻ Cooked for 1m 2s
❯ list rooms that are occupied now
Called plugin:mapped-mcp:mapped (ctrl+o to expand)
● 58 rooms occupied right now (occupant count > 0), 114 people total. Snapshot:
2026-07-17T04:12Z.
Floor 1 (30 rooms, 53 people)
┌──────────────────┬─────┬──────────────────┬─────┐
│ Room │ # │ Room │ # │
├──────────────────┼─────┼──────────────────┼─────┤
│ Cafe │ 9 │ Soil_Hold │ 1 │
├──────────────────┼─────┼──────────────────┼─────┤
│ Reception │ 4 │ Nourishment │ 1 │
├──────────────────┼─────┼──────────────────┼─────┤
│ Recovery_Room │ 3 │ Soil │ 1 │
├──────────────────┼─────┼──────────────────┼─────┤
│ Operating_Room_1 │ 2 │ Soil_Work │ 1 │
├──────────────────┼─────┼──────────────────┼─────┤
│ Operating_Room_2 │ 2 │ Humid │ 1 │
├──────────────────┼─────┼──────────────────┼─────┤
│ Operating_Room_3 │ 2 │ Scheduling │ 1 │
├──────────────────┼─────┼──────────────────┼─────┤
│ Procedure_Room │ 2 │ Pre-Op_Room_1 │ 1 │
├──────────────────┼─────┼──────────────────┼─────┤
│ Nurse_Station │ 2 │ Pre-Op_Room_2 │ 1 │
├──────────────────┼─────┼──────────────────┼─────┤
│ MRI_Room │ 2 │ Clean │ 1 │
├──────────────────┼─────┼──────────────────┼─────┤
│ Step_Down │ 2 │ MRI_Control_Room │ 1 │
├──────────────────┼─────┼──────────────────┼─────┤
│ Lobby │ 2 │ Dictation │ 1 │
├──────────────────┼─────┼──────────────────┼─────┤
│ Locker_Room │ 2 │ Anesthesia │ 1 │
├──────────────────┼─────┼──────────────────┼─────┤
│ Lounge │ 2 │ IT_Room │ 1 │
├──────────────────┼─────┼──────────────────┼─────┤
│ PACU │ 1 │ Office │ 1 │
├──────────────────┼─────┼──────────────────┼─────┤
│ Clean_Work │ 1 │ Dressing_Room │ 1 │
└──────────────────┴─────┴──────────────────┴─────┘
Floor 2 (19 rooms, 39 people)
┌───────────┬─────┬─────────────────┬─────┐
│ Room │ # │ Room │ # │
├───────────┼─────┼─────────────────┼─────┤
│ Reception │ 6 │ Exam_1 │ 2 │
├───────────┼─────┼─────────────────┼─────┤
│ Exam_7 │ 4 │ Exam_5 │ 2 │
├───────────┼─────┼─────────────────┼─────┤
│ X-Ray │ 4 │ Work │ 2 │
├───────────┼─────┼─────────────────┼─────┤
│ Exam_2 │ 3 │ Nurse_Station_1 │ 1 │
├───────────┼─────┼─────────────────┼─────┤
│ Exam_3 │ 3 │ Nurse_Station_2 │ 1 │
├───────────┼─────┼─────────────────┼─────┤
│ Exam_8 │ 2 │ Office │ 1 │
├───────────┼─────┼─────────────────┼─────┤
│ Exam_9 │ 2 │ Scheduling_1 │ 1 │
├───────────┼─────┼─────────────────┼─────┤
│ Exam_4 │ 1 │ Scheduling_2 │ 1 │
├───────────┼─────┼─────────────────┼─────┤
│ Exam_6 │ 1 │ Dictation │ 1 │
├───────────┼─────┼─────────────────┼─────┤
│ Lounge │ 1 │ │ │
└───────────┴─────┴─────────────────┴─────┘
Floor 3 (9 rooms, 22 people)
┌────────────────────┬─────┬───────────────┬─────┐
│ Room │ # │ Room │ # │
├────────────────────┼─────┼───────────────┼─────┤
│ Physical_Therapy_1 │ 6 │ Treatment │ 2 │
├────────────────────┼─────┼───────────────┼─────┤
│ Office │ 4 │ Locker │ 1 │
├────────────────────┼─────┼───────────────┼─────┤
│ Lounge │ 3 │ Dressing_Room │ 1 │
├────────────────────┼─────┼───────────────┼─────┤
│ Physical_Therapy_2 │ 3 │ Work │ 1 │
├────────────────────┼─────┼───────────────┼─────┤
│ Humid │ 1 │ │ │
└────────────────────┴─────┴───────────────┴─────┘
Occupancy read from each room's Occupancy_Count_Sensor (int64Value, per the
datatype=int rule). Rooms reading 0 are omitted.
✻ Churned for 2m 2s