HiLo.FM exposes a Model Context Protocol server so AI agents are first-class clients for forecast-modification management. The MCP layer is a thin adapter over the Ch. 08 API — same engine, same semantics — with tool descriptions written for an agent that has never seen this specification.
get_master_data reference reads.| Tool | Maps to | Notes |
|---|---|---|
list_entries | GET /entries | filters, pagination, state filter |
get_entry | GET /entries/{id} (+ /lo optional) | flag include_lo_sample returns first N LO rows |
create_entry | POST /entries | returns state + error_message + lo_row_count |
update_entry | PUT /entries/{id} | partial update semantics documented in tool description |
delete_entry | DELETE /entries/{id} | irreversible — description says so |
preview_disaggregation | POST /entries/preview | dry-run; nothing persisted |
redisaggregate_entry | POST /entries/{id}/disaggregate | |
query_lo | POST /lo/query | group-by + filters → aggregated cells; the reporting workhorse |
run_batch / get_batch_status | POST /batch/run · GET /batch/current|last | status merges live + last report |
get_master_data | GET /masterdata/… | hierarchy/attributes, locations, customers, calendar — reference reads for scope construction (read-only, D-23) |
regenerate_forecast | POST /admin/regenerate-forecast | DE-08; requires explicit confirm:true; sets all entries RequiresDisaggregation |
reset_demo | POST /admin/reset | requires explicit confirm:true parameter |
get_system_status | GET /admin/status | orientation call; cheap |
InError is a data outcome, not a tool
failure), and destructive-action warnings.state: "InError"
with the message. Descriptions MUST make this distinction explicit.query_lo returns aggregated cells, never raw base-grain dumps unless explicitly requested with
a row cap.get_master_data (resolve B1, Q4) → preview_disaggregation → create_entry → report resulting state and weekly totals.get_entry → relay error_message (names stage, rule, scope element per HE-08) → optionally propose fix and update_entry.query_lo with group-by [brand, month] → tabulate. (Volume by customer: only entry-level — GL-03; the tool description of query_lo repeats this.)regenerate_forecast (confirm) → run_batch → poll get_batch_status → summarise the DF-08 report.