{"serverInfo":{"name":"765t-flow-hub","version":"d931b0478ab906aa7c0c78ebd93ea3af69ed210a"},"authentication":{"required":true,"schemes":["oauth2"]},"tools":[{"name":"flow_list_instances","title":"List Revit instances","description":"List this account's connected Revit instances and their open documents. The instanceId it returns is the reserved member every catalog tools/call requires; documentKey is required on document-scoped tools only (tools/list names each tool's scope).","inputSchema":{"type":"object","additionalProperties":false,"properties":{"channelBound":{"type":"boolean"},"include_disconnected":{"type":"boolean","description":"When true, list disconnected instances within the retirement window and include full diagnostic fields. Default false: list only connected heartbeat-fresh instances with compact fields."},"part":{"type":"integer","minimum":1},"textSha256":{"type":"string","pattern":"^[0-9a-f]{64}$"}},"dependentRequired":{"part":["textSha256"],"textSha256":["part"]}},"annotations":{"title":"List Revit instances","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}},{"name":"flow_read_result","title":"Read result part","description":"Follow an in_progress call with {callId}, or read one part of a parted answer with {callId, part, textSha256} verbatim from its `next` member (never form `part` or `textSha256` by hand). Also returns the full unprojected ExecutionResult of a compact_delta call via {callId, response_detail: \"full\"} (default \"full\").","inputSchema":{"type":"object","required":["callId"],"additionalProperties":false,"properties":{"callId":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$"},"part":{"type":"integer","minimum":1},"textSha256":{"type":"string","pattern":"^[0-9a-f]{64}$"},"response_detail":{"type":"string","enum":["compact_delta","full"]}}},"annotations":{"title":"Read result part","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"flow_report_issue","title":"Report an issue","description":"Report a bug, feedback or a feature request to the 765T Flow team. Call this tool only when the user asks you to report something or agrees a report should be sent — never on your own initiative. The `message` is the report; never include project data, model content, file paths or secrets. The answer returns the `reportId` reference the team tracks the report by.","inputSchema":{"type":"object","required":["kind","message"],"additionalProperties":false,"properties":{"kind":{"type":"string","enum":["bug","feedback","feature"],"description":"bug | feedback | feature"},"message":{"type":"string","minLength":1,"maxLength":4000,"description":"The report text — what happened, or what you suggest. Never project data, model content, file paths or secrets."},"context":{"type":"object","additionalProperties":false,"description":"Optional typed context for triage — the closed member set below; no free-form fields.","properties":{"toolName":{"type":"string","minLength":1,"maxLength":200},"errorCode":{"type":"string","minLength":1,"maxLength":200},"callId":{"type":"string","minLength":1,"maxLength":200},"instanceId":{"type":"string","minLength":1,"maxLength":200},"catalogVersion":{"type":"string","minLength":1,"maxLength":200},"clientApp":{"type":"string","minLength":1,"maxLength":200}}}}},"annotations":{"title":"Report an issue","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}},{"name":"flow_tools","title":"Browse tool catalog","description":"The 765T Flow catalog door. Call it with no arguments for the tool groups; with {group} for one group's members; with {tool} for one tool's exact input schema (the schema flow_call's arguments for that tool take, reserved members included) with its document scope, dry-run support and credit class; with {changes: {from, to?}} for the typed catalog-changelog/1 delta between two 64-hex catalogVersion hashes (to defaults to the single bound connector catalogVersion, or liveCatalogVersion when unbound); the engine_z group (z_* board tools, no instanceId or documentKey) is also served here. Names are matched exactly.","inputSchema":{"type":"object","additionalProperties":false,"properties":{"group":{"type":"string","description":"A group id from the no-argument answer"},"tool":{"type":"string","description":"An exact tool name"},"changes":{"type":"object","required":["from"],"additionalProperties":false,"description":"Compare two retained 64-hex catalogVersion hashes (to defaults to the single bound connector catalogVersion, or liveCatalogVersion when unbound)","properties":{"from":{"type":"string","pattern":"^[0-9a-f]{64}$"},"to":{"type":"string","pattern":"^[0-9a-f]{64}$"}}},"part":{"type":"integer","minimum":1},"textSha256":{"type":"string","pattern":"^[0-9a-f]{64}$"}},"dependentRequired":{"part":["textSha256"],"textSha256":["part"]}},"annotations":{"title":"Browse tool catalog","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"flow_call","title":"Run a catalog tool","description":"Execute one 765T Flow catalog tool by its exact name. `arguments` is exactly the arguments a direct call to that tool carries — the advertised input schema flow_tools answers for it, including the reserved members (instanceId always; documentKey where the tool is document-scoped; optional idempotencyKey and dryRun); for the engine_z group, a z_* call is {tool, arguments} with no instanceId or documentKey. Read the schema with flow_tools first; names never resolve by similarity. Mutating/review calls default to response_detail=\"compact_delta\" (<=350 tokens); pass response_detail=\"full\" or call flow_read_result {callId, response_detail: \"full\"} when full ExecutionResult fields are needed (read-only tools always return full results and omit response_detail).","inputSchema":{"type":"object","required":["tool","arguments"],"additionalProperties":false,"properties":{"tool":{"type":"string","description":"The exact catalog or engine_z (z_*) tool name (a listed hub tool name is refused)"},"arguments":{"type":"object","description":"The tool's own advertised arguments plus the reserved call members"}}},"annotations":{"title":"Run a catalog tool","readOnlyHint":false,"destructiveHint":true,"idempotentHint":false,"openWorldHint":false}},{"name":"flow_find","title":"Find a tool or guide","description":"Find the right 765T Flow tool, or the how-to, for a Revit job. Describe the job in plain words, in English or Vietnamese. The answer ranks tools and short guides; each result lists the tools it leads to. When the catalog has no tool for the job, `answer.kind` is `negative` and `answer.workaround` names the nearest tools and what to do instead. Results are ranked for you to choose from; before you call a tool a result names, read that result with flow_get: a how-to card states what the tool does beyond its schema. `reference` lists up to three sections of curated Revit playbooks on the topic: background to read, ranked by wording only. It never changes `answer.kind`, never lists a tool, and is not proof that the catalog has a tool for the job. Read-only: it never reads or changes a Revit model. Never put project data, model content, file paths or secrets in the query.","inputSchema":{"type":"object","required":["query"],"additionalProperties":false,"properties":{"query":{"type":"string","minLength":1,"maxLength":300,"pattern":"\\S"},"kinds":{"type":"array","minItems":1,"uniqueItems":true,"items":{"type":"string","enum":["revit-howto","flow-usage","recipe-note","domain-rule","standard-reference","capability-gap","craft","lesson","tool"]}},"limit":{"type":"integer","minimum":1,"maximum":10},"regionProfile":{"type":"string","enum":["iso_iec","en_eurocode","gost_sp","gb","tcvn_qcvn","us"]}}},"annotations":{"title":"Find a tool or guide","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"flow_get","title":"Read a guide","description":"Read one guide, tool entry or playbook section in full, by the `ref` flow_find returned for it. Pass the ref exactly as returned; never form one by hand. Omit `depth`, or pass 0, and the response is that document. Pass `depth` 1 or 2 to include its approved links. Read-only.","inputSchema":{"type":"object","required":["ref"],"additionalProperties":false,"properties":{"ref":{"type":"string","minLength":1,"maxLength":120},"depth":{"type":"integer","minimum":0,"maximum":2}}},"annotations":{"title":"Read a guide","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}}],"resources":[],"prompts":[]}