HVAC Builder is an MCP server at https://hvacbuilder.app/api/mcp. Add it as a connector in any MCP-capable agent and approve it once; or send an API key as a bearer token. Every tool carries annotations: read-only tools compute or read and a client may run them without asking; the others create, and the ones marked destructive update or delete. Everything the app can do is a tool, or excused by name in the code — a guard holds every API route to one or the other.
| Tool | What it does |
|---|---|
list_component_kinds | Every component kind with its typed ports, required spec fields and a worked example. |
solve_system | Solve a graph at a design point. The same shape as POST /api/solve; a graph may nest saved or published systems. |
simulate_annual | Run a system flat out against a weather year and return the dashboards' numbers. |
save_system, list_saved_systems, get_saved_system, update_saved_system, delete_saved_system | Your saved systems, with their category and control strategy. Update is partial; a provided graph replaces the whole. |
list_buildings, get_building, save_building, update_building, delete_building, simulate_building | Your buildings and the examples, in full and editable — rooms with loads, schedules and humidity bounds, blocks with couplings, terminals and priorities — and a building run by id or inline, returning the result rather than a job id. |
search_catalog, get_catalog_item, list_refrigerants | Real equipment for a design: compressors slim by refrigerant and text (thousands of maps), the other kinds in full; one item with its coefficients and curves; the refrigerants the backend solves. |
match_suppliers, request_quotes, match_building_suppliers, request_building_quotes, my_quote_requests | Preview which suppliers could build a design or a building's machines, send them the request, and read what you have sent. |
my_published_systems, publish_system, update_published_system, unpublish_system | Suppliers: offerings in full — publish one (nesting your own systems, the examples, or another supplier's offering that allows reuse; published flattened), replace it, withdraw it. |
list_weather_datasets, list_tmy_cities, fetch_tmy_weather, import_weather_csv, create_weather_dataset | Your weather library: real TMY years for the listed cities, a CSV mapped by column names, a labelled synthetic year. |
list_supplier_presets, get_supplier_preset | Published supplier systems, filterable by category; one offering in full. |
my_account | Identity, tier, limits and tokens. |
fit_compressor_map | Turn a published performance table into AHRI 540 coefficients — capacity, power, mass flow, part-load steps — with fit quality per point. |
import_catalog_items | Suppliers: bulk-load up to 100 listings per call. |
my_vendor_profile, update_vendor_capabilities, my_leads | Suppliers: the profile with published counts; the capability profile that routes quote requests (kinds, system categories, envelope, refrigerants, regions); the RFQ leads. |
The OAuth flow: the client registers itself (RFC 7591, public clients, PKCE), sends you to approve it, and receives an access token good for 8 hours with a refresh token that rotates on use and lapses after 90 days. A re-authorisation replaces that client's grant; grants are listed and revoked under Connections & API keys. Neither a key nor a token can approve a further connection, change your plan or reach admin tools.