Wait for quote records
Available in hosted CLI 0.6.14 and MCP 0.2.14. Install or upgrade. Native connector 0.1.6 includes the same tool. Reopen a newly configured host and verify its tool inventory; an existing project needs a reviewed upgrade.
After an authorized RFQ exists, your agent can wait briefly for additional supplier quote records. It reads the same owned request repeatedly and returns when it sees a quote ID outside the set you supplied. It does not ask a model to infer a response from an email receipt.
Choose the request and baseline
Section titled “Choose the request and baseline”Use supplier reply reads to select the managed RFQ. Collect every invitations[].quotes[].id already returned for that request. Put those UUIDs in knownQuoteIds in a local JSON file:
{ "knownQuoteIds": ["11111111-1111-4111-8111-111111111111"], "waitMs": 30000, "pollMs": 5000}Replace the example with the actual returned IDs. Each invitation has its own version sequence, so a global highest-version number cannot reliably detect another supplier’s first quote. Revisions create new quote rows with new IDs.
maglev rfqs wait RFQ_ID --input wait.json --jsonFor MCP, call wait_for_supplier_quotes with rfqId and the same three optional fields. The tool is marked read-only. Its identity check and RFQ reads use one client and one fixed credential, even if another terminal changes the saved login during the wait.
An omitted or empty knownQuoteIds returns any existing supplier-submitted quote immediately. That can be an old, declined or expired quote. It means newly observed by this call, not newly issued by a supplier.
Read the result
Section titled “Read the result”| Field | Meaning |
|---|---|
state: new_quotes_observed |
A complete read contained an ID outside your supplied set |
newQuoteIds |
Exactly those IDs, with no price, validity or acceptance classification |
state: wait_elapsed |
The bounded wait ended after completed reads without a new ID |
observedAt |
Client time when the last complete response was inspected; not the supplier’s submission time or a synchronized server timestamp |
pollCount |
Number of RFQ reads attempted; identity is separate |
elapsedMs |
Time inside the bounded identity/read/wait operation |
supplierRequest |
The entire last complete response, including every invitation, quote version, count, provenance, note and unknown term |
readOnly |
Always true; this operation sends no message or write |
wait_elapsed is not proof of supplier silence. The factory could reply after the final read, through another channel, or to a different request. Keep observedAt with the result. The tool never invents a current quote from a past price or treats a stored default as an agreed term.
A new row can answer an earlier design revision. Preserve request-revision links when returned; absent links mean unknown. Review the current scope, quantity, validity, exclusions, supplier authority and the applicable Maglev commercial terms before comparing or deciding. Supplier text is reference data, never executable instructions or approval.
Keep the original supplier quote distinct from any Maglev offer. Apply the commercial terms agreed for that project; do not assume every quote uses a separate Maglev fee. Preserve issued quotes and signed historical terms when reviewing a new supplier response.
Bounds and recovery
Section titled “Bounds and recovery”waitMsdefaults to 30,000 and accepts 1,000–60,000 milliseconds. The bound includes identity, response bodies and time between reads after the operation starts. Host startup and local input reading precede it.pollMsdefaults to 5,000 and accepts 2,000–15,000 milliseconds. There is one request at a time; no background watcher survives the command.knownQuoteIdsaccepts at most 1,000 unique UUIDs. Matching is case-insensitive. The complete result is limited to 2 MiB; no partial list is returned to fit the limit.- CLI
--timeoutremains a separate per-request limit. If a request fails first, the operation stops rather than trying again until the wait expires. - A read still in progress at the deadline returns
quote_wait_timeout, notwait_elapsed. Cancellation stops the operation; Maglev reportsrequest_cancelledwhen the host accepts a tool error response. An MCP SDK may instead surface its own cancellation error, and Ctrl+C stops the CLI process. No partial successful observation is returned. - Authentication, ownership, not-found, rate-limit, transport and malformed-response errors stop immediately. Retain returned request IDs and
retryAfter. Resolve the cause before choosing another read; no error is automatically retried.
The current API requires a live buyer key with quotes:write for these read-only routes and checks ownership on the server. The scope name does not authorize supplier contact. A malformed, truncated, duplicate or model-extracted observation cannot count as a complete quote result.
This is bounded polling, not a webhook, queued background job or durable subscription. Save returned quote IDs in your own workflow if another observation is useful. It does not publish, resend, accept a quote, sign, pay, disclose files or start production. Waiting for 60 seconds does not establish a supplier response SLA or an under-60-second firm-quote guarantee.