Skip to main content

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