generated: '2026-07-27' method: derived status: candidate source: >- openapi/reposit-power-market-api-openapi.yml, openapi/reposit-power-customer-api-openapi.yml summary: >- No official or third-party MCP server for Reposit Power exists. Searched the web, the MCP registry and Reposit's own hosts on 2026-07-27; no mcp.* host resolves, no /.well-known/oauth-protected-resource is served, and no tools/list endpoint was found. This is a DERIVED candidate tool list mapped from the two published OpenAPI contracts — a design sketch for a future server, not a published one. It is deliberately split into a read tier and a control tier: eleven of the Market API operations command real power output on real Australian households, and any MCP exposure of them needs the escalation and human-in-the-loop contract captured in agentic-access/reposit-power-agentic-access.yml. transport: null endpoint: null registry_entry: null auth: market_api: scheme: apiKey header: Authorization format: 'Bearer ' self_serve: false customer_api: scheme: http bearer JWT obtained_via: POST /v2/auth/login/ with Reposit account credentials self_serve: false candidate_tools: - name: list_nodes description: List every node (household energy system) visible to the organisation, optionally expanding address, network, status and namePlate in place. maps_to: GET /api/nodes tier: read - name: get_node_address description: Get the street address and lat/long of one node. maps_to: GET /api/nodes/{nodeId}/address tier: read - name: get_node_network description: Get the National Metering Identifier (NMI) for one node. maps_to: GET /api/nodes/{nodeId}/network tier: read - name: get_node_status description: Get the latest operational status and last ping for one node. maps_to: GET /api/nodes/{nodeId}/status tier: read - name: get_node_nameplate description: Get rated battery capacity, battery power and inverter power for one node. maps_to: GET /api/nodes/{nodeId}/namePlate tier: read - name: list_node_events description: List state-change events for one node, newest first, paged with offset and limit. maps_to: GET /api/nodes/{nodeId}/events tier: read - name: list_power_stations description: List the organisation's power stations, optionally including predictions. maps_to: GET /api/powerstations tier: read - name: create_power_station description: Create a STATIC power station from a node list, or a DYNAMIC one from postcode/state filters. maps_to: POST /api/powerstations tier: control - name: get_power_station description: Get one power station by id. maps_to: GET /api/powerstations/{powerstationId} tier: read - name: update_power_station description: Update a power station's name, description and node membership. maps_to: PUT /api/powerstations/{powerstationId} tier: control - name: delete_power_station description: Delete a power station. maps_to: DELETE /api/powerstations/{powerstationId} tier: control - name: get_power_station_data description: Downsampled metrics for a power station or its nodes over a time window. maps_to: GET /api/powerstations/{powerstationId}/data tier: read - name: get_power_station_data_raw description: Raw, un-downsampled metrics for a power station or its nodes. maps_to: GET /api/powerstations/{powerstationId}/data/raw tier: read - name: get_power_station_data_latest description: Latest value per metric for a power station or its nodes, bounded by maxAge. maps_to: GET /api/powerstations/{powerstationId}/data/latest tier: read - name: get_fleet_data description: Downsampled metrics across the entire fleet. maps_to: GET /api/data tier: read - name: get_curtailment_constraints description: Return the curtailment capability envelope of a power station before issuing a curtailment. maps_to: GET /api/constraints/curtailments tier: read - name: list_curtailments description: List export curtailments, filterable by UPCOMING, COMPLETED, INPROGRESS or CANCELLED. maps_to: GET /api/curtailments tier: read - name: create_curtailment description: Create an export curtailment limiting a power station's real power for a duration. Commands real household hardware. maps_to: POST /api/curtailments tier: control consequence: safety-critical - name: get_curtailment description: Get one export curtailment including its node fan-out and acceptance counts. maps_to: GET /api/curtailments/{curtailmentId} tier: read - name: cancel_curtailment description: Cancel a scheduled curtailment. maps_to: POST /api/curtailments/{curtailmentId}/cancel tier: control - name: get_curtailment_setpoint description: Read the standing default curtailment setpoint for a power station. maps_to: GET /api/curtailments/setpoint tier: read - name: set_curtailment_setpoint description: Change the standing default curtailment setpoint for a power station. Commands real household hardware. maps_to: POST /api/curtailments/setpoint tier: control consequence: safety-critical - name: send_curtailment_heartbeat description: Send a curtailment heartbeat; nodes revert to default curtailment behaviour if the heartbeat is lost. maps_to: POST /api/curtailments/heartbeat tier: control - name: list_dispatches description: List dispatch/support requests, filterable by state. maps_to: GET /api/dispatches tier: read - name: create_dispatch description: Create a dispatch instructing a power station to deliver real power (and optionally a power factor). Commands real household hardware. maps_to: POST /api/dispatches tier: control consequence: safety-critical - name: get_dispatch description: Get one dispatch including prediction, response counts and node fan-out. maps_to: GET /api/dispatches/{dispatchId} tier: read - name: assign_capabilities description: Batch-assign customers (by NMI) to a capability and optionally change their tariff. maps_to: POST /api/capabilities tier: control - name: list_users description: List Reposit Fleet users attached to the calling organisation. maps_to: GET /api/users tier: read - name: list_userkeys description: List the battery-system userkeys attached to the authenticated Reposit customer account. maps_to: GET /v2/userkeys/ api: Customer API tier: read - name: get_deployment_components description: Get the hardware inventory of one household deployment. maps_to: GET /v2/deployments/{userkey}/components api: Customer API tier: read - name: get_battery_capacity description: Get the current battery capacity of one household deployment. maps_to: GET /v2/deployments/{userkey}/battery/capacity api: Customer API tier: read - name: get_battery_soc_history description: Get battery state of charge in kWh over a time window. maps_to: GET /v2/deployments/{userkey}/battery/historical/soc api: Customer API tier: read - name: get_solar_generation_history description: Get solar generation as negative real power in kW over a time window. maps_to: GET /v2/deployments/{userkey}/generation/historical/p api: Customer API tier: read - name: get_inverter_history description: Get battery-inverter real power in kW over a time window. maps_to: GET /v2/deployments/{userkey}/inverter/historical/p api: Customer API tier: read - name: get_house_consumption_history description: Get house consumption in kW over a time window. maps_to: GET /v2/deployments/{userkey}/house/historical api: Customer API tier: read - name: get_meter_history description: Get real power at the grid connection in kW over a time window. maps_to: GET /v2/deployments/{userkey}/meter/historical/p api: Customer API tier: read - name: get_gridcredits_history description: Get GridCredits earned in dollars over a time window. maps_to: GET /v2/deployments/{userkey}/gridcredits/historical api: Customer API tier: read excluded_operations: - operation: POST /v2/auth/login/ reason: Credential exchange belongs in the server's auth layer, not in a tool. - operation: POST /v2/auth/refresh/ reason: Token refresh belongs in the server's auth layer, not in a tool. coverage: rest_operations_total: 39 candidate_tools: 37 excluded: 2 notes: - >- Tool input schemas would inherit directly from each operation's parameters and requestBody in the referenced OpenAPI; neither spec declares operationIds, so the mapping above is by method and path. - >- No tool crosswalk artifact is emitted, because there is no published MCP server or GraphQL surface to cross-walk against — a crosswalk of a candidate list onto its own source operations would be tautological.