Quickstart
Connect an MCP client to Hum’s stateless Streamable HTTP endpoint:Connect
Adapt this connection setting to your client’s configuration format:tools/list returns all four tools:
check_availabilityvalidate_ordercreate_orderget_order
skill://order-internet-service/SKILL.md. Loading the skill
is optional; the tool descriptions and schemas contain the instructions needed to operate safely.
Complete workflow
The examples below show tool arguments, not raw HTTP requests. IDs are inert placeholders. Always use the exact opaque values returned to your client.1
Start availability
Call Do not send continuation fields with the initial address.
check_availability with one complete U.S. service address:2
Resolve clarification or questions
If Hum returns address candidates, ask the user to select one and continue with its exact ID:Add If Hum returns a current typed question set, collect the required answers without guessing and
send the set together:Use the answer keys and value types in the returned questions. Stale, missing, or extra answers can
be rejected.
unit only when the result requests it:3
Preserve partial results and poll
Present FCC findings as area-level reported coverage even when the live check is still running. If
the result says Polling the same lookup reads its current snapshot. It does not start another qualification.
checking, wait at least retry_after_seconds, then call:4
Choose an executable offer
Show the user the facts Hum returned, keeping unknown values unknown. A
catalog_plans item is
informational. Select only an item from offers that has orderable_through_hum: true, and keep its
exact offer_id.5
Start validation
Pass the selected executable offer and its lookup to This creates or refreshes a draft. It does not create an order or contact fulfillment.
validate_order:6
Provide only requested details
required_fields defines the checkout contract and may include fields already filled. Use
field_errors to find the actual missing or invalid values, reuse facts the customer already gave,
and ask only for what is still needed. Field-error paths are relative to details. Continue with
the exact checkout and current revision, with customer, installation, consents, and
internet_addons nested inside details:checking, wait at least retry_after_seconds and poll with only
checkout_id:details or expected_revision while polling: an edit increments the revision and
restarts validation. If a revision is stale, retrieve the checkout with only checkout_id, wait
while it is checking, then edit at the returned revision.If Hum returns equipment_options, show the name, price, included status, selection type, and
quantity limit. Send the customer’s complete selection in details.internet_addons using the
exact returned option IDs. Omit internet_addons to retain the current selection or initial
defaults; send [] to decline optional equipment. Select at most one radio option. If a
dependent option appears after its parent is selected, keep the parent in the complete selection.
Customer-owned equipment, included provider equipment, and optional paid equipment are distinct;
a free provider gateway does not satisfy a request to use customer-owned equipment. Match the
customer’s preference using the returned option names and catalog facts, or ask the customer to
choose when the requested option is unavailable.Use only self or professional for installation.type. When preferred dates are requested,
collect both choices with one of the exact local-time windows shown above. Record explicit true
or false choices for customer.preferences.paperless_billing and
customer.preferences.auto_pay; do not turn either preference on silently.7
Present the exact review
ready means the draft is technically valid; check it against the customer’s budget, minimum
speed, equipment, billing, and installation choices before asking for authorization. Present the
returned review without filling in unknown facts. Include the selected plan, product quantities
and line prices, monthly and one-time charges, total amount, bundle discount when returned,
conditions, contract terms, installation preferences, billing preferences, and consents. The
returned cart total is not necessarily the monthly bill or an amount due now. A requested
installation date is not a confirmed appointment. Do not repeat a service PIN, full date of birth,
or opaque checkout capability in customer-facing prose.If Hum reports changed or expired terms, follow the returned next_action and obtain a new review
and authorization before submission. Do not repeatedly start the same failed draft; a fresh
availability lookup is needed when the offer is unavailable or validation fails.8
Obtain authorization and submit once
Use your host’s approval mechanism to obtain authorization for the current review and
Keep the idempotency key stable for this exact intended order. Do not reuse it for different terms
or a different checkout.
terms_hash. Only then call create_order:9
Retrieve the outcome
Use the checkout ID to read the latest persisted evidence:Call
get_order after a normal submission and whenever the create_order response is lost,
times out, disconnects, or is otherwise uncertain. Retrieve first; do not create a new checkout or
blindly resubmit.Interpret the result
queued means Hum durably recorded the authorized order. Later states describe the fulfillment
submission evidence Hum has recorded. They do not confirm ISP acceptance, serviceability, an
installation appointment, or completed installation.
Read Ordering and recovery before presenting a
fulfillment status. See the tool reference for complete input variants,
fields, errors, and output schemas.
