{"name":"Cyclone Machining Co. - the agent door","version":"2026-10-09","what_it_is":"A machine-readable quote request intake for a prototype and R&D machine shop in Grand Rapids, Michigan. One part is a real job here. Send what you have; a person reads it before anything is priced.","post":"/api/rfq","fields":{"name":"required, the person","email":"required, where the shop's reply goes","company":"optional","material":"optional, e.g. 6061 aluminum, 17-4 stainless, titanium, Inconel 718","quantity":"optional, one is normal here","needed_by":"optional, ISO date","description":"required, up to 8,000 characters: what the part does, what to hold, what exists (a STEP, a PDF, a broken sample)","files":"optional, [{name, bytes}] - names only; the answer to the request says where to send the files (no file link when export_controlled is yes or not sure)","no_drawing":"optional, true when the part itself is the drawing","agent":"optional, the name and version of the agent filing this","review_only":"optional, true to ask for a free engineer's review of the part: no quote is sent unless asked","sent_back":"optional, true when another shop sent the job back","sent_back_reason":"optional, up to 500 characters: why it was sent back (a reason alone marks the request as sent back)","export_controlled":"optional, one of no, yes, not sure: whether the part's data is export-controlled (ITAR or EAR). Yes or not sure: the answer gives no file link, and no files or controlled detail are sent until a person arranges a controlled channel"},"reply":{"ok":true,"request_id":"CM-AGENT-<id>","received":"ISO time","next":"a person reads it before anything is priced and replies to the email given","note":"the answer in words: the request id, where the reply goes, and where to send the files or why not yet","files_link":"where to send the files; absent when export_controlled is yes or not sure","mail_id":"the id of the mail to the shop"},"mcp":{"transport":"streamable-http (JSON-RPC 2.0 over POST to this same path)","tools":["file_quote_request","get_door_schema"]},"a2a":{"card":"https://for.cyclonemachining.com/.well-known/agent-card.json","binding":"JSON-RPC 2.0 over POST to this same path","methods":{"0.3":["message/send","tasks/get"],"1.0":["SendMessage","GetTask"]},"note":"a data part carries these fields and a text part becomes the description; the answer is a completed task whose id is the request id"},"openapi":"https://for.cyclonemachining.com/openapi.json","human_site":"https://cyclonemachining.com/rfq","llms":"https://cyclonemachining.com/llms.txt"}