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.
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.
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.
Copy1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142▐▛███▜▌ 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