XY Logo
Developer hub
Model Context Protocol

Bring XY tools into your AI client.

Connect a Streamable HTTP MCP client to catalog agents, custom requests, workflow authoring, browser development, Knowledge Bases, schedules, and governed operations through one scoped endpoint.

Quick start

Choose interactive sign-in or an API key.

Human-operated OAuth-capable clients can connect without copying a long-lived key. Service automation and clients without browser authorization can use an organization-scoped API key at the same endpoint.

Interactive OAuth

Recommended for people using an MCP client

  1. Add the production MCP URL without an Authorization header.
  2. Your client discovers XY authorization and opens a secure browser page.
  3. Sign in to XY, confirm the selected organization, review the effective access, and approve or deny it.
  4. Return to the client. It completes the connection and refreshes access as needed without exposing an API key to you.

Interactive sign-in and user access must be enabled for your organization. Contact XY if an OAuth-capable client cannot begin authorization.

Claude Code
claude mcp add --transport http --scope user xy 'https://mcp.xy.ai/mcp'
OAuth-capable client configuration
{
  "mcpServers": {
    "xy": {
      "type": "http",
      "url": "https://mcp.xy.ai/mcp"
    }
  }
}

Personal or service API key

For services and noninteractive clients

Create a key under Organization settings → API Keys, grant only the scopes this job needs, and resolve the complete value from a private process environment.

Choose a Personal key when a person is operating the client. Calls remain bound to that user's current membership and workflow permissions.

Choose a Service key for unattended automation. Calls identify the service credential and organization rather than a human user.

API-key client configuration
{
  "mcpServers": {
    "xy": {
      "type": "http",
      "url": "https://mcp.xy.ai/mcp",
      "headers": {
        "Authorization": "Bearer ${XY_API_KEY}"
      }
    }
  }
}

When using the API-key path, do not place the key in a shared configuration file. ResolveXY_API_KEYfrom an OS keychain, secret manager, or private process environment.

Do not paste portal passwords, TOTP seeds, or PINs into an AI conversation. An authorized person can add them directly in Password Vault, or a trusted backend can provision an API-managed entry through REST with organization-service access. Grant MCP credentials:read to discover only safe visible metadata, then use the exact returned credential ID. If zero or multiple entries match, the client must ask instead of guessing. See the Credentials and MFA guide.

Capabilities

Tools are discovered from the live server.

Your client negotiates the current tool catalog and input schemas through MCPtools/liston connection. That live response includes only tools whose required scopes are present on the current OAuth grant or API key, so the model does not spend context on operations it cannot call.

Catalog agents

Discover and install catalog agents, start hosted authorization handoffs, inspect installation readiness, and execute agents.

Knowledge Base

Add, inspect, complete, and delete indexed sources, then run evidence-backed questions.

Integration Factory

Extend an organization-owned integration, inspect durable runs, explicitly test generated read or write capabilities, and advance validation and organization-only promotion. Brand-new creation and private uploads start through REST.

Planner agent

Build, review, test, export, and explicitly promote reusable workflows.

Browser Studio

Develop browser steps in retained authoring sessions with scoped controls.

Queue UI Designer

Release preview: not yet generally available. Once the required routes and tools are deployed, design eligible workflow queues and publish saved versions after human review or explicitly scoped system approval. Check the live contract before use.

Analytics

Query existing analytics with dashboards:read. Release preview: dashboards:propose separately enables exact-workflow dashboard proposals using registered governed query refs, stopping at PREVIEW_READY for human review in XY. No MCP approval or publication.

Schedules

Inspect and operate recurring compiled-workflow schedules.

Run observability

Read safe execution phases. Shared planner progress release preview adds ordered durable phase, tool, artifact, and approval events. Save each cursor with its run identity; bounded polling works even when a host does not display progress notifications.

Runtime credentials

Discover safe metadata for visible Password Vault references and bind exact IDs without returning stored values. Add secrets in the UI or through trusted REST, not an AI conversation.

For the shared progress release preview, long-running starts return run_idimmediately. Use bounded event polling from the live catalog; notifications are optional. Reconstruct snapshot, replay, then tail in sequence order, discard duplicates, and save the last applied cursor with its exact run/stream identity. A disconnected client does not cancel the worker. Read existing state after ambiguous output instead of repeating a mutation. See durable Planner progress.

dashboard_proposal_start and dashboard_proposal_get are a release preview for proposals bound to one active workflow and, for edits, both the base dashboard and immutable base version. dashboards:propose is an explicit opt-in, separate from dashboards:read; retired dashboards:writegrants nothing. Personal keys and OAuth use the current human's analytics seat, both dashboard capability grants, exact workflow configure permission, and edit-time dashboard view permission. System keys act as managed organization service principals and are bounded by organization feature flags plus their explicitly selected scope, not human grants. Neither can approve or publish an analytics dashboard through public MCP proposal tools.

Compose only registered governed query refs. Missing metrics return GOVERNED_QUERY_REQUIRED, not permission to author arbitrary queries. Proposals stop at PREVIEW_READY; use the returned review_version_idto open the exact version for human approval and publication in XY. Queue UI has a separate lifecycle; its system approval tool cannot approve analytics dashboards. See REST examples and governance requirements.

Common workflows

Connect tools in resource order.

MCP exposes primitives, not an invisible second lifecycle. These sequences show which resource must exist before the next tool can run; inspect every returned state and schema instead of assuming the happy path.

For queue previews, human review or system approval, publication, and rollback, follow the Queue UI Designer guide. This workflow is a release preview, not yet generally available. Verify the required routes and tools in the live references before attempting it. Automated system approval is recorded separately from human review. Use a system API key, not personal OAuth, for approval automation.

Match tasks and continue into configuration

catalog_discover_agents → catalog_match_tasks → custom_agent_request_create → custom_agent_request_get

Send one to eight work descriptions without choosing agent IDs first. Feasibility and catalog fit are separate. Customer labor inputs describe current labor value, not XY pricing. Comparable history can provide a daily cost reference at observed workload; optional expected run or item volume can provide a compatible monthly operating-cost estimate. Read basis and coverage; null means unavailable, not free. These estimates are not selling prices or guaranteed savings. Ask which suggestions to pursue, then retain the original description and selected IDs in the request. Customer-specific requirements still need configuration before XY builds.

Run a catalog agent

catalog_list_agents → catalog_get_agent → agent_install → installation_get → agent_execution_start → agent_execution_get

If installation_get returns an authorization action, complete that hosted handoff before execution.

Create a Knowledge Base from a URL

catalog_get_agent → agent_install → knowledge_source_add_url → knowledge_sources_list → installation_get → agent_execution_start → agent_execution_get

Add a public HTTPS source, wait for indexing to finish, then execute a question.

Create a Knowledge Base from a file

catalog_get_agent → agent_install → knowledge_source_create_file_upload → knowledge_source_complete_upload → knowledge_sources_list → installation_get → agent_execution_start → agent_execution_get

Upload the file bytes to the signed URL directly, complete the upload, then wait for indexing before execution.

Build a browser workflow

planner_start_build → planner_get_events → planner_get_build → planner_respond_to_plan → planner_get_events → browser_create_session → browser_prompt / browser_run_command → browser_apply_draft → planner_test_step → planner_accept_step → planner_promote → workflow_execute

Whole-plan approval requires API 1.4.0; confirm the operation in your environment's API reference or MCP catalog. Read the build: status awaiting_input plus planner_state.awaiting_plan_approval means review the plan. With planner:write, call planner_respond_to_plan with build_id, action APPROVE or REJECT, state_version, and idempotency_key; REJECT also requires a nonblank comment. MCP state_version maps to REST expected_state_version. Poll the same build/events for the queued command's outcome before generating or testing steps. After ambiguous output, read instead of repeating the mutation; reuse a key only for an exact request replay, and re-read a stale version. Optionally pass an organization-owned recording as context.recorded_task_id to planner_start_build. Browser Studio authors one proposed browser step; Planner tests and accepts it separately. Personal or system keys can approve an accessible build's plan, without publication authority. Promotion needs planner:promote through a system API key or a separately authorized personal MCP OAuth grant. Personal API keys cannot hold that scope. Queue UI publication is separate and requires prior human review or explicitly scoped system approval; personal OAuth cannot grant Queue UI API approval.

Reconnect to an existing Planner build

planner_get_build → planner_get_events / planner_wait_for_events

Read the same public build after an interrupted command. Replay and tail with the cursor for that exact stream; shared progress uses per-run sequences, not interchangeable build cursors. Apply ordered events once and save the cursor after applying them. Use bounded polling even when the host omits progress notifications. Do not restart work or repeat ACCEPT to reconnect; a completed turn is not approval or publication.

Propose a governed analytics dashboard

dashboard_proposal_start → dashboard_proposal_get

Release preview: dashboards:propose is sensitive and opt-in, separate from dashboards:read; retired dashboards:write grants nothing. Bind the exact active workflow and one immutable base_dashboard_version_id for an edit; the service derives and validates its dashboard. Personal/OAuth callers need an analytics seat, both dashboard capability grants, exact workflow configure permission, and edit-time dashboard view permission. System keys act as managed organization service principals and are bounded by organization feature flags plus their selected scope, not human grants. Start returns run_id immediately. Use bounded event polling from the shared progress catalog, preserving each run's cursor; never repeat a mutation after ambiguous output without operation-specific replay proof. Only registered governed query refs are allowed; missing metrics stop with GOVERNED_QUERY_REQUIRED. Proposals stop at PREVIEW_READY and return review_version_id. A human must review, approve, and publish the exact version in the XY web app. No API/MCP approval or publication is exposed; Queue UI tools do not apply.

Render metrics for one production workflow

workflow_metric_dashboards_list → workflow_metric_dashboard_get

XY must first grant the API identity analytics-only view access to that exact workflow definition. The returned tile data and visualization metadata are for rendering in your own UI.

Design an existing workflow queue

queue_ui_list_targets → queue_ui_start_design → queue_ui_get_design → queue_ui_get_events → queue_ui_list_versions → queue_ui_get_version → queue_ui_send_message → queue_ui_publish

Use personal Queue UI access with explicit workflow permissions or a system key with organization authorization. For human review, a person approves the exact design version and hash in the web app. Publish takes that DESIGN version ID and compares expected_live_version_id with the PUBLICATION receipt in session.publication.live_version_id. Publish cannot approve. Send a message only when another revision is needed.

Approve and publish a queue with a system key

queue_ui_get_design → queue_ui_get_version → queue_ui_approve → queue_ui_publish

System API-key access only: explicitly grant queue_ui:read, queue_ui:approve, and queue_ui:publish. Inspect the version and validation, then approve its exact design ID and returned resolved_yaml_hash with the observed live publication receipt. Publish separately with that receipt. Approval is audited as a system decision, never human review; stop on a conflict. Personal OAuth cannot use the approval stage.

Ask XY to deliver an agent

custom_agent_request_create → custom_agent_request_get → custom_agent_request_message

Create a request and retain its ID/form URL. The customer can complete the hosted form, or XY can gather the remaining requirements with them. Submission is not workflow execution.

Submit approved tasks as partially completed requests

custom_agent_request_submit_bulk → custom_agent_request_get → custom_agent_request_deployments → custom_agent_request_usage

Submit 1–50 names and descriptions with a stable batch idempotency key. Preserve each returned task_id, request_id and form_url. These requests are partially configured; nothing is built or executed automatically. Keep the same request ID through review and delivery. Usage returns recorded period totals, not complete billing.

Receive daily results and workflow alerts

webhook_configuration → webhook_subscription_create → webhook_subscription_test → webhook_deliveries_list

Use a public HTTPS receiver and explicit webhooks:read/write grants, or configure the same receiver in XY Settings. Save the one-time signing secret securely; it is not an API key. Select workflow IDs for run completion/failure or daily results, and declared review states for human-review alerts. Daily reports use local timezone/send time. New-item counts are not successful-processing counts; current queues are backlog at report time. Verify signatures and deduplicate event IDs. Request usage updates replace totals for their period; never add corrections together.

Live reference

Current MCP tools and input schemas.

This catalog is read from the production MCP registry at request time and refreshed every minute. Tool additions and schema changes appear here after the MCP deployment without a website release.

This public reference shows every available tool contract. An authenticatedtools/listresponse is narrower: it omits tools the current OAuth grant or API key cannot call.

MCP covers catalog discovery, installations, starting and inspecting hosted authorization handoffs, Knowledge Base sources, agent executions, custom-agent requests, the Planner agent, Browser Studio, credentials, on-demand promoted workflow executions, schedules, run phases, usage, and read-only analytics. Dashboard proposals and shared durable Planner progress are release previews; confirm their tools in the live catalog. Analytics dashboard approval and publication remain human web actions. Review-item decisions and approved agent or installation metrics remain direct REST operations. Explicitly granted workflow definitions also expose approved metric views throughworkflow_metric_dashboards_listandworkflow_metric_dashboard_get.

146 live tools

Showing 146 of 146 tools

agent_execution_getPoll one catalog-agent execution for status and its stable result.
Input schema
{
  "properties": {
    "execution_id": {
      "maxLength": 500,
      "minLength": 1,
      "pattern": "^[A-Za-z0-9_.:-]+$",
      "title": "Execution Id",
      "type": "string"
    }
  },
  "required": [
    "execution_id"
  ],
  "title": "agent_execution_getArguments",
  "type": "object"
}
agent_execution_startStart an asynchronous run of an installed catalog agent.
Input schema
{
  "properties": {
    "installation_id": {
      "maxLength": 500,
      "minLength": 1,
      "pattern": "^[A-Za-z0-9_.:-]+$",
      "title": "Installation Id",
      "type": "string"
    },
    "input": {
      "additionalProperties": true,
      "title": "Input",
      "type": "object"
    },
    "metadata": {
      "anyOf": [
        {
          "additionalProperties": true,
          "type": "object"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Metadata"
    },
    "idempotency_key": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Idempotency Key"
    }
  },
  "required": [
    "installation_id",
    "input"
  ],
  "title": "agent_execution_startArguments",
  "type": "object"
}
agent_executions_listList organization-scoped catalog-agent executions.
Input schema
{
  "properties": {
    "status": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Status"
    },
    "agent_id": {
      "anyOf": [
        {
          "maxLength": 500,
          "minLength": 1,
          "pattern": "^[A-Za-z0-9_.:-]+$",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Agent Id"
    },
    "installation_id": {
      "anyOf": [
        {
          "maxLength": 500,
          "minLength": 1,
          "pattern": "^[A-Za-z0-9_.:-]+$",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Installation Id"
    },
    "limit": {
      "default": 25,
      "maximum": 100,
      "minimum": 1,
      "title": "Limit",
      "type": "integer"
    },
    "offset": {
      "default": 0,
      "minimum": 0,
      "title": "Offset",
      "type": "integer"
    }
  },
  "title": "agent_executions_listArguments",
  "type": "object"
}
agent_installInstall an entitled catalog agent using its returned setup schema.
Input schema
{
  "properties": {
    "agent_id": {
      "maxLength": 500,
      "minLength": 1,
      "pattern": "^[A-Za-z0-9_.:-]+$",
      "title": "Agent Id",
      "type": "string"
    },
    "configuration": {
      "additionalProperties": true,
      "title": "Configuration",
      "type": "object"
    },
    "agent_version": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Agent Version"
    },
    "idempotency_key": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Idempotency Key"
    }
  },
  "required": [
    "agent_id",
    "configuration"
  ],
  "title": "agent_installArguments",
  "type": "object"
}
agent_uninstallRetire an installation and free the name it holds for reuse. Use this to clear a failed or superseded installation. Without it a Knowledge Base name stays claimed by the definition the install created, and every later install under that name fails with KNOWLEDGE_BASE_NAME_CONFLICT. Idempotent.
Input schema
{
  "properties": {
    "installation_id": {
      "maxLength": 500,
      "minLength": 1,
      "pattern": "^[A-Za-z0-9_.:-]+$",
      "title": "Installation Id",
      "type": "string"
    }
  },
  "required": [
    "installation_id"
  ],
  "title": "agent_uninstallArguments",
  "type": "object"
}
authoring_acceptExplicitly accept exact draft receipts after user review. Include at least one workflow-spec receipt returned by authoring_drafts; acceptance never publishes or starts a Planner build.
Input schema
{
  "$defs": {
    "AuthoringArtifactReference": {
      "additionalProperties": false,
      "properties": {
        "artifact_id": {
          "maxLength": 500,
          "minLength": 1,
          "title": "Artifact Id",
          "type": "string"
        },
        "artifact_version_id": {
          "maxLength": 500,
          "minLength": 1,
          "title": "Artifact Version Id",
          "type": "string"
        },
        "version": {
          "minimum": 1,
          "title": "Version",
          "type": "integer"
        },
        "kind": {
          "enum": [
            "discovery-spec",
            "workflow-spec",
            "dashboard-spec",
            "testing-agreement"
          ],
          "title": "Kind",
          "type": "string"
        },
        "content_hash": {
          "maxLength": 128,
          "minLength": 32,
          "title": "Content Hash",
          "type": "string"
        },
        "review_status": {
          "enum": [
            "DRAFT",
            "FINALIZED"
          ],
          "title": "Review Status",
          "type": "string"
        }
      },
      "required": [
        "artifact_id",
        "artifact_version_id",
        "version",
        "kind",
        "content_hash",
        "review_status"
      ],
      "title": "AuthoringArtifactReference",
      "type": "object"
    }
  },
  "properties": {
    "authoring_id": {
      "description": "The authoring session's id (starts with sess_auth_).",
      "maxLength": 200,
      "minLength": 16,
      "pattern": "^sess_auth_[A-Za-z0-9_-]+$",
      "title": "Authoring Id",
      "type": "string"
    },
    "artifact_versions": {
      "items": {
        "$ref": "#/$defs/AuthoringArtifactReference"
      },
      "maxItems": 20,
      "minItems": 1,
      "title": "Artifact Versions",
      "type": "array"
    },
    "resource_version": {
      "exclusiveMinimum": 0,
      "title": "Resource Version",
      "type": "integer"
    },
    "idempotency_key": {
      "maxLength": 200,
      "minLength": 1,
      "title": "Idempotency Key",
      "type": "string"
    }
  },
  "required": [
    "authoring_id",
    "artifact_versions",
    "resource_version",
    "idempotency_key"
  ],
  "title": "authoring_acceptArguments",
  "type": "object"
}
authoring_cancelRequest cooperative cancellation of active authoring work while retaining its conversation and immutable drafts. Use the latest resource_version and keep the same idempotency key when retrying an ambiguous response.
Input schema
{
  "properties": {
    "authoring_id": {
      "description": "The authoring session's id (starts with sess_auth_).",
      "maxLength": 200,
      "minLength": 16,
      "pattern": "^sess_auth_[A-Za-z0-9_-]+$",
      "title": "Authoring Id",
      "type": "string"
    },
    "resource_version": {
      "exclusiveMinimum": 0,
      "title": "Resource Version",
      "type": "integer"
    },
    "idempotency_key": {
      "maxLength": 200,
      "minLength": 1,
      "title": "Idempotency Key",
      "type": "string"
    }
  },
  "required": [
    "authoring_id",
    "resource_version",
    "idempotency_key"
  ],
  "title": "authoring_cancelArguments",
  "type": "object"
}
authoring_discardExplicitly discard exact draft receipts while retaining the conversation and audit history. This cannot be inferred from a revision request.
Input schema
{
  "$defs": {
    "AuthoringArtifactReference": {
      "additionalProperties": false,
      "properties": {
        "artifact_id": {
          "maxLength": 500,
          "minLength": 1,
          "title": "Artifact Id",
          "type": "string"
        },
        "artifact_version_id": {
          "maxLength": 500,
          "minLength": 1,
          "title": "Artifact Version Id",
          "type": "string"
        },
        "version": {
          "minimum": 1,
          "title": "Version",
          "type": "integer"
        },
        "kind": {
          "enum": [
            "discovery-spec",
            "workflow-spec",
            "dashboard-spec",
            "testing-agreement"
          ],
          "title": "Kind",
          "type": "string"
        },
        "content_hash": {
          "maxLength": 128,
          "minLength": 32,
          "title": "Content Hash",
          "type": "string"
        },
        "review_status": {
          "enum": [
            "DRAFT",
            "FINALIZED"
          ],
          "title": "Review Status",
          "type": "string"
        }
      },
      "required": [
        "artifact_id",
        "artifact_version_id",
        "version",
        "kind",
        "content_hash",
        "review_status"
      ],
      "title": "AuthoringArtifactReference",
      "type": "object"
    }
  },
  "properties": {
    "authoring_id": {
      "description": "The authoring session's id (starts with sess_auth_).",
      "maxLength": 200,
      "minLength": 16,
      "pattern": "^sess_auth_[A-Za-z0-9_-]+$",
      "title": "Authoring Id",
      "type": "string"
    },
    "artifact_versions": {
      "items": {
        "$ref": "#/$defs/AuthoringArtifactReference"
      },
      "maxItems": 20,
      "minItems": 1,
      "title": "Artifact Versions",
      "type": "array"
    },
    "resource_version": {
      "exclusiveMinimum": 0,
      "title": "Resource Version",
      "type": "integer"
    },
    "idempotency_key": {
      "maxLength": 200,
      "minLength": 1,
      "title": "Idempotency Key",
      "type": "string"
    }
  },
  "required": [
    "authoring_id",
    "artifact_versions",
    "resource_version",
    "idempotency_key"
  ],
  "title": "authoring_discardArguments",
  "type": "object"
}
authoring_draftsList exact immutable draft receipts available for review. Present their business meaning to the user and retain the complete receipt for a later accept or discard decision.
Input schema
{
  "properties": {
    "authoring_id": {
      "description": "The authoring session's id (starts with sess_auth_).",
      "maxLength": 200,
      "minLength": 16,
      "pattern": "^sess_auth_[A-Za-z0-9_-]+$",
      "title": "Authoring Id",
      "type": "string"
    }
  },
  "required": [
    "authoring_id"
  ],
  "title": "authoring_draftsArguments",
  "type": "object"
}
authoring_eventsRead durable, user-safe progress after an optional opaque cursor. Summarize meaningful progress near the user's request and continue until a terminal or input-required state; do not dump raw event names.
Input schema
{
  "properties": {
    "authoring_id": {
      "description": "The authoring session's id (starts with sess_auth_).",
      "maxLength": 200,
      "minLength": 16,
      "pattern": "^sess_auth_[A-Za-z0-9_-]+$",
      "title": "Authoring Id",
      "type": "string"
    },
    "after": {
      "anyOf": [
        {
          "maxLength": 2000,
          "minLength": 1,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "After"
    },
    "limit": {
      "default": 100,
      "maximum": 200,
      "minimum": 1,
      "title": "Limit",
      "type": "integer"
    }
  },
  "required": [
    "authoring_id"
  ],
  "title": "authoring_eventsArguments",
  "type": "object"
}
authoring_getReconnect to one durable workflow-design conversation. Use the returned plain-language status, questions, drafts, handoff, and resource_version; do not expose implementation fields unless the user asks for debugging details.
Input schema
{
  "properties": {
    "authoring_id": {
      "description": "The authoring session's id (starts with sess_auth_).",
      "maxLength": 200,
      "minLength": 16,
      "pattern": "^sess_auth_[A-Za-z0-9_-]+$",
      "title": "Authoring Id",
      "type": "string"
    }
  },
  "required": [
    "authoring_id"
  ],
  "title": "authoring_getArguments",
  "type": "object"
}
authoring_messagesReplay the retained user and assistant conversation after an optional opaque cursor. Preserve next_cursor across reconnects; message history is not a model transcript or reasoning log.
Input schema
{
  "properties": {
    "authoring_id": {
      "description": "The authoring session's id (starts with sess_auth_).",
      "maxLength": 200,
      "minLength": 16,
      "pattern": "^sess_auth_[A-Za-z0-9_-]+$",
      "title": "Authoring Id",
      "type": "string"
    },
    "after": {
      "anyOf": [
        {
          "maxLength": 2000,
          "minLength": 1,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "After"
    },
    "limit": {
      "default": 100,
      "maximum": 200,
      "minimum": 1,
      "title": "Limit",
      "type": "integer"
    }
  },
  "required": [
    "authoring_id"
  ],
  "title": "authoring_messagesArguments",
  "type": "object"
}
authoring_sendAnswer a business question or request a revision in ordinary language. Reuse the exact authoring_id and latest resource_version returned by the server. Source references are appended by default; replacement is explicit.
Input schema
{
  "$defs": {
    "CredentialReference": {
      "additionalProperties": false,
      "properties": {
        "type": {
          "const": "credential",
          "title": "Type",
          "type": "string"
        },
        "credential_id": {
          "maxLength": 500,
          "minLength": 1,
          "title": "Credential Id",
          "type": "string"
        },
        "domain": {
          "anyOf": [
            {
              "maxLength": 500,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Domain"
        },
        "display_name": {
          "anyOf": [
            {
              "maxLength": 500,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Display Name"
        }
      },
      "required": [
        "type",
        "credential_id"
      ],
      "title": "CredentialReference",
      "type": "object"
    },
    "ExistingWorkflowReference": {
      "additionalProperties": false,
      "properties": {
        "type": {
          "const": "workflow_version",
          "title": "Type",
          "type": "string"
        },
        "workflow_definition_id": {
          "maxLength": 500,
          "minLength": 1,
          "title": "Workflow Definition Id",
          "type": "string"
        },
        "workflow_version_id": {
          "description": "Exact immutable version; a mutable workflow name is insufficient.",
          "maxLength": 500,
          "minLength": 1,
          "title": "Workflow Version Id",
          "type": "string"
        }
      },
      "required": [
        "type",
        "workflow_definition_id",
        "workflow_version_id"
      ],
      "title": "ExistingWorkflowReference",
      "type": "object"
    },
    "InputArtifactReference": {
      "additionalProperties": false,
      "properties": {
        "type": {
          "const": "artifact_version",
          "title": "Type",
          "type": "string"
        },
        "artifact_id": {
          "maxLength": 500,
          "minLength": 1,
          "title": "Artifact Id",
          "type": "string"
        },
        "artifact_version_id": {
          "maxLength": 500,
          "minLength": 1,
          "title": "Artifact Version Id",
          "type": "string"
        },
        "content_hash": {
          "maxLength": 128,
          "minLength": 32,
          "title": "Content Hash",
          "type": "string"
        }
      },
      "required": [
        "type",
        "artifact_id",
        "artifact_version_id",
        "content_hash"
      ],
      "title": "InputArtifactReference",
      "type": "object"
    },
    "RecordedTaskReference": {
      "additionalProperties": false,
      "properties": {
        "type": {
          "const": "recorded_task",
          "title": "Type",
          "type": "string"
        },
        "recorded_task_id": {
          "maxLength": 500,
          "minLength": 1,
          "title": "Recorded Task Id",
          "type": "string"
        },
        "display_name": {
          "anyOf": [
            {
              "maxLength": 500,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Display Name"
        }
      },
      "required": [
        "type",
        "recorded_task_id"
      ],
      "title": "RecordedTaskReference",
      "type": "object"
    },
    "UploadedFileReference": {
      "additionalProperties": false,
      "properties": {
        "type": {
          "const": "uploaded_file",
          "title": "Type",
          "type": "string"
        },
        "file_id": {
          "maxLength": 500,
          "minLength": 1,
          "title": "File Id",
          "type": "string"
        },
        "file_name": {
          "maxLength": 500,
          "minLength": 1,
          "title": "File Name",
          "type": "string"
        },
        "content_type": {
          "maxLength": 200,
          "minLength": 1,
          "title": "Content Type",
          "type": "string"
        },
        "content_hash": {
          "anyOf": [
            {
              "maxLength": 128,
              "minLength": 32,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Digest only; file bytes remain in the owned object store.",
          "title": "Content Hash"
        }
      },
      "required": [
        "type",
        "file_id",
        "file_name",
        "content_type"
      ],
      "title": "UploadedFileReference",
      "type": "object"
    }
  },
  "properties": {
    "authoring_id": {
      "description": "The authoring session's id (starts with sess_auth_).",
      "maxLength": 200,
      "minLength": 16,
      "pattern": "^sess_auth_[A-Za-z0-9_-]+$",
      "title": "Authoring Id",
      "type": "string"
    },
    "message": {
      "maxLength": 200000,
      "minLength": 1,
      "title": "Message",
      "type": "string"
    },
    "resource_version": {
      "exclusiveMinimum": 0,
      "title": "Resource Version",
      "type": "integer"
    },
    "idempotency_key": {
      "maxLength": 200,
      "minLength": 1,
      "title": "Idempotency Key",
      "type": "string"
    },
    "source_references": {
      "anyOf": [
        {
          "items": {
            "discriminator": {
              "mapping": {
                "artifact_version": "#/$defs/InputArtifactReference",
                "credential": "#/$defs/CredentialReference",
                "recorded_task": "#/$defs/RecordedTaskReference",
                "uploaded_file": "#/$defs/UploadedFileReference",
                "workflow_version": "#/$defs/ExistingWorkflowReference"
              },
              "propertyName": "type"
            },
            "oneOf": [
              {
                "$ref": "#/$defs/UploadedFileReference"
              },
              {
                "$ref": "#/$defs/RecordedTaskReference"
              },
              {
                "$ref": "#/$defs/ExistingWorkflowReference"
              },
              {
                "$ref": "#/$defs/CredentialReference"
              },
              {
                "$ref": "#/$defs/InputArtifactReference"
              }
            ]
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Source References"
    },
    "source_reference_mode": {
      "default": "append",
      "enum": [
        "append",
        "replace"
      ],
      "title": "Source Reference Mode",
      "type": "string"
    }
  },
  "required": [
    "authoring_id",
    "message",
    "resource_version",
    "idempotency_key"
  ],
  "title": "authoring_sendArguments",
  "type": "object"
}
authoring_startStart generic Marketplace authoring in the API key's organization. This is not the STAFF cross-organization CIE Planner entry point. For customer meetings, evidence, specifications, changelogs, or CIE skills, use internal_cie_authoring_start with an explicit organization instead. Attach exact recording, file, credential, workflow-version, or artifact references only when already known. Save the returned session_id (pass it as authoring_id) and resource_version, then follow authoring_events or authoring_get while work is running.
Input schema
{
  "$defs": {
    "CredentialReference": {
      "additionalProperties": false,
      "properties": {
        "type": {
          "const": "credential",
          "title": "Type",
          "type": "string"
        },
        "credential_id": {
          "maxLength": 500,
          "minLength": 1,
          "title": "Credential Id",
          "type": "string"
        },
        "domain": {
          "anyOf": [
            {
              "maxLength": 500,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Domain"
        },
        "display_name": {
          "anyOf": [
            {
              "maxLength": 500,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Display Name"
        }
      },
      "required": [
        "type",
        "credential_id"
      ],
      "title": "CredentialReference",
      "type": "object"
    },
    "ExistingWorkflowReference": {
      "additionalProperties": false,
      "properties": {
        "type": {
          "const": "workflow_version",
          "title": "Type",
          "type": "string"
        },
        "workflow_definition_id": {
          "maxLength": 500,
          "minLength": 1,
          "title": "Workflow Definition Id",
          "type": "string"
        },
        "workflow_version_id": {
          "description": "Exact immutable version; a mutable workflow name is insufficient.",
          "maxLength": 500,
          "minLength": 1,
          "title": "Workflow Version Id",
          "type": "string"
        }
      },
      "required": [
        "type",
        "workflow_definition_id",
        "workflow_version_id"
      ],
      "title": "ExistingWorkflowReference",
      "type": "object"
    },
    "InputArtifactReference": {
      "additionalProperties": false,
      "properties": {
        "type": {
          "const": "artifact_version",
          "title": "Type",
          "type": "string"
        },
        "artifact_id": {
          "maxLength": 500,
          "minLength": 1,
          "title": "Artifact Id",
          "type": "string"
        },
        "artifact_version_id": {
          "maxLength": 500,
          "minLength": 1,
          "title": "Artifact Version Id",
          "type": "string"
        },
        "content_hash": {
          "maxLength": 128,
          "minLength": 32,
          "title": "Content Hash",
          "type": "string"
        }
      },
      "required": [
        "type",
        "artifact_id",
        "artifact_version_id",
        "content_hash"
      ],
      "title": "InputArtifactReference",
      "type": "object"
    },
    "RecordedTaskReference": {
      "additionalProperties": false,
      "properties": {
        "type": {
          "const": "recorded_task",
          "title": "Type",
          "type": "string"
        },
        "recorded_task_id": {
          "maxLength": 500,
          "minLength": 1,
          "title": "Recorded Task Id",
          "type": "string"
        },
        "display_name": {
          "anyOf": [
            {
              "maxLength": 500,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Display Name"
        }
      },
      "required": [
        "type",
        "recorded_task_id"
      ],
      "title": "RecordedTaskReference",
      "type": "object"
    },
    "UploadedFileReference": {
      "additionalProperties": false,
      "properties": {
        "type": {
          "const": "uploaded_file",
          "title": "Type",
          "type": "string"
        },
        "file_id": {
          "maxLength": 500,
          "minLength": 1,
          "title": "File Id",
          "type": "string"
        },
        "file_name": {
          "maxLength": 500,
          "minLength": 1,
          "title": "File Name",
          "type": "string"
        },
        "content_type": {
          "maxLength": 200,
          "minLength": 1,
          "title": "Content Type",
          "type": "string"
        },
        "content_hash": {
          "anyOf": [
            {
              "maxLength": 128,
              "minLength": 32,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Digest only; file bytes remain in the owned object store.",
          "title": "Content Hash"
        }
      },
      "required": [
        "type",
        "file_id",
        "file_name",
        "content_type"
      ],
      "title": "UploadedFileReference",
      "type": "object"
    }
  },
  "properties": {
    "message": {
      "maxLength": 200000,
      "minLength": 1,
      "title": "Message",
      "type": "string"
    },
    "idempotency_key": {
      "maxLength": 200,
      "minLength": 1,
      "title": "Idempotency Key",
      "type": "string"
    },
    "name": {
      "anyOf": [
        {
          "maxLength": 500,
          "minLength": 1,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Name"
    },
    "source_references": {
      "anyOf": [
        {
          "items": {
            "discriminator": {
              "mapping": {
                "artifact_version": "#/$defs/InputArtifactReference",
                "credential": "#/$defs/CredentialReference",
                "recorded_task": "#/$defs/RecordedTaskReference",
                "uploaded_file": "#/$defs/UploadedFileReference",
                "workflow_version": "#/$defs/ExistingWorkflowReference"
              },
              "propertyName": "type"
            },
            "oneOf": [
              {
                "$ref": "#/$defs/UploadedFileReference"
              },
              {
                "$ref": "#/$defs/RecordedTaskReference"
              },
              {
                "$ref": "#/$defs/ExistingWorkflowReference"
              },
              {
                "$ref": "#/$defs/CredentialReference"
              },
              {
                "$ref": "#/$defs/InputArtifactReference"
              }
            ]
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Source References"
    }
  },
  "required": [
    "message",
    "idempotency_key"
  ],
  "title": "authoring_startArguments",
  "type": "object"
}
authoring_submitHand one explicitly accepted immutable Workflow Spec to the governed request lifecycle. target=workflow_request creates a reviewable request; target=planner_build additionally requires agent_requests:approve and starts exactly one Planner build. Retry an ambiguous response with the same idempotency key and resource version.
Input schema
{
  "properties": {
    "authoring_id": {
      "description": "The authoring session's id (starts with sess_auth_).",
      "maxLength": 200,
      "minLength": 16,
      "pattern": "^sess_auth_[A-Za-z0-9_-]+$",
      "title": "Authoring Id",
      "type": "string"
    },
    "workflow_spec_version_id": {
      "maxLength": 500,
      "minLength": 1,
      "title": "Workflow Spec Version Id",
      "type": "string"
    },
    "target": {
      "enum": [
        "workflow_request",
        "planner_build"
      ],
      "title": "Target",
      "type": "string"
    },
    "resource_version": {
      "exclusiveMinimum": 0,
      "title": "Resource Version",
      "type": "integer"
    },
    "idempotency_key": {
      "maxLength": 200,
      "minLength": 1,
      "title": "Idempotency Key",
      "type": "string"
    }
  },
  "required": [
    "authoring_id",
    "workflow_spec_version_id",
    "target",
    "resource_version",
    "idempotency_key"
  ],
  "title": "authoring_submitArguments",
  "type": "object"
}
browser_api_map_buildBuild or update this organization's OpenAPI-style map from captured calls.
Input schema
{
  "properties": {
    "browser_id": {
      "description": "The browser's id (starts with bas_), returned by browser_create_session.",
      "maxLength": 128,
      "minLength": 5,
      "pattern": "^bas_[A-Za-z0-9_-]+$",
      "title": "Browser Id",
      "type": "string"
    },
    "host": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Host"
    },
    "url_contains": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Url Contains"
    },
    "method": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Method"
    }
  },
  "required": [
    "browser_id"
  ],
  "title": "browser_api_map_buildArguments",
  "type": "object"
}
browser_api_map_getRead this organization's saved endpoint map as a tree, OpenAPI, or both.
Input schema
{
  "properties": {
    "browser_id": {
      "description": "The browser's id (starts with bas_), returned by browser_create_session.",
      "maxLength": 128,
      "minLength": 5,
      "pattern": "^bas_[A-Za-z0-9_-]+$",
      "title": "Browser Id",
      "type": "string"
    },
    "host": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Host"
    },
    "format": {
      "default": "both",
      "enum": [
        "tree",
        "openapi",
        "both"
      ],
      "title": "Format",
      "type": "string"
    }
  },
  "required": [
    "browser_id"
  ],
  "title": "browser_api_map_getArguments",
  "type": "object"
}
browser_apply_draftSend the Browser Studio draft through the existing Planner step test path.
Input schema
{
  "properties": {
    "browser_id": {
      "description": "The browser's id (starts with bas_), returned by browser_create_session.",
      "maxLength": 128,
      "minLength": 5,
      "pattern": "^bas_[A-Za-z0-9_-]+$",
      "title": "Browser Id",
      "type": "string"
    },
    "edited_code": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Edited Code"
    }
  },
  "required": [
    "browser_id"
  ],
  "title": "browser_apply_draftArguments",
  "type": "object"
}
browser_cancel_promptCancel the current Browser Copilot authoring turn.
Input schema
{
  "properties": {
    "browser_id": {
      "description": "The browser's id (starts with bas_), returned by browser_create_session.",
      "maxLength": 128,
      "minLength": 5,
      "pattern": "^bas_[A-Za-z0-9_-]+$",
      "title": "Browser Id",
      "type": "string"
    }
  },
  "required": [
    "browser_id"
  ],
  "title": "browser_cancel_promptArguments",
  "type": "object"
}
browser_cdp_commandRun raw page-target CDP; it may expose cookies or page secrets.
Input schema
{
  "properties": {
    "browser_id": {
      "description": "The browser's id (starts with bas_), returned by browser_create_session.",
      "maxLength": 128,
      "minLength": 5,
      "pattern": "^bas_[A-Za-z0-9_-]+$",
      "title": "Browser Id",
      "type": "string"
    },
    "method": {
      "title": "Method",
      "type": "string"
    },
    "params": {
      "anyOf": [
        {
          "additionalProperties": true,
          "type": "object"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Params"
    },
    "tab_id": {
      "anyOf": [
        {
          "exclusiveMinimum": 0,
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Tab Id"
    }
  },
  "required": [
    "browser_id",
    "method"
  ],
  "title": "browser_cdp_commandArguments",
  "type": "object"
}
browser_close_sessionClose a retained browser session and release its capacity allocation.
Input schema
{
  "properties": {
    "browser_id": {
      "description": "The browser's id (starts with bas_), returned by browser_create_session.",
      "maxLength": 128,
      "minLength": 5,
      "pattern": "^bas_[A-Za-z0-9_-]+$",
      "title": "Browser Id",
      "type": "string"
    }
  },
  "required": [
    "browser_id"
  ],
  "title": "browser_close_sessionArguments",
  "type": "object"
}
browser_create_sessionStart a Browser Studio session for interactive browser work. Returns scoped live view URLs. Present the vnc_url to the user immediately: 'Watch the browser live: <url>'. The user opens it once and all subsequent browser commands are visible in that same window in real time. Pass the returned session_id as browser_id to the other browser tools.
Input schema
{
  "properties": {
    "build_id": {
      "maxLength": 200,
      "minLength": 6,
      "pattern": "^pbld_[A-Za-z0-9_-]+$",
      "title": "Build Id",
      "type": "string"
    },
    "step_number": {
      "exclusiveMinimum": 0,
      "title": "Step Number",
      "type": "integer"
    },
    "url": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Url"
    },
    "credential_id": {
      "anyOf": [
        {
          "maxLength": 128,
          "minLength": 1,
          "pattern": "^[A-Za-z0-9_-]+$",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Credential Id"
    },
    "recorded_task_id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Recorded Task Id"
    },
    "existing_code": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Existing Code"
    }
  },
  "required": [
    "build_id",
    "step_number"
  ],
  "title": "browser_create_sessionArguments",
  "type": "object"
}
browser_endpoint_observer_setStart or stop capturing API requests made by this browser session.
Input schema
{
  "properties": {
    "browser_id": {
      "description": "The browser's id (starts with bas_), returned by browser_create_session.",
      "maxLength": 128,
      "minLength": 5,
      "pattern": "^bas_[A-Za-z0-9_-]+$",
      "title": "Browser Id",
      "type": "string"
    },
    "enabled": {
      "default": true,
      "title": "Enabled",
      "type": "boolean"
    },
    "tab_id": {
      "anyOf": [
        {
          "exclusiveMinimum": 0,
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Tab Id"
    }
  },
  "required": [
    "browser_id"
  ],
  "title": "browser_endpoint_observer_setArguments",
  "type": "object"
}
browser_get_draftRead the reusable browser activity draft from a retained session.
Input schema
{
  "properties": {
    "browser_id": {
      "description": "The browser's id (starts with bas_), returned by browser_create_session.",
      "maxLength": 128,
      "minLength": 5,
      "pattern": "^bas_[A-Za-z0-9_-]+$",
      "title": "Browser Id",
      "type": "string"
    }
  },
  "required": [
    "browser_id"
  ],
  "title": "browser_get_draftArguments",
  "type": "object"
}
browser_get_sessionRead session state and refresh its viewer/controller capabilities. When this is the first live view for the active browser step, present the refreshed vnc_url immediately as a clickable link. Otherwise keep using the same user-visible browser window for follow-up commands. Never display the raw capability token or URL parameters.
Input schema
{
  "properties": {
    "browser_id": {
      "description": "The browser's id (starts with bas_), returned by browser_create_session.",
      "maxLength": 128,
      "minLength": 5,
      "pattern": "^bas_[A-Za-z0-9_-]+$",
      "title": "Browser Id",
      "type": "string"
    }
  },
  "required": [
    "browser_id"
  ],
  "title": "browser_get_sessionArguments",
  "type": "object"
}
browser_list_toolsList safe Browser Studio authoring commands.
Input schema
{
  "properties": {},
  "title": "browser_list_toolsArguments",
  "type": "object"
}
browser_observed_endpoint_getRead one captured request and response after secret-field redaction.
Input schema
{
  "properties": {
    "browser_id": {
      "description": "The browser's id (starts with bas_), returned by browser_create_session.",
      "maxLength": 128,
      "minLength": 5,
      "pattern": "^bas_[A-Za-z0-9_-]+$",
      "title": "Browser Id",
      "type": "string"
    },
    "storage_path": {
      "maxLength": 200,
      "minLength": 35,
      "pattern": "^local://observed-endpoint/ep_[A-Za-z0-9_-]+$",
      "title": "Storage Path",
      "type": "string"
    }
  },
  "required": [
    "browser_id",
    "storage_path"
  ],
  "title": "browser_observed_endpoint_getArguments",
  "type": "object"
}
browser_observed_endpoints_listList a compact, redacted index of API requests captured in this session.
Input schema
{
  "properties": {
    "browser_id": {
      "description": "The browser's id (starts with bas_), returned by browser_create_session.",
      "maxLength": 128,
      "minLength": 5,
      "pattern": "^bas_[A-Za-z0-9_-]+$",
      "title": "Browser Id",
      "type": "string"
    },
    "url_contains": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Url Contains"
    },
    "method": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Method"
    },
    "status_code": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Status Code"
    },
    "start_time": {
      "anyOf": [
        {
          "minimum": 0,
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Start Time"
    },
    "end_time": {
      "anyOf": [
        {
          "minimum": 0,
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "End Time"
    },
    "limit": {
      "default": 25,
      "maximum": 25,
      "minimum": 1,
      "title": "Limit",
      "type": "integer"
    }
  },
  "required": [
    "browser_id"
  ],
  "title": "browser_observed_endpoints_listArguments",
  "type": "object"
}
browser_promptAsk Browser Studio to author or revise reusable browser activity code.
Input schema
{
  "properties": {
    "browser_id": {
      "description": "The browser's id (starts with bas_), returned by browser_create_session.",
      "maxLength": 128,
      "minLength": 5,
      "pattern": "^bas_[A-Za-z0-9_-]+$",
      "title": "Browser Id",
      "type": "string"
    },
    "prompt": {
      "title": "Prompt",
      "type": "string"
    }
  },
  "required": [
    "browser_id",
    "prompt"
  ],
  "title": "browser_promptArguments",
  "type": "object"
}
browser_recorded_tasks_listFind browser recordings for an FDE implementation build. Search by the name a person sees, recorded-task ID, or domain. Pass the exact recorded_task_id from one unambiguous match to planner_start_build as context.recorded_task_id. Ask the user when zero or multiple entries match; never guess. The response never contains code, transcripts, screenshots, recordings, secrets, owner IDs, or Firestore document IDs. Do not use this for CIE meeting evidence or artifact work. CIE reads organization-scoped recordings with internal_recorded_tasks_* and attaches them to internal_cie_authoring_start or internal_cie_authoring_send.
Input schema
{
  "properties": {
    "query": {
      "anyOf": [
        {
          "maxLength": 200,
          "minLength": 1,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Query"
    },
    "limit": {
      "default": 50,
      "maximum": 200,
      "minimum": 1,
      "title": "Limit",
      "type": "integer"
    }
  },
  "title": "browser_recorded_tasks_listArguments",
  "type": "object"
}
browser_run_commandRun one safe Browser Studio command in a retained session.
Input schema
{
  "properties": {
    "browser_id": {
      "description": "The browser's id (starts with bas_), returned by browser_create_session.",
      "maxLength": 128,
      "minLength": 5,
      "pattern": "^bas_[A-Za-z0-9_-]+$",
      "title": "Browser Id",
      "type": "string"
    },
    "tool": {
      "title": "Tool",
      "type": "string"
    },
    "input": {
      "anyOf": [
        {
          "additionalProperties": true,
          "type": "object"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Input"
    },
    "tab_id": {
      "anyOf": [
        {
          "exclusiveMinimum": 0,
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Tab Id"
    },
    "url": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Url"
    }
  },
  "required": [
    "browser_id",
    "tool"
  ],
  "title": "browser_run_commandArguments",
  "type": "object"
}
browser_set_controlSwitch a browser session between human and shared control.
Input schema
{
  "properties": {
    "browser_id": {
      "description": "The browser's id (starts with bas_), returned by browser_create_session.",
      "maxLength": 128,
      "minLength": 5,
      "pattern": "^bas_[A-Za-z0-9_-]+$",
      "title": "Browser Id",
      "type": "string"
    },
    "mode": {
      "enum": [
        "human",
        "shared"
      ],
      "title": "Mode",
      "type": "string"
    }
  },
  "required": [
    "browser_id",
    "mode"
  ],
  "title": "browser_set_controlArguments",
  "type": "object"
}
catalog_discover_agentsBrowse XY use cases and a bounded page of third-party software. These are broad agent categories, not installed or immediately executable agents. Cost evidence and workflow implementation details are not part of the catalog. XY cards may include icon_url: a monochrome SVG for your UI to recolor as a CSS mask. Use a fallback when null; no color argument is needed. external_listings separately contains cached public Microsoft/AWS software metadata with provider/source links and optional logo_url for display. A logo is a product/publisher image, not an XY avatar; null needs a fallback. Check external_catalogs for freshness and unavailable providers; missing feeds do not mean no such product exists. XY cards are returned together; external listings default to 25 per page (maximum 100). Follow external_pagination.next_offset using external_offset, optionally filter by external_provider. If catalog_version changes between pages, restart paging. Matching searches the full cache, not only this page.
Input schema
{
  "properties": {
    "external_provider": {
      "anyOf": [
        {
          "enum": [
            "microsoft",
            "aws"
          ],
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "External Provider"
    },
    "external_limit": {
      "default": 25,
      "maximum": 100,
      "minimum": 1,
      "title": "External Limit",
      "type": "integer"
    },
    "external_offset": {
      "default": 0,
      "maximum": 12000,
      "minimum": 0,
      "title": "External Offset",
      "type": "integer"
    }
  },
  "title": "catalog_discover_agentsArguments",
  "type": "object"
}
catalog_get_agentInspect one catalog agent, including exact setup and input schemas.
Input schema
{
  "properties": {
    "agent_id": {
      "maxLength": 500,
      "minLength": 1,
      "pattern": "^[A-Za-z0-9_.:-]+$",
      "title": "Agent Id",
      "type": "string"
    }
  },
  "required": [
    "agent_id"
  ],
  "title": "catalog_get_agentArguments",
  "type": "object"
}
catalog_list_agentsList published agent versions entitled to this organization.
Input schema
{
  "properties": {},
  "title": "catalog_list_agentsArguments",
  "type": "object"
}
catalog_match_tasksAssess 1-8 plain-language tasks and suggest current Discover use cases. Do not choose an agent first: describe the work, inputs, systems, constraints, and desired outcome. A task name is optional, echoed for display, and ignored for matching. Task IDs are optional caller-owned correlation handles and never influence matching. Each result separates agentizability (whether XY can automate the work) from zero to four scored catalog matches (which current cards fit); the two scores are not interchangeable. Matches can be many-to-many and cross-industry. Optionally include monthly customer labor inputs. The returned labor_value is deterministic human-cost context, not an XY price, quote, or guaranteed savings, and it does not affect model scores. A result can be agentizable with no current match. After the user chooses suggested cards—or chooses to proceed without one—use custom_agent_request_create to capture the customer-specific configuration required before build and execution. With no workload estimate, a match with recent XY cost history returns a reference daily operating cost at a comparable deployment's observed workload. It is not a customer-specific amount. Optionally provide expected_items_per_month for primary work items (e.g. claims or payments), or expected_runs_per_month for workflow invocations. These are separate from labor work units. When comparable XY history is sufficient, volume yields one indicative monthly operating_cost_estimate; item-volume evidence takes precedence when both inputs are supplied. Missing evidence yields null, never an invented zero. Raw cost evidence is not exposed. Neither estimate is a quote or guaranteed savings. Alongside XY matches, external_matches may suggest relevant cached public Microsoft/AWS listings. These remain separate from XY matches and never include an XY operating-cost estimate or deployment capability. Follow their source links; do not pass external listing IDs as XY selections when creating a workflow request. Discovery does not purchase, configure, or deploy third-party software. Check external_catalogs for feed coverage.
Input schema
{
  "$defs": {
    "DiscoveryLaborBaseline": {
      "additionalProperties": false,
      "description": "Customer-supplied human effort for one task, normalized to one month.",
      "properties": {
        "human_hours_per_month": {
          "description": "Current human hours spent on this task in a typical month.",
          "exclusiveMinimum": 0,
          "maximum": 1000000,
          "title": "Human Hours Per Month",
          "type": "number"
        },
        "fully_loaded_hourly_cost_usd": {
          "description": "Current fully loaded hourly labor cost in USD, including salary, benefits, and employer overhead.",
          "exclusiveMinimum": 0,
          "maximum": 1000000,
          "title": "Fully Loaded Hourly Cost Usd",
          "type": "number"
        },
        "remaining_human_hours_per_month": {
          "anyOf": [
            {
              "maximum": 1000000,
              "minimum": 0,
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Expected monthly human review and escalation hours after automation. Omit when this has not been estimated.",
          "title": "Remaining Human Hours Per Month"
        },
        "work_units_per_month": {
          "anyOf": [
            {
              "exclusiveMinimum": 0,
              "maximum": 1000000000,
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Optional current monthly task volume, used only to express the human labor value per work unit.",
          "title": "Work Units Per Month"
        }
      },
      "required": [
        "human_hours_per_month",
        "fully_loaded_hourly_cost_usd"
      ],
      "title": "DiscoveryLaborBaseline",
      "type": "object"
    },
    "DiscoveryTask": {
      "additionalProperties": false,
      "properties": {
        "id": {
          "anyOf": [
            {
              "maxLength": 100,
              "minLength": 1,
              "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Optional caller-owned correlation handle. Omit it to receive task-1, task-2, and so on. It is never shown to the matching model.",
          "title": "Id"
        },
        "name": {
          "anyOf": [
            {
              "maxLength": 200,
              "minLength": 1,
              "pattern": "\\S",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Optional human-readable task title, echoed in the result for display. Matching uses the description, not this title.",
          "title": "Name"
        },
        "description": {
          "description": "Plain-language work description including useful inputs, actions, systems, constraints, and desired outcome. Do not name a catalog agent.",
          "maxLength": 2000,
          "minLength": 1,
          "pattern": "\\S",
          "title": "Description",
          "type": "string"
        },
        "labor_baseline": {
          "anyOf": [
            {
              "$ref": "#/$defs/DiscoveryLaborBaseline"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Optional customer labor inputs for deterministic human labor-value math. These values do not affect LLM scores and are not XY pricing."
        },
        "expected_runs_per_month": {
          "anyOf": [
            {
              "exclusiveMinimum": 0,
              "maximum": 1000000,
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Optional expected monthly workflow executions for an indicative XY operating-cost projection. A customer work item is not necessarily one workflow run.",
          "title": "Expected Runs Per Month"
        },
        "expected_items_per_month": {
          "anyOf": [
            {
              "exclusiveMinimum": 0,
              "maximum": 100000000,
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Optional expected monthly primary work items (such as claims or payments), not workflow runs. Item-normalized estimates are returned only when XY has comparable governed item-volume and cost history for the matched use case.",
          "title": "Expected Items Per Month"
        }
      },
      "required": [
        "description"
      ],
      "title": "DiscoveryTask",
      "type": "object"
    }
  },
  "properties": {
    "tasks": {
      "items": {
        "$ref": "#/$defs/DiscoveryTask"
      },
      "maxItems": 8,
      "minItems": 1,
      "title": "Tasks",
      "type": "array"
    }
  },
  "required": [
    "tasks"
  ],
  "title": "catalog_match_tasksArguments",
  "type": "object"
}
credentials_createCreate a secure credential reference without echoing secrets.
Input schema
{
  "properties": {
    "domain": {
      "title": "Domain",
      "type": "string"
    },
    "site_name": {
      "title": "Site Name",
      "type": "string"
    },
    "username": {
      "title": "Username",
      "type": "string"
    },
    "password": {
      "title": "Password",
      "type": "string"
    },
    "login_url": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Login Url"
    },
    "totp": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Totp"
    },
    "pin": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Pin"
    },
    "sms_phone_type": {
      "default": "voip",
      "enum": [
        "voip",
        "real_sim"
      ],
      "title": "Sms Phone Type",
      "type": "string"
    },
    "notes": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Notes"
    }
  },
  "required": [
    "domain",
    "site_name",
    "username",
    "password"
  ],
  "title": "credentials_createArguments",
  "type": "object"
}
credentials_getRead one visible Password Vault reference without secret material.
Input schema
{
  "properties": {
    "credential_id": {
      "maxLength": 128,
      "minLength": 1,
      "pattern": "^[A-Za-z0-9_-]+$",
      "title": "Credential Id",
      "type": "string"
    }
  },
  "required": [
    "credential_id"
  ],
  "title": "credentials_getArguments",
  "type": "object"
}
credentials_listList visible Password Vault references without secrets. Match on site_name, domain, and username, then pass the exact credential_id to Planner. Integration Factory still requires an API-managed reference created through credentials_create. Ask the user when zero or multiple entries match; never guess a credential.
Input schema
{
  "properties": {},
  "title": "credentials_listArguments",
  "type": "object"
}
credentials_revokeRevoke a credential, delete its vault secret, and invalidate sessions.
Input schema
{
  "properties": {
    "credential_id": {
      "maxLength": 128,
      "minLength": 1,
      "pattern": "^[A-Za-z0-9_-]+$",
      "title": "Credential Id",
      "type": "string"
    }
  },
  "required": [
    "credential_id"
  ],
  "title": "credentials_revokeArguments",
  "type": "object"
}
credentials_rotateReplace a stored secret and revoke sessions using the old version.
Input schema
{
  "properties": {
    "credential_id": {
      "maxLength": 128,
      "minLength": 1,
      "pattern": "^[A-Za-z0-9_-]+$",
      "title": "Credential Id",
      "type": "string"
    },
    "password": {
      "title": "Password",
      "type": "string"
    },
    "site_name": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Site Name"
    },
    "username": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Username"
    },
    "login_url": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Login Url"
    },
    "totp": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Totp"
    },
    "pin": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Pin"
    },
    "sms_phone_type": {
      "anyOf": [
        {
          "enum": [
            "voip",
            "real_sim"
          ],
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Sms Phone Type"
    },
    "notes": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Notes"
    }
  },
  "required": [
    "credential_id",
    "password"
  ],
  "title": "credentials_rotateArguments",
  "type": "object"
}
custom_agent_request_approve_plannerApprove a submitted request and atomically queue its one Planner build.
Input schema
{
  "properties": {
    "request_id": {
      "maxLength": 500,
      "minLength": 1,
      "pattern": "^[A-Za-z0-9_.:-]+$",
      "title": "Request Id",
      "type": "string"
    },
    "version": {
      "minimum": 1,
      "title": "Version",
      "type": "integer"
    },
    "idempotency_key": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Idempotency Key"
    },
    "organization_id": {
      "anyOf": [
        {
          "description": "Exact organization ID, slug, or name. Omit to use the organization where this credential was created.",
          "maxLength": 200,
          "minLength": 1,
          "pattern": "^[^\\\\?#]+$",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Organization Id"
    }
  },
  "required": [
    "request_id",
    "version"
  ],
  "title": "custom_agent_request_approve_plannerArguments",
  "type": "object"
}
custom_agent_request_closeWithdraw a custom request; a closed request no longer changes. Confirm with the user first. The note tells XY why.
Input schema
{
  "properties": {
    "request_id": {
      "maxLength": 500,
      "minLength": 1,
      "pattern": "^[A-Za-z0-9_.:-]+$",
      "title": "Request Id",
      "type": "string"
    },
    "version": {
      "minimum": 1,
      "title": "Version",
      "type": "integer"
    },
    "note": {
      "anyOf": [
        {
          "maxLength": 2000,
          "minLength": 1,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Note"
    }
  },
  "required": [
    "request_id",
    "version"
  ],
  "title": "custom_agent_request_closeArguments",
  "type": "object"
}
custom_agent_request_createMake a workflow request: ask XY to build a workflow, and get its form. Use this for a customer's or partner's workflow request; staff use workflow_request_* instead. specification is what the workflow should achieve in plain words; it prefills the form's desired outcome. After catalog_match_tasks, pass each matched task with its optional name and chosen cards as discovery_selections; for a task with no current match, pass its description as specification instead. Fill in the rest with custom_agent_request_update, then publish it with custom_agent_request_publish. Use the returned id as request_id for every custom request tool; form_url opens the same form in the XY app, where individual Workflow Requests app permission is required. This does not change the API/MCP scopes required by these tools.
Input schema
{
  "$defs": {
    "AgentRequestDiscoverySelection": {
      "additionalProperties": false,
      "description": "Original customer task and the Discover cards chosen for that task.",
      "properties": {
        "id": {
          "maxLength": 100,
          "minLength": 1,
          "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$",
          "title": "Id",
          "type": "string"
        },
        "name": {
          "anyOf": [
            {
              "maxLength": 200,
              "minLength": 1,
              "pattern": "\\S",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Name"
        },
        "description": {
          "maxLength": 2000,
          "minLength": 1,
          "pattern": "\\S",
          "title": "Description",
          "type": "string"
        },
        "selected_agent_ids": {
          "items": {
            "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$",
            "type": "string"
          },
          "maxItems": 4,
          "minItems": 1,
          "title": "Selected Agent Ids",
          "type": "array"
        }
      },
      "required": [
        "id",
        "description",
        "selected_agent_ids"
      ],
      "title": "AgentRequestDiscoverySelection",
      "type": "object"
    },
    "AgentRequestFormAccessMethodAnswer": {
      "additionalProperties": false,
      "description": "One answer: its state, its value when answered, and a reason when Not applicable.",
      "properties": {
        "state": {
          "default": "unanswered",
          "enum": [
            "unanswered",
            "answered",
            "not_applicable"
          ],
          "title": "State",
          "type": "string"
        },
        "value": {
          "anyOf": [
            {
              "enum": [
                "website_portal",
                "api",
                "file_transfer",
                "email",
                "other"
              ],
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Value"
        },
        "reason": {
          "anyOf": [
            {
              "maxLength": 10000,
              "minLength": 1,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Reason"
        }
      },
      "title": "AgentRequestFormAccessMethodAnswer",
      "type": "object"
    },
    "AgentRequestFormAvailabilityAnswer": {
      "additionalProperties": false,
      "description": "One answer: its state, its value when answered, and a reason when Not applicable.",
      "properties": {
        "state": {
          "default": "unanswered",
          "enum": [
            "unanswered",
            "answered",
            "not_applicable"
          ],
          "title": "State",
          "type": "string"
        },
        "value": {
          "anyOf": [
            {
              "enum": [
                "available",
                "being_arranged",
                "third_party_dependency"
              ],
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Value"
        },
        "reason": {
          "anyOf": [
            {
              "maxLength": 10000,
              "minLength": 1,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Reason"
        }
      },
      "title": "AgentRequestFormAvailabilityAnswer",
      "type": "object"
    },
    "AgentRequestFormBrowserPortal": {
      "additionalProperties": false,
      "description": "One item; send it without an id to add it.",
      "properties": {
        "id": {
          "title": "Id",
          "type": "string"
        },
        "name": {
          "anyOf": [
            {
              "$ref": "#/$defs/AgentRequestFormTextAnswer"
            },
            {
              "maxLength": 10000,
              "minLength": 1,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Name"
        },
        "domain": {
          "anyOf": [
            {
              "$ref": "#/$defs/AgentRequestFormTextAnswer"
            },
            {
              "maxLength": 10000,
              "minLength": 1,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Domain"
        },
        "system": {
          "anyOf": [
            {
              "$ref": "#/$defs/AgentRequestFormTextAnswer"
            },
            {
              "maxLength": 10000,
              "minLength": 1,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "System"
        },
        "steps": {
          "items": {
            "$ref": "#/$defs/AgentRequestFormPortalStep"
          },
          "maxItems": 200,
          "title": "Steps",
          "type": "array"
        }
      },
      "title": "AgentRequestFormBrowserPortal",
      "type": "object"
    },
    "AgentRequestFormCredentialsAndAccess": {
      "additionalProperties": false,
      "description": "One section of the form.",
      "properties": {
        "credentials_needed": {
          "anyOf": [
            {
              "$ref": "#/$defs/AgentRequestFormYesNoAnswer"
            },
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "title": "Credentials Needed"
        },
        "vault_reference": {
          "anyOf": [
            {
              "$ref": "#/$defs/AgentRequestFormVaultReferenceAnswer"
            },
            {
              "pattern": "^c[a-z0-9]{24}$",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Vault Reference"
        },
        "outstanding_requirements": {
          "anyOf": [
            {
              "$ref": "#/$defs/AgentRequestFormTextAnswer"
            },
            {
              "maxLength": 10000,
              "minLength": 1,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Outstanding Requirements"
        }
      },
      "title": "AgentRequestFormCredentialsAndAccess",
      "type": "object"
    },
    "AgentRequestFormCurrentProcess": {
      "additionalProperties": false,
      "description": "One section of the form.",
      "properties": {
        "documentation_status": {
          "anyOf": [
            {
              "$ref": "#/$defs/AgentRequestFormDocumentationStatusAnswer"
            },
            {
              "enum": [
                "complete",
                "partial_informal",
                "mainly_undocumented"
              ],
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Documentation Status"
        },
        "sop_links": {
          "anyOf": [
            {
              "$ref": "#/$defs/AgentRequestFormTextAnswer"
            },
            {
              "maxLength": 10000,
              "minLength": 1,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Sop Links"
        }
      },
      "title": "AgentRequestFormCurrentProcess",
      "type": "object"
    },
    "AgentRequestFormDocumentationStatusAnswer": {
      "additionalProperties": false,
      "description": "One answer: its state, its value when answered, and a reason when Not applicable.",
      "properties": {
        "state": {
          "default": "unanswered",
          "enum": [
            "unanswered",
            "answered",
            "not_applicable"
          ],
          "title": "State",
          "type": "string"
        },
        "value": {
          "anyOf": [
            {
              "enum": [
                "complete",
                "partial_informal",
                "mainly_undocumented"
              ],
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Value"
        },
        "reason": {
          "anyOf": [
            {
              "maxLength": 10000,
              "minLength": 1,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Reason"
        }
      },
      "title": "AgentRequestFormDocumentationStatusAnswer",
      "type": "object"
    },
    "AgentRequestFormExpectedOutput": {
      "additionalProperties": false,
      "description": "One section of the form.",
      "properties": {
        "description": {
          "anyOf": [
            {
              "$ref": "#/$defs/AgentRequestFormTextAnswer"
            },
            {
              "maxLength": 10000,
              "minLength": 1,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Description"
        },
        "examples": {
          "anyOf": [
            {
              "$ref": "#/$defs/AgentRequestFormTextAnswer"
            },
            {
              "maxLength": 10000,
              "minLength": 1,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Examples"
        }
      },
      "title": "AgentRequestFormExpectedOutput",
      "type": "object"
    },
    "AgentRequestFormGoalAndScope": {
      "additionalProperties": false,
      "description": "One section of the form.",
      "properties": {
        "desired_outcome": {
          "anyOf": [
            {
              "$ref": "#/$defs/AgentRequestFormTextAnswer"
            },
            {
              "maxLength": 10000,
              "minLength": 1,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Desired Outcome"
        },
        "why_it_matters": {
          "anyOf": [
            {
              "$ref": "#/$defs/AgentRequestFormTextAnswer"
            },
            {
              "maxLength": 10000,
              "minLength": 1,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Why It Matters"
        },
        "in_scope": {
          "anyOf": [
            {
              "$ref": "#/$defs/AgentRequestFormTextAnswer"
            },
            {
              "maxLength": 10000,
              "minLength": 1,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "In Scope"
        },
        "out_of_scope": {
          "anyOf": [
            {
              "$ref": "#/$defs/AgentRequestFormTextAnswer"
            },
            {
              "maxLength": 10000,
              "minLength": 1,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Out Of Scope"
        },
        "success_criteria": {
          "anyOf": [
            {
              "$ref": "#/$defs/AgentRequestFormTextAnswer"
            },
            {
              "maxLength": 10000,
              "minLength": 1,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Success Criteria"
        }
      },
      "title": "AgentRequestFormGoalAndScope",
      "type": "object"
    },
    "AgentRequestFormInput": {
      "additionalProperties": false,
      "description": "One item; send it without an id to add it.",
      "properties": {
        "id": {
          "title": "Id",
          "type": "string"
        },
        "name": {
          "anyOf": [
            {
              "$ref": "#/$defs/AgentRequestFormTextAnswer"
            },
            {
              "maxLength": 10000,
              "minLength": 1,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Name"
        },
        "description": {
          "anyOf": [
            {
              "$ref": "#/$defs/AgentRequestFormTextAnswer"
            },
            {
              "maxLength": 10000,
              "minLength": 1,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Description"
        },
        "example": {
          "anyOf": [
            {
              "$ref": "#/$defs/AgentRequestFormTextAnswer"
            },
            {
              "maxLength": 10000,
              "minLength": 1,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Example"
        }
      },
      "title": "AgentRequestFormInput",
      "type": "object"
    },
    "AgentRequestFormJudgmentTypeAnswer": {
      "additionalProperties": false,
      "description": "One answer: its state, its value when answered, and a reason when Not applicable.",
      "properties": {
        "state": {
          "default": "unanswered",
          "enum": [
            "unanswered",
            "answered",
            "not_applicable"
          ],
          "title": "State",
          "type": "string"
        },
        "value": {
          "anyOf": [
            {
              "enum": [
                "rules_based",
                "human_judgment",
                "ai_judgment"
              ],
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Value"
        },
        "reason": {
          "anyOf": [
            {
              "maxLength": 10000,
              "minLength": 1,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Reason"
        }
      },
      "title": "AgentRequestFormJudgmentTypeAnswer",
      "type": "object"
    },
    "AgentRequestFormListMark": {
      "additionalProperties": false,
      "description": "A repeating section marked Not applicable, with the reason it has no items.",
      "properties": {
        "state": {
          "default": "unanswered",
          "enum": [
            "unanswered",
            "not_applicable"
          ],
          "title": "State",
          "type": "string"
        },
        "value": {
          "default": null,
          "title": "Value",
          "type": "null"
        },
        "reason": {
          "anyOf": [
            {
              "maxLength": 10000,
              "minLength": 1,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Reason"
        }
      },
      "title": "AgentRequestFormListMark",
      "type": "object"
    },
    "AgentRequestFormNotApplicableSections": {
      "additionalProperties": false,
      "description": "Repeating sections that can be empty, if marked Not applicable with a reason.",
      "properties": {
        "browser_portals": {
          "anyOf": [
            {
              "$ref": "#/$defs/AgentRequestFormListMark"
            },
            {
              "type": "null"
            }
          ],
          "title": "Browser Portals"
        },
        "inputs": {
          "anyOf": [
            {
              "$ref": "#/$defs/AgentRequestFormListMark"
            },
            {
              "type": "null"
            }
          ],
          "title": "Inputs"
        }
      },
      "title": "AgentRequestFormNotApplicableSections",
      "type": "object"
    },
    "AgentRequestFormPortalStep": {
      "additionalProperties": false,
      "description": "One item; send it without an id to add it.",
      "properties": {
        "id": {
          "title": "Id",
          "type": "string"
        },
        "instruction": {
          "anyOf": [
            {
              "$ref": "#/$defs/AgentRequestFormTextAnswer"
            },
            {
              "maxLength": 10000,
              "minLength": 1,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Instruction"
        }
      },
      "title": "AgentRequestFormPortalStep",
      "type": "object"
    },
    "AgentRequestFormRequestContext": {
      "additionalProperties": false,
      "description": "One section of the form.",
      "properties": {
        "customer_name": {
          "anyOf": [
            {
              "$ref": "#/$defs/AgentRequestFormTextAnswer"
            },
            {
              "maxLength": 10000,
              "minLength": 1,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Customer Name"
        },
        "workflow_name": {
          "anyOf": [
            {
              "$ref": "#/$defs/AgentRequestFormTextAnswer"
            },
            {
              "maxLength": 10000,
              "minLength": 1,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Workflow Name"
        }
      },
      "title": "AgentRequestFormRequestContext",
      "type": "object"
    },
    "AgentRequestFormRulesAndJudgment": {
      "additionalProperties": false,
      "description": "One section of the form.",
      "properties": {
        "rules": {
          "anyOf": [
            {
              "$ref": "#/$defs/AgentRequestFormTextAnswer"
            },
            {
              "maxLength": 10000,
              "minLength": 1,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Rules"
        },
        "judgment_type": {
          "anyOf": [
            {
              "$ref": "#/$defs/AgentRequestFormJudgmentTypeAnswer"
            },
            {
              "enum": [
                "rules_based",
                "human_judgment",
                "ai_judgment"
              ],
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Judgment Type"
        }
      },
      "title": "AgentRequestFormRulesAndJudgment",
      "type": "object"
    },
    "AgentRequestFormSpec": {
      "additionalProperties": false,
      "description": "The request form: the Spec sections a customer fills in. Send only the sections to change; a list of items replaces the list.",
      "properties": {
        "request_context": {
          "$ref": "#/$defs/AgentRequestFormRequestContext",
          "title": "Request Context"
        },
        "goal_and_scope": {
          "$ref": "#/$defs/AgentRequestFormGoalAndScope",
          "title": "Goal And Scope"
        },
        "systems": {
          "items": {
            "$ref": "#/$defs/AgentRequestFormSystem"
          },
          "maxItems": 50,
          "title": "Systems",
          "type": "array"
        },
        "browser_portals": {
          "items": {
            "$ref": "#/$defs/AgentRequestFormBrowserPortal"
          },
          "maxItems": 50,
          "title": "Browser Portals",
          "type": "array"
        },
        "credentials_and_access": {
          "$ref": "#/$defs/AgentRequestFormCredentialsAndAccess",
          "title": "Credentials And Access"
        },
        "current_process": {
          "$ref": "#/$defs/AgentRequestFormCurrentProcess",
          "title": "Current Process"
        },
        "inputs": {
          "items": {
            "$ref": "#/$defs/AgentRequestFormInput"
          },
          "maxItems": 100,
          "title": "Inputs",
          "type": "array"
        },
        "expected_output": {
          "$ref": "#/$defs/AgentRequestFormExpectedOutput",
          "title": "Expected Output"
        },
        "rules_and_judgment": {
          "$ref": "#/$defs/AgentRequestFormRulesAndJudgment",
          "title": "Rules And Judgment"
        },
        "variations": {
          "$ref": "#/$defs/AgentRequestFormVariations",
          "title": "Variations"
        },
        "not_applicable": {
          "$ref": "#/$defs/AgentRequestFormNotApplicableSections",
          "title": "Not Applicable"
        }
      },
      "title": "AgentRequestFormSpec",
      "type": "object"
    },
    "AgentRequestFormSystem": {
      "additionalProperties": false,
      "description": "One item; send it without an id to add it.",
      "properties": {
        "id": {
          "title": "Id",
          "type": "string"
        },
        "name": {
          "anyOf": [
            {
              "$ref": "#/$defs/AgentRequestFormTextAnswer"
            },
            {
              "maxLength": 10000,
              "minLength": 1,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Name"
        },
        "use": {
          "anyOf": [
            {
              "$ref": "#/$defs/AgentRequestFormTextAnswer"
            },
            {
              "maxLength": 10000,
              "minLength": 1,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Use"
        },
        "access_method": {
          "anyOf": [
            {
              "$ref": "#/$defs/AgentRequestFormAccessMethodAnswer"
            },
            {
              "enum": [
                "website_portal",
                "api",
                "file_transfer",
                "email",
                "other"
              ],
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Access Method"
        },
        "availability": {
          "anyOf": [
            {
              "$ref": "#/$defs/AgentRequestFormAvailabilityAnswer"
            },
            {
              "enum": [
                "available",
                "being_arranged",
                "third_party_dependency"
              ],
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Availability"
        }
      },
      "title": "AgentRequestFormSystem",
      "type": "object"
    },
    "AgentRequestFormTextAnswer": {
      "additionalProperties": false,
      "description": "One answer: its state, its value when answered, and a reason when Not applicable.",
      "properties": {
        "state": {
          "default": "unanswered",
          "enum": [
            "unanswered",
            "answered",
            "not_applicable"
          ],
          "title": "State",
          "type": "string"
        },
        "value": {
          "anyOf": [
            {
              "maxLength": 10000,
              "minLength": 1,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Value"
        },
        "reason": {
          "anyOf": [
            {
              "maxLength": 10000,
              "minLength": 1,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Reason"
        }
      },
      "title": "AgentRequestFormTextAnswer",
      "type": "object"
    },
    "AgentRequestFormVariationTypeAnswer": {
      "additionalProperties": false,
      "description": "One answer: its state, its value when answered, and a reason when Not applicable.",
      "properties": {
        "state": {
          "default": "unanswered",
          "enum": [
            "unanswered",
            "answered",
            "not_applicable"
          ],
          "title": "State",
          "type": "string"
        },
        "value": {
          "anyOf": [
            {
              "enum": [
                "one_path",
                "two_or_three",
                "category_based",
                "changing_conditions"
              ],
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Value"
        },
        "reason": {
          "anyOf": [
            {
              "maxLength": 10000,
              "minLength": 1,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Reason"
        }
      },
      "title": "AgentRequestFormVariationTypeAnswer",
      "type": "object"
    },
    "AgentRequestFormVariations": {
      "additionalProperties": false,
      "description": "One section of the form.",
      "properties": {
        "variation_type": {
          "anyOf": [
            {
              "$ref": "#/$defs/AgentRequestFormVariationTypeAnswer"
            },
            {
              "enum": [
                "one_path",
                "two_or_three",
                "category_based",
                "changing_conditions"
              ],
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Variation Type"
        },
        "description": {
          "anyOf": [
            {
              "$ref": "#/$defs/AgentRequestFormTextAnswer"
            },
            {
              "maxLength": 10000,
              "minLength": 1,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Description"
        }
      },
      "title": "AgentRequestFormVariations",
      "type": "object"
    },
    "AgentRequestFormVaultReferenceAnswer": {
      "additionalProperties": false,
      "description": "One answer: its state, its value when answered, and a reason when Not applicable.",
      "properties": {
        "state": {
          "default": "unanswered",
          "enum": [
            "unanswered",
            "answered",
            "not_applicable"
          ],
          "title": "State",
          "type": "string"
        },
        "value": {
          "anyOf": [
            {
              "pattern": "^c[a-z0-9]{24}$",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Value"
        },
        "reason": {
          "anyOf": [
            {
              "maxLength": 10000,
              "minLength": 1,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Reason"
        }
      },
      "title": "AgentRequestFormVaultReferenceAnswer",
      "type": "object"
    },
    "AgentRequestFormYesNoAnswer": {
      "additionalProperties": false,
      "description": "One answer: its state, its value when answered, and a reason when Not applicable.",
      "properties": {
        "state": {
          "default": "unanswered",
          "enum": [
            "unanswered",
            "answered",
            "not_applicable"
          ],
          "title": "State",
          "type": "string"
        },
        "value": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Value"
        },
        "reason": {
          "anyOf": [
            {
              "maxLength": 10000,
              "minLength": 1,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Reason"
        }
      },
      "title": "AgentRequestFormYesNoAnswer",
      "type": "object"
    }
  },
  "properties": {
    "name": {
      "maxLength": 200,
      "minLength": 1,
      "title": "Name",
      "type": "string"
    },
    "specification": {
      "anyOf": [
        {
          "maxLength": 20000,
          "minLength": 1,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Specification"
    },
    "discovery_selections": {
      "anyOf": [
        {
          "items": {
            "$ref": "#/$defs/AgentRequestDiscoverySelection"
          },
          "maxItems": 8,
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Discovery Selections"
    },
    "systems": {
      "anyOf": [
        {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Systems"
    },
    "workflow_spec": {
      "anyOf": [
        {
          "$ref": "#/$defs/AgentRequestFormSpec"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    },
    "idempotency_key": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Idempotency Key"
    }
  },
  "required": [
    "name"
  ],
  "title": "custom_agent_request_createArguments",
  "type": "object"
}
custom_agent_request_deploymentsRead the published workflows delivered for an XY request. Keep the same request_id returned by creation or bulk submission. This reads deployment provenance, not Discover matches or build success. Empty data means no delivered workflow has been registered yet. Returns IDs, versions and availability only, never YAML or payloads.
Input schema
{
  "properties": {
    "request_id": {
      "maxLength": 500,
      "minLength": 1,
      "pattern": "^[A-Za-z0-9_.:-]+$",
      "title": "Request Id",
      "type": "string"
    },
    "organization_id": {
      "anyOf": [
        {
          "description": "Exact organization ID, slug, or name. Omit to use the organization where this credential was created.",
          "maxLength": 200,
          "minLength": 1,
          "pattern": "^[^\\\\?#]+$",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Organization Id"
    }
  },
  "required": [
    "request_id"
  ],
  "title": "custom_agent_request_deploymentsArguments",
  "type": "object"
}
custom_agent_request_getRead a custom request: its state, messages, and form. A request made with custom_agent_request_create includes its form's Spec (workflow_spec), what it still needs (open_fields), and form_url. Includes the review, clarification, and delivery fields. Use the returned version to change it or for planner approval. Staff Workflow Requests use workflow_request_* tools.
Input schema
{
  "properties": {
    "request_id": {
      "maxLength": 500,
      "minLength": 1,
      "pattern": "^[A-Za-z0-9_.:-]+$",
      "title": "Request Id",
      "type": "string"
    },
    "organization_id": {
      "anyOf": [
        {
          "description": "Exact organization ID, slug, or name. Omit to use the organization where this credential was created.",
          "maxLength": 200,
          "minLength": 1,
          "pattern": "^[^\\\\?#]+$",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Organization Id"
    }
  },
  "required": [
    "request_id"
  ],
  "title": "custom_agent_request_getArguments",
  "type": "object"
}
custom_agent_request_listList my workflow requests to XY: the requests I asked XY to build. A person sees their own requests, made through this connection or in the XY app; XY staff pass organization_id to list one organization's. Filter by state, such as submitted or needs_information. Show each request's form_url as a link to its form in the XY app. Read one with custom_agent_request_get for its form and XY's messages. Pass next_cursor back as cursor for the next page.
Input schema
{
  "properties": {
    "state": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "State"
    },
    "limit": {
      "default": 50,
      "maximum": 100,
      "minimum": 1,
      "title": "Limit",
      "type": "integer"
    },
    "cursor": {
      "anyOf": [
        {
          "maxLength": 2000,
          "minLength": 1,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Cursor"
    },
    "organization_id": {
      "anyOf": [
        {
          "description": "Exact organization ID, slug, or name. Omit to use the organization where this credential was created.",
          "maxLength": 200,
          "minLength": 1,
          "pattern": "^[^\\\\?#]+$",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Organization Id"
    }
  },
  "title": "custom_agent_request_listArguments",
  "type": "object"
}
custom_agent_request_messageAnswer an XY clarification or add context to a submitted request.
Input schema
{
  "properties": {
    "request_id": {
      "maxLength": 500,
      "minLength": 1,
      "pattern": "^[A-Za-z0-9_.:-]+$",
      "title": "Request Id",
      "type": "string"
    },
    "message": {
      "title": "Message",
      "type": "string"
    },
    "idempotency_key": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Idempotency Key"
    },
    "organization_id": {
      "anyOf": [
        {
          "description": "Exact organization ID, slug, or name. Omit to use the organization where this credential was created.",
          "maxLength": 200,
          "minLength": 1,
          "pattern": "^[^\\\\?#]+$",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Organization Id"
    }
  },
  "required": [
    "request_id",
    "message"
  ],
  "title": "custom_agent_request_messageArguments",
  "type": "object"
}
custom_agent_request_publishShare a custom request's saved form with XY as its next version. Confirm with the user first. The first publish, and the first after XY asks for more information, moves the request to submitted. XY may reply through the request's messages.
Input schema
{
  "properties": {
    "request_id": {
      "maxLength": 500,
      "minLength": 1,
      "pattern": "^[A-Za-z0-9_.:-]+$",
      "title": "Request Id",
      "type": "string"
    },
    "version": {
      "minimum": 1,
      "title": "Version",
      "type": "integer"
    },
    "idempotency_key": {
      "maxLength": 200,
      "minLength": 1,
      "title": "Idempotency Key",
      "type": "string"
    }
  },
  "required": [
    "request_id",
    "version",
    "idempotency_key"
  ],
  "title": "custom_agent_request_publishArguments",
  "type": "object"
}
custom_agent_request_submit_bulkSubmit approved tasks to XY as separate partially completed requests. Use only after the customer approves sending these tasks to XY. Each task needs name and description; its optional id is the caller's task ID, not an agent ID. selected_agent_ids may contain chosen XY Discover cards; never third-party listing IDs. This shares each request with XY immediately, unlike custom_agent_request_create, which makes a draft. No detailed form, build, deployment, or execution is required or started here. XY gathers missing requirements before building. Returns task_id, request_id, form_url and state for every task. Retain request_id for tracking and messaging. Retry the exact same batch with the same idempotency_key; caller task IDs also deduplicate identical submissions across keys. Reusing an ID for changed content is refused. Accepts 1–50 tasks atomically; discovery's eight-task limit is separate. Supports personal and managed organization service credentials.
Input schema
{
  "$defs": {
    "AgentRequestBulkTask": {
      "additionalProperties": false,
      "properties": {
        "name": {
          "maxLength": 200,
          "minLength": 1,
          "pattern": "\\S",
          "title": "Name",
          "type": "string"
        },
        "description": {
          "maxLength": 2000,
          "minLength": 1,
          "pattern": "\\S",
          "title": "Description",
          "type": "string"
        },
        "id": {
          "description": "Optional caller task ID, unique within the organization. Reuse it only for the same task submission.",
          "maxLength": 100,
          "minLength": 1,
          "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]*$",
          "title": "Id",
          "type": "string"
        },
        "selected_agent_ids": {
          "description": "Optional chosen XY Discover cards, not executable or third-party listing IDs.",
          "items": {
            "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$",
            "type": "string"
          },
          "maxItems": 4,
          "title": "Selected Agent Ids",
          "type": "array"
        }
      },
      "required": [
        "name",
        "description"
      ],
      "title": "AgentRequestBulkTask",
      "type": "object"
    }
  },
  "properties": {
    "tasks": {
      "items": {
        "$ref": "#/$defs/AgentRequestBulkTask"
      },
      "maxItems": 50,
      "minItems": 1,
      "title": "Tasks",
      "type": "array"
    },
    "idempotency_key": {
      "maxLength": 200,
      "minLength": 1,
      "title": "Idempotency Key",
      "type": "string"
    }
  },
  "required": [
    "tasks",
    "idempotency_key"
  ],
  "title": "custom_agent_request_submit_bulkArguments",
  "type": "object"
}
custom_agent_request_updateSave changes to a custom request's form without sharing them with XY. workflow_spec holds only the Spec sections to change, in the shape custom_agent_request_get returns. A section's fields change one by one; a list of items (systems, browser_portals, inputs, and a portal's steps) replaces the list, and an item without an id is new. Give an answer as its value, null to clear it, or {"state": "not_applicable", "reason": "..."} when it does not apply. open_fields in the result lists what XY still needs. Credentials are only ever a Password Vault credential ID in credentials_and_access.vault_reference, never a password or key. Pass the request's current version; each change returns the next one. Retry an unchanged call with the same idempotency_key and version.
Input schema
{
  "$defs": {
    "AgentRequestFormAccessMethodAnswer": {
      "additionalProperties": false,
      "description": "One answer: its state, its value when answered, and a reason when Not applicable.",
      "properties": {
        "state": {
          "default": "unanswered",
          "enum": [
            "unanswered",
            "answered",
            "not_applicable"
          ],
          "title": "State",
          "type": "string"
        },
        "value": {
          "anyOf": [
            {
              "enum": [
                "website_portal",
                "api",
                "file_transfer",
                "email",
                "other"
              ],
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Value"
        },
        "reason": {
          "anyOf": [
            {
              "maxLength": 10000,
              "minLength": 1,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Reason"
        }
      },
      "title": "AgentRequestFormAccessMethodAnswer",
      "type": "object"
    },
    "AgentRequestFormAvailabilityAnswer": {
      "additionalProperties": false,
      "description": "One answer: its state, its value when answered, and a reason when Not applicable.",
      "properties": {
        "state": {
          "default": "unanswered",
          "enum": [
            "unanswered",
            "answered",
            "not_applicable"
          ],
          "title": "State",
          "type": "string"
        },
        "value": {
          "anyOf": [
            {
              "enum": [
                "available",
                "being_arranged",
                "third_party_dependency"
              ],
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Value"
        },
        "reason": {
          "anyOf": [
            {
              "maxLength": 10000,
              "minLength": 1,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Reason"
        }
      },
      "title": "AgentRequestFormAvailabilityAnswer",
      "type": "object"
    },
    "AgentRequestFormBrowserPortal": {
      "additionalProperties": false,
      "description": "One item; send it without an id to add it.",
      "properties": {
        "id": {
          "title": "Id",
          "type": "string"
        },
        "name": {
          "anyOf": [
            {
              "$ref": "#/$defs/AgentRequestFormTextAnswer"
            },
            {
              "maxLength": 10000,
              "minLength": 1,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Name"
        },
        "domain": {
          "anyOf": [
            {
              "$ref": "#/$defs/AgentRequestFormTextAnswer"
            },
            {
              "maxLength": 10000,
              "minLength": 1,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Domain"
        },
        "system": {
          "anyOf": [
            {
              "$ref": "#/$defs/AgentRequestFormTextAnswer"
            },
            {
              "maxLength": 10000,
              "minLength": 1,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "System"
        },
        "steps": {
          "items": {
            "$ref": "#/$defs/AgentRequestFormPortalStep"
          },
          "maxItems": 200,
          "title": "Steps",
          "type": "array"
        }
      },
      "title": "AgentRequestFormBrowserPortal",
      "type": "object"
    },
    "AgentRequestFormCredentialsAndAccess": {
      "additionalProperties": false,
      "description": "One section of the form.",
      "properties": {
        "credentials_needed": {
          "anyOf": [
            {
              "$ref": "#/$defs/AgentRequestFormYesNoAnswer"
            },
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "title": "Credentials Needed"
        },
        "vault_reference": {
          "anyOf": [
            {
              "$ref": "#/$defs/AgentRequestFormVaultReferenceAnswer"
            },
            {
              "pattern": "^c[a-z0-9]{24}$",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Vault Reference"
        },
        "outstanding_requirements": {
          "anyOf": [
            {
              "$ref": "#/$defs/AgentRequestFormTextAnswer"
            },
            {
              "maxLength": 10000,
              "minLength": 1,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Outstanding Requirements"
        }
      },
      "title": "AgentRequestFormCredentialsAndAccess",
      "type": "object"
    },
    "AgentRequestFormCurrentProcess": {
      "additionalProperties": false,
      "description": "One section of the form.",
      "properties": {
        "documentation_status": {
          "anyOf": [
            {
              "$ref": "#/$defs/AgentRequestFormDocumentationStatusAnswer"
            },
            {
              "enum": [
                "complete",
                "partial_informal",
                "mainly_undocumented"
              ],
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Documentation Status"
        },
        "sop_links": {
          "anyOf": [
            {
              "$ref": "#/$defs/AgentRequestFormTextAnswer"
            },
            {
              "maxLength": 10000,
              "minLength": 1,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Sop Links"
        }
      },
      "title": "AgentRequestFormCurrentProcess",
      "type": "object"
    },
    "AgentRequestFormDocumentationStatusAnswer": {
      "additionalProperties": false,
      "description": "One answer: its state, its value when answered, and a reason when Not applicable.",
      "properties": {
        "state": {
          "default": "unanswered",
          "enum": [
            "unanswered",
            "answered",
            "not_applicable"
          ],
          "title": "State",
          "type": "string"
        },
        "value": {
          "anyOf": [
            {
              "enum": [
                "complete",
                "partial_informal",
                "mainly_undocumented"
              ],
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Value"
        },
        "reason": {
          "anyOf": [
            {
              "maxLength": 10000,
              "minLength": 1,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Reason"
        }
      },
      "title": "AgentRequestFormDocumentationStatusAnswer",
      "type": "object"
    },
    "AgentRequestFormExpectedOutput": {
      "additionalProperties": false,
      "description": "One section of the form.",
      "properties": {
        "description": {
          "anyOf": [
            {
              "$ref": "#/$defs/AgentRequestFormTextAnswer"
            },
            {
              "maxLength": 10000,
              "minLength": 1,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Description"
        },
        "examples": {
          "anyOf": [
            {
              "$ref": "#/$defs/AgentRequestFormTextAnswer"
            },
            {
              "maxLength": 10000,
              "minLength": 1,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Examples"
        }
      },
      "title": "AgentRequestFormExpectedOutput",
      "type": "object"
    },
    "AgentRequestFormGoalAndScope": {
      "additionalProperties": false,
      "description": "One section of the form.",
      "properties": {
        "desired_outcome": {
          "anyOf": [
            {
              "$ref": "#/$defs/AgentRequestFormTextAnswer"
            },
            {
              "maxLength": 10000,
              "minLength": 1,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Desired Outcome"
        },
        "why_it_matters": {
          "anyOf": [
            {
              "$ref": "#/$defs/AgentRequestFormTextAnswer"
            },
            {
              "maxLength": 10000,
              "minLength": 1,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Why It Matters"
        },
        "in_scope": {
          "anyOf": [
            {
              "$ref": "#/$defs/AgentRequestFormTextAnswer"
            },
            {
              "maxLength": 10000,
              "minLength": 1,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "In Scope"
        },
        "out_of_scope": {
          "anyOf": [
            {
              "$ref": "#/$defs/AgentRequestFormTextAnswer"
            },
            {
              "maxLength": 10000,
              "minLength": 1,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Out Of Scope"
        },
        "success_criteria": {
          "anyOf": [
            {
              "$ref": "#/$defs/AgentRequestFormTextAnswer"
            },
            {
              "maxLength": 10000,
              "minLength": 1,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Success Criteria"
        }
      },
      "title": "AgentRequestFormGoalAndScope",
      "type": "object"
    },
    "AgentRequestFormInput": {
      "additionalProperties": false,
      "description": "One item; send it without an id to add it.",
      "properties": {
        "id": {
          "title": "Id",
          "type": "string"
        },
        "name": {
          "anyOf": [
            {
              "$ref": "#/$defs/AgentRequestFormTextAnswer"
            },
            {
              "maxLength": 10000,
              "minLength": 1,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Name"
        },
        "description": {
          "anyOf": [
            {
              "$ref": "#/$defs/AgentRequestFormTextAnswer"
            },
            {
              "maxLength": 10000,
              "minLength": 1,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Description"
        },
        "example": {
          "anyOf": [
            {
              "$ref": "#/$defs/AgentRequestFormTextAnswer"
            },
            {
              "maxLength": 10000,
              "minLength": 1,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Example"
        }
      },
      "title": "AgentRequestFormInput",
      "type": "object"
    },
    "AgentRequestFormJudgmentTypeAnswer": {
      "additionalProperties": false,
      "description": "One answer: its state, its value when answered, and a reason when Not applicable.",
      "properties": {
        "state": {
          "default": "unanswered",
          "enum": [
            "unanswered",
            "answered",
            "not_applicable"
          ],
          "title": "State",
          "type": "string"
        },
        "value": {
          "anyOf": [
            {
              "enum": [
                "rules_based",
                "human_judgment",
                "ai_judgment"
              ],
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Value"
        },
        "reason": {
          "anyOf": [
            {
              "maxLength": 10000,
              "minLength": 1,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Reason"
        }
      },
      "title": "AgentRequestFormJudgmentTypeAnswer",
      "type": "object"
    },
    "AgentRequestFormListMark": {
      "additionalProperties": false,
      "description": "A repeating section marked Not applicable, with the reason it has no items.",
      "properties": {
        "state": {
          "default": "unanswered",
          "enum": [
            "unanswered",
            "not_applicable"
          ],
          "title": "State",
          "type": "string"
        },
        "value": {
          "default": null,
          "title": "Value",
          "type": "null"
        },
        "reason": {
          "anyOf": [
            {
              "maxLength": 10000,
              "minLength": 1,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Reason"
        }
      },
      "title": "AgentRequestFormListMark",
      "type": "object"
    },
    "AgentRequestFormNotApplicableSections": {
      "additionalProperties": false,
      "description": "Repeating sections that can be empty, if marked Not applicable with a reason.",
      "properties": {
        "browser_portals": {
          "anyOf": [
            {
              "$ref": "#/$defs/AgentRequestFormListMark"
            },
            {
              "type": "null"
            }
          ],
          "title": "Browser Portals"
        },
        "inputs": {
          "anyOf": [
            {
              "$ref": "#/$defs/AgentRequestFormListMark"
            },
            {
              "type": "null"
            }
          ],
          "title": "Inputs"
        }
      },
      "title": "AgentRequestFormNotApplicableSections",
      "type": "object"
    },
    "AgentRequestFormPortalStep": {
      "additionalProperties": false,
      "description": "One item; send it without an id to add it.",
      "properties": {
        "id": {
          "title": "Id",
          "type": "string"
        },
        "instruction": {
          "anyOf": [
            {
              "$ref": "#/$defs/AgentRequestFormTextAnswer"
            },
            {
              "maxLength": 10000,
              "minLength": 1,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Instruction"
        }
      },
      "title": "AgentRequestFormPortalStep",
      "type": "object"
    },
    "AgentRequestFormRequestContext": {
      "additionalProperties": false,
      "description": "One section of the form.",
      "properties": {
        "customer_name": {
          "anyOf": [
            {
              "$ref": "#/$defs/AgentRequestFormTextAnswer"
            },
            {
              "maxLength": 10000,
              "minLength": 1,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Customer Name"
        },
        "workflow_name": {
          "anyOf": [
            {
              "$ref": "#/$defs/AgentRequestFormTextAnswer"
            },
            {
              "maxLength": 10000,
              "minLength": 1,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Workflow Name"
        }
      },
      "title": "AgentRequestFormRequestContext",
      "type": "object"
    },
    "AgentRequestFormRulesAndJudgment": {
      "additionalProperties": false,
      "description": "One section of the form.",
      "properties": {
        "rules": {
          "anyOf": [
            {
              "$ref": "#/$defs/AgentRequestFormTextAnswer"
            },
            {
              "maxLength": 10000,
              "minLength": 1,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Rules"
        },
        "judgment_type": {
          "anyOf": [
            {
              "$ref": "#/$defs/AgentRequestFormJudgmentTypeAnswer"
            },
            {
              "enum": [
                "rules_based",
                "human_judgment",
                "ai_judgment"
              ],
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Judgment Type"
        }
      },
      "title": "AgentRequestFormRulesAndJudgment",
      "type": "object"
    },
    "AgentRequestFormSpec": {
      "additionalProperties": false,
      "description": "The request form: the Spec sections a customer fills in. Send only the sections to change; a list of items replaces the list.",
      "properties": {
        "request_context": {
          "$ref": "#/$defs/AgentRequestFormRequestContext",
          "title": "Request Context"
        },
        "goal_and_scope": {
          "$ref": "#/$defs/AgentRequestFormGoalAndScope",
          "title": "Goal And Scope"
        },
        "systems": {
          "items": {
            "$ref": "#/$defs/AgentRequestFormSystem"
          },
          "maxItems": 50,
          "title": "Systems",
          "type": "array"
        },
        "browser_portals": {
          "items": {
            "$ref": "#/$defs/AgentRequestFormBrowserPortal"
          },
          "maxItems": 50,
          "title": "Browser Portals",
          "type": "array"
        },
        "credentials_and_access": {
          "$ref": "#/$defs/AgentRequestFormCredentialsAndAccess",
          "title": "Credentials And Access"
        },
        "current_process": {
          "$ref": "#/$defs/AgentRequestFormCurrentProcess",
          "title": "Current Process"
        },
        "inputs": {
          "items": {
            "$ref": "#/$defs/AgentRequestFormInput"
          },
          "maxItems": 100,
          "title": "Inputs",
          "type": "array"
        },
        "expected_output": {
          "$ref": "#/$defs/AgentRequestFormExpectedOutput",
          "title": "Expected Output"
        },
        "rules_and_judgment": {
          "$ref": "#/$defs/AgentRequestFormRulesAndJudgment",
          "title": "Rules And Judgment"
        },
        "variations": {
          "$ref": "#/$defs/AgentRequestFormVariations",
          "title": "Variations"
        },
        "not_applicable": {
          "$ref": "#/$defs/AgentRequestFormNotApplicableSections",
          "title": "Not Applicable"
        }
      },
      "title": "AgentRequestFormSpec",
      "type": "object"
    },
    "AgentRequestFormSystem": {
      "additionalProperties": false,
      "description": "One item; send it without an id to add it.",
      "properties": {
        "id": {
          "title": "Id",
          "type": "string"
        },
        "name": {
          "anyOf": [
            {
              "$ref": "#/$defs/AgentRequestFormTextAnswer"
            },
            {
              "maxLength": 10000,
              "minLength": 1,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Name"
        },
        "use": {
          "anyOf": [
            {
              "$ref": "#/$defs/AgentRequestFormTextAnswer"
            },
            {
              "maxLength": 10000,
              "minLength": 1,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Use"
        },
        "access_method": {
          "anyOf": [
            {
              "$ref": "#/$defs/AgentRequestFormAccessMethodAnswer"
            },
            {
              "enum": [
                "website_portal",
                "api",
                "file_transfer",
                "email",
                "other"
              ],
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Access Method"
        },
        "availability": {
          "anyOf": [
            {
              "$ref": "#/$defs/AgentRequestFormAvailabilityAnswer"
            },
            {
              "enum": [
                "available",
                "being_arranged",
                "third_party_dependency"
              ],
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Availability"
        }
      },
      "title": "AgentRequestFormSystem",
      "type": "object"
    },
    "AgentRequestFormTextAnswer": {
      "additionalProperties": false,
      "description": "One answer: its state, its value when answered, and a reason when Not applicable.",
      "properties": {
        "state": {
          "default": "unanswered",
          "enum": [
            "unanswered",
            "answered",
            "not_applicable"
          ],
          "title": "State",
          "type": "string"
        },
        "value": {
          "anyOf": [
            {
              "maxLength": 10000,
              "minLength": 1,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Value"
        },
        "reason": {
          "anyOf": [
            {
              "maxLength": 10000,
              "minLength": 1,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Reason"
        }
      },
      "title": "AgentRequestFormTextAnswer",
      "type": "object"
    },
    "AgentRequestFormVariationTypeAnswer": {
      "additionalProperties": false,
      "description": "One answer: its state, its value when answered, and a reason when Not applicable.",
      "properties": {
        "state": {
          "default": "unanswered",
          "enum": [
            "unanswered",
            "answered",
            "not_applicable"
          ],
          "title": "State",
          "type": "string"
        },
        "value": {
          "anyOf": [
            {
              "enum": [
                "one_path",
                "two_or_three",
                "category_based",
                "changing_conditions"
              ],
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Value"
        },
        "reason": {
          "anyOf": [
            {
              "maxLength": 10000,
              "minLength": 1,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Reason"
        }
      },
      "title": "AgentRequestFormVariationTypeAnswer",
      "type": "object"
    },
    "AgentRequestFormVariations": {
      "additionalProperties": false,
      "description": "One section of the form.",
      "properties": {
        "variation_type": {
          "anyOf": [
            {
              "$ref": "#/$defs/AgentRequestFormVariationTypeAnswer"
            },
            {
              "enum": [
                "one_path",
                "two_or_three",
                "category_based",
                "changing_conditions"
              ],
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Variation Type"
        },
        "description": {
          "anyOf": [
            {
              "$ref": "#/$defs/AgentRequestFormTextAnswer"
            },
            {
              "maxLength": 10000,
              "minLength": 1,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Description"
        }
      },
      "title": "AgentRequestFormVariations",
      "type": "object"
    },
    "AgentRequestFormVaultReferenceAnswer": {
      "additionalProperties": false,
      "description": "One answer: its state, its value when answered, and a reason when Not applicable.",
      "properties": {
        "state": {
          "default": "unanswered",
          "enum": [
            "unanswered",
            "answered",
            "not_applicable"
          ],
          "title": "State",
          "type": "string"
        },
        "value": {
          "anyOf": [
            {
              "pattern": "^c[a-z0-9]{24}$",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Value"
        },
        "reason": {
          "anyOf": [
            {
              "maxLength": 10000,
              "minLength": 1,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Reason"
        }
      },
      "title": "AgentRequestFormVaultReferenceAnswer",
      "type": "object"
    },
    "AgentRequestFormYesNoAnswer": {
      "additionalProperties": false,
      "description": "One answer: its state, its value when answered, and a reason when Not applicable.",
      "properties": {
        "state": {
          "default": "unanswered",
          "enum": [
            "unanswered",
            "answered",
            "not_applicable"
          ],
          "title": "State",
          "type": "string"
        },
        "value": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Value"
        },
        "reason": {
          "anyOf": [
            {
              "maxLength": 10000,
              "minLength": 1,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Reason"
        }
      },
      "title": "AgentRequestFormYesNoAnswer",
      "type": "object"
    }
  },
  "properties": {
    "request_id": {
      "maxLength": 500,
      "minLength": 1,
      "pattern": "^[A-Za-z0-9_.:-]+$",
      "title": "Request Id",
      "type": "string"
    },
    "version": {
      "minimum": 1,
      "title": "Version",
      "type": "integer"
    },
    "idempotency_key": {
      "maxLength": 200,
      "minLength": 1,
      "title": "Idempotency Key",
      "type": "string"
    },
    "workflow_spec": {
      "$ref": "#/$defs/AgentRequestFormSpec"
    }
  },
  "required": [
    "request_id",
    "version",
    "idempotency_key",
    "workflow_spec"
  ],
  "title": "custom_agent_request_updateArguments",
  "type": "object"
}
custom_agent_request_usageRead aggregate runs and recorded token usage for a delivered XY request. ISO-8601 timestamps require timezones: from_time is inclusive and to_time exclusive. Defaults to 30 days, maximum 400 days. Test runs and usage before deployment are excluded. Run counts use run creation time; token counts use call recording time. These are observed totals, not billing or guaranteed complete metering. No customer records, prompts, workflow code, model names or infrastructure costs are returned.
Input schema
{
  "properties": {
    "request_id": {
      "maxLength": 500,
      "minLength": 1,
      "pattern": "^[A-Za-z0-9_.:-]+$",
      "title": "Request Id",
      "type": "string"
    },
    "from_time": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "From Time"
    },
    "to_time": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "To Time"
    },
    "organization_id": {
      "anyOf": [
        {
          "description": "Exact organization ID, slug, or name. Omit to use the organization where this credential was created.",
          "maxLength": 200,
          "minLength": 1,
          "pattern": "^[^\\\\?#]+$",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Organization Id"
    }
  },
  "required": [
    "request_id"
  ],
  "title": "custom_agent_request_usageArguments",
  "type": "object"
}
dashboard_agent_queryAsk a read-only analytics question in ordinary business language. XY staff may query another organization where they are STAFF by passing organization_id; it needs internal_dashboards:read there.
Input schema
{
  "properties": {
    "prompt": {
      "title": "Prompt",
      "type": "string"
    },
    "workflow_definition_id": {
      "anyOf": [
        {
          "maxLength": 500,
          "minLength": 1,
          "pattern": "^[A-Za-z0-9_.:-]+$",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Workflow Definition Id"
    },
    "workflow_name": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Workflow Name"
    },
    "conversation_id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Conversation Id"
    },
    "organization_id": {
      "anyOf": [
        {
          "description": "Exact organization ID, slug, or name. Omit to use the organization where this credential was created.",
          "maxLength": 200,
          "minLength": 1,
          "pattern": "^[^\\\\?#]+$",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Optional organization ID, slug, or exact name where you are STAFF. Omit to use the credential's own organization.",
      "title": "Organization Id"
    }
  },
  "required": [
    "prompt"
  ],
  "title": "dashboard_agent_queryArguments",
  "type": "object"
}
dashboard_proposal_cancelRequest cancellation without approving or deleting any created version.
Input schema
{
  "properties": {
    "run_id": {
      "maxLength": 500,
      "minLength": 1,
      "pattern": "^[A-Za-z0-9_.:-]+$",
      "title": "Run Id",
      "type": "string"
    }
  },
  "required": [
    "run_id"
  ],
  "title": "dashboard_proposal_cancelArguments",
  "type": "object"
}
dashboard_proposal_getRead durable proposal status and its exact human-review version.
Input schema
{
  "properties": {
    "run_id": {
      "maxLength": 500,
      "minLength": 1,
      "pattern": "^[A-Za-z0-9_.:-]+$",
      "title": "Run Id",
      "type": "string"
    }
  },
  "required": [
    "run_id"
  ],
  "title": "dashboard_proposal_getArguments",
  "type": "object"
}
dashboard_proposal_startDescribe a new or revised dashboard in ordinary business language. State the questions people need answered, useful measures or comparisons, and a time range when relevant. Do not ask the user for query references, analytics schemas, entity fields, or a dashboard specification; the agent infers them from the selected workflow. Omit base_dashboard_version_id to create a dashboard. Supply the exact current live version to propose an edit. Generation stops with a preview for human web review; this tool cannot approve or publish the result. A dashboard that has never been published has no live version; revise that preview with the staff analytics apply path (PreviewDashboardVersion, edit true, base version = the current preview) rather than this proposal tool.
Input schema
{
  "properties": {
    "prompt": {
      "title": "Prompt",
      "type": "string"
    },
    "workflow_definition_id": {
      "maxLength": 500,
      "minLength": 1,
      "pattern": "^[A-Za-z0-9_.:-]+$",
      "title": "Workflow Definition Id",
      "type": "string"
    },
    "idempotency_key": {
      "maxLength": 200,
      "minLength": 1,
      "title": "Idempotency Key",
      "type": "string"
    },
    "base_dashboard_version_id": {
      "anyOf": [
        {
          "maxLength": 500,
          "minLength": 1,
          "pattern": "^[A-Za-z0-9_.:-]+$",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Base Dashboard Version Id"
    },
    "conversation_id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Conversation Id"
    }
  },
  "required": [
    "prompt",
    "workflow_definition_id",
    "idempotency_key"
  ],
  "title": "dashboard_proposal_startArguments",
  "type": "object"
}
dashboard_proposal_wait_for_eventsReplay normalized safe progress and wait briefly for the next event.
Input schema
{
  "properties": {
    "run_id": {
      "maxLength": 500,
      "minLength": 1,
      "pattern": "^[A-Za-z0-9_.:-]+$",
      "title": "Run Id",
      "type": "string"
    },
    "after": {
      "default": 0,
      "minimum": 0,
      "title": "After",
      "type": "integer"
    },
    "timeout_seconds": {
      "default": 20,
      "exclusiveMinimum": 0,
      "title": "Timeout Seconds",
      "type": "integer"
    },
    "limit": {
      "default": 100,
      "maximum": 100,
      "minimum": 1,
      "title": "Limit",
      "type": "integer"
    }
  },
  "required": [
    "run_id"
  ],
  "title": "dashboard_proposal_wait_for_eventsArguments",
  "type": "object"
}
execution_get_phasesRead safe phase status for a catalog-agent execution.
Input schema
{
  "properties": {
    "execution_id": {
      "maxLength": 500,
      "minLength": 1,
      "pattern": "^[A-Za-z0-9_.:-]+$",
      "title": "Execution Id",
      "type": "string"
    }
  },
  "required": [
    "execution_id"
  ],
  "title": "execution_get_phasesArguments",
  "type": "object"
}
installation_getRead provisioning, connection, source, and readiness state.
Input schema
{
  "properties": {
    "installation_id": {
      "maxLength": 500,
      "minLength": 1,
      "pattern": "^[A-Za-z0-9_.:-]+$",
      "title": "Installation Id",
      "type": "string"
    }
  },
  "required": [
    "installation_id"
  ],
  "title": "installation_getArguments",
  "type": "object"
}
installation_list_authorizationsList authorization actions and their current states.
Input schema
{
  "properties": {
    "installation_id": {
      "maxLength": 500,
      "minLength": 1,
      "pattern": "^[A-Za-z0-9_.:-]+$",
      "title": "Installation Id",
      "type": "string"
    }
  },
  "required": [
    "installation_id"
  ],
  "title": "installation_list_authorizationsArguments",
  "type": "object"
}
installation_start_authorizationCreate a short-lived hosted authorization link for a required connection.
Input schema
{
  "properties": {
    "installation_id": {
      "maxLength": 500,
      "minLength": 1,
      "pattern": "^[A-Za-z0-9_.:-]+$",
      "title": "Installation Id",
      "type": "string"
    },
    "connection": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Connection"
    }
  },
  "required": [
    "installation_id"
  ],
  "title": "installation_start_authorizationArguments",
  "type": "object"
}
integration_factory_capability_test_getRead one durable generated-capability test and its redacted result.
Input schema
{
  "properties": {
    "run_id": {
      "maxLength": 128,
      "minLength": 8,
      "pattern": "^ifrun_[A-Za-z0-9_-]+$",
      "title": "Run Id",
      "type": "string"
    },
    "test_id": {
      "title": "Test Id",
      "type": "string"
    }
  },
  "required": [
    "run_id",
    "test_id"
  ],
  "title": "integration_factory_capability_test_getArguments",
  "type": "object"
}
integration_factory_extendDiscover capabilities to add to an org-owned factory integration. Factory stages reserve model capacity after the durable run is queued. If the run reports MODEL_CAPACITY_EXCEEDED, do not retry it automatically; ask an XY staff member to increase the organization's model-capacity limit before submitting more work.
Input schema
{
  "properties": {
    "type_key": {
      "maxLength": 80,
      "minLength": 1,
      "pattern": "^[a-z][a-z0-9]*(?:[-_][a-z0-9]+)*$",
      "title": "Type Key",
      "type": "string"
    },
    "documentation_url": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Documentation Url"
    },
    "documentation": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Documentation"
    },
    "upload_id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Upload Id"
    },
    "custom_instructions": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Custom Instructions"
    },
    "idempotency_key": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Idempotency Key"
    }
  },
  "required": [
    "type_key"
  ],
  "title": "integration_factory_extendArguments",
  "type": "object"
}
integration_factory_generateGenerate selected discovered endpoints into a new integration draft.
Input schema
{
  "properties": {
    "run_id": {
      "maxLength": 128,
      "minLength": 8,
      "pattern": "^ifrun_[A-Za-z0-9_-]+$",
      "title": "Run Id",
      "type": "string"
    },
    "endpoints": {
      "items": {
        "type": "string"
      },
      "maxItems": 20,
      "minItems": 1,
      "title": "Endpoints",
      "type": "array"
    },
    "state_version": {
      "exclusiveMinimum": 0,
      "title": "State Version",
      "type": "integer"
    },
    "base_path": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Base Path"
    },
    "auth_type": {
      "anyOf": [
        {
          "enum": [
            "NONE",
            "API_KEY",
            "BASIC_AUTH",
            "BEARER_TOKEN",
            "CLIENT_CREDENTIALS"
          ],
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Auth Type"
    }
  },
  "required": [
    "run_id",
    "endpoints",
    "state_version"
  ],
  "title": "integration_factory_generateArguments",
  "type": "object"
}
integration_factory_promoteMake a validated, explicitly tested draft live only for this organization.
Input schema
{
  "properties": {
    "run_id": {
      "maxLength": 128,
      "minLength": 8,
      "pattern": "^ifrun_[A-Za-z0-9_-]+$",
      "title": "Run Id",
      "type": "string"
    },
    "state_version": {
      "exclusiveMinimum": 0,
      "title": "State Version",
      "type": "integer"
    }
  },
  "required": [
    "run_id",
    "state_version"
  ],
  "title": "integration_factory_promoteArguments",
  "type": "object"
}
integration_factory_run_getRead discovery, generation, validation, or promotion state for a run.
Input schema
{
  "properties": {
    "run_id": {
      "maxLength": 128,
      "minLength": 8,
      "pattern": "^ifrun_[A-Za-z0-9_-]+$",
      "title": "Run Id",
      "type": "string"
    }
  },
  "required": [
    "run_id"
  ],
  "title": "integration_factory_run_getArguments",
  "type": "object"
}
integration_factory_test_capabilityDurably test one generated capability before organization promotion. Set confirm_side_effects=true only after accepting that the upstream API call may create, update, trigger, or delete real external data.
Input schema
{
  "properties": {
    "run_id": {
      "maxLength": 128,
      "minLength": 8,
      "pattern": "^ifrun_[A-Za-z0-9_-]+$",
      "title": "Run Id",
      "type": "string"
    },
    "capability_key": {
      "title": "Capability Key",
      "type": "string"
    },
    "state_version": {
      "exclusiveMinimum": 0,
      "title": "State Version",
      "type": "integer"
    },
    "params": {
      "anyOf": [
        {
          "additionalProperties": true,
          "type": "object"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Params"
    },
    "credential_id": {
      "anyOf": [
        {
          "maxLength": 128,
          "minLength": 1,
          "pattern": "^[A-Za-z0-9_-]+$",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Credential Id"
    },
    "confirm_side_effects": {
      "default": false,
      "title": "Confirm Side Effects",
      "type": "boolean"
    },
    "idempotency_key": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Idempotency Key"
    }
  },
  "required": [
    "run_id",
    "capability_key",
    "state_version"
  ],
  "title": "integration_factory_test_capabilityArguments",
  "type": "object"
}
integration_factory_validateValidate a generated draft with an org-owned encrypted credential.
Input schema
{
  "properties": {
    "run_id": {
      "maxLength": 128,
      "minLength": 8,
      "pattern": "^ifrun_[A-Za-z0-9_-]+$",
      "title": "Run Id",
      "type": "string"
    },
    "state_version": {
      "exclusiveMinimum": 0,
      "title": "State Version",
      "type": "integer"
    },
    "credential_id": {
      "anyOf": [
        {
          "maxLength": 128,
          "minLength": 1,
          "pattern": "^[A-Za-z0-9_-]+$",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Credential Id"
    }
  },
  "required": [
    "run_id",
    "state_version"
  ],
  "title": "integration_factory_validateArguments",
  "type": "object"
}
integration_getRead one live integration and its current executable capabilities.
Input schema
{
  "properties": {
    "type_key": {
      "maxLength": 80,
      "minLength": 1,
      "pattern": "^[a-z][a-z0-9]*(?:[-_][a-z0-9]+)*$",
      "title": "Type Key",
      "type": "string"
    }
  },
  "required": [
    "type_key"
  ],
  "title": "integration_getArguments",
  "type": "object"
}
knowledge_source_add_urlAttach and index a public website in a Knowledge Base installation.
Input schema
{
  "properties": {
    "installation_id": {
      "maxLength": 500,
      "minLength": 1,
      "pattern": "^[A-Za-z0-9_.:-]+$",
      "title": "Installation Id",
      "type": "string"
    },
    "url": {
      "title": "Url",
      "type": "string"
    },
    "crawl_limit": {
      "default": 50,
      "maximum": 500,
      "minimum": 1,
      "title": "Crawl Limit",
      "type": "integer"
    },
    "idempotency_key": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Idempotency Key"
    }
  },
  "required": [
    "installation_id",
    "url"
  ],
  "title": "knowledge_source_add_urlArguments",
  "type": "object"
}
knowledge_source_batch_cancelCancel queued creation work for a Knowledge Base source batch.
Input schema
{
  "properties": {
    "installation_id": {
      "maxLength": 500,
      "minLength": 1,
      "pattern": "^[A-Za-z0-9_.:-]+$",
      "title": "Installation Id",
      "type": "string"
    },
    "batch_id": {
      "maxLength": 500,
      "minLength": 1,
      "pattern": "^[A-Za-z0-9_.:-]+$",
      "title": "Batch Id",
      "type": "string"
    }
  },
  "required": [
    "installation_id",
    "batch_id"
  ],
  "title": "knowledge_source_batch_cancelArguments",
  "type": "object"
}
knowledge_source_batch_completeQueue completion checks for uploaded file items in a source batch.
Input schema
{
  "properties": {
    "installation_id": {
      "maxLength": 500,
      "minLength": 1,
      "pattern": "^[A-Za-z0-9_.:-]+$",
      "title": "Installation Id",
      "type": "string"
    },
    "batch_id": {
      "maxLength": 500,
      "minLength": 1,
      "pattern": "^[A-Za-z0-9_.:-]+$",
      "title": "Batch Id",
      "type": "string"
    }
  },
  "required": [
    "installation_id",
    "batch_id"
  ],
  "title": "knowledge_source_batch_completeArguments",
  "type": "object"
}
knowledge_source_batch_createQueue bulk creation of Knowledge Base file and URL sources.
Input schema
{
  "properties": {
    "installation_id": {
      "maxLength": 500,
      "minLength": 1,
      "pattern": "^[A-Za-z0-9_.:-]+$",
      "title": "Installation Id",
      "type": "string"
    },
    "sources": {
      "items": {
        "additionalProperties": true,
        "type": "object"
      },
      "title": "Sources",
      "type": "array"
    },
    "max_concurrency": {
      "default": 5,
      "maximum": 10,
      "minimum": 1,
      "title": "Max Concurrency",
      "type": "integer"
    },
    "idempotency_key": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Idempotency Key"
    }
  },
  "required": [
    "installation_id",
    "sources"
  ],
  "title": "knowledge_source_batch_createArguments",
  "type": "object"
}
knowledge_source_batch_getRead item-level state for a Knowledge Base source batch.
Input schema
{
  "properties": {
    "installation_id": {
      "maxLength": 500,
      "minLength": 1,
      "pattern": "^[A-Za-z0-9_.:-]+$",
      "title": "Installation Id",
      "type": "string"
    },
    "batch_id": {
      "maxLength": 500,
      "minLength": 1,
      "pattern": "^[A-Za-z0-9_.:-]+$",
      "title": "Batch Id",
      "type": "string"
    }
  },
  "required": [
    "installation_id",
    "batch_id"
  ],
  "title": "knowledge_source_batch_getArguments",
  "type": "object"
}
knowledge_source_batch_upload_actionsCreate fresh signed upload actions for pending file items in a batch.
Input schema
{
  "properties": {
    "installation_id": {
      "maxLength": 500,
      "minLength": 1,
      "pattern": "^[A-Za-z0-9_.:-]+$",
      "title": "Installation Id",
      "type": "string"
    },
    "batch_id": {
      "maxLength": 500,
      "minLength": 1,
      "pattern": "^[A-Za-z0-9_.:-]+$",
      "title": "Batch Id",
      "type": "string"
    }
  },
  "required": [
    "installation_id",
    "batch_id"
  ],
  "title": "knowledge_source_batch_upload_actionsArguments",
  "type": "object"
}
knowledge_source_complete_uploadConfirm a signed file upload and start ingestion and indexing.
Input schema
{
  "properties": {
    "installation_id": {
      "maxLength": 500,
      "minLength": 1,
      "pattern": "^[A-Za-z0-9_.:-]+$",
      "title": "Installation Id",
      "type": "string"
    },
    "source_id": {
      "maxLength": 500,
      "minLength": 1,
      "pattern": "^[A-Za-z0-9_.:-]+$",
      "title": "Source Id",
      "type": "string"
    }
  },
  "required": [
    "installation_id",
    "source_id"
  ],
  "title": "knowledge_source_complete_uploadArguments",
  "type": "object"
}
knowledge_source_create_file_uploadCreate a signed upload target for a Knowledge Base file source.
Input schema
{
  "properties": {
    "installation_id": {
      "maxLength": 500,
      "minLength": 1,
      "pattern": "^[A-Za-z0-9_.:-]+$",
      "title": "Installation Id",
      "type": "string"
    },
    "file_name": {
      "title": "File Name",
      "type": "string"
    },
    "content_type": {
      "title": "Content Type",
      "type": "string"
    },
    "idempotency_key": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Idempotency Key"
    }
  },
  "required": [
    "installation_id",
    "file_name",
    "content_type"
  ],
  "title": "knowledge_source_create_file_uploadArguments",
  "type": "object"
}
knowledge_source_deleteDelete a Knowledge Base source and its indexed content.
Input schema
{
  "properties": {
    "installation_id": {
      "maxLength": 500,
      "minLength": 1,
      "pattern": "^[A-Za-z0-9_.:-]+$",
      "title": "Installation Id",
      "type": "string"
    },
    "source_id": {
      "maxLength": 500,
      "minLength": 1,
      "pattern": "^[A-Za-z0-9_.:-]+$",
      "title": "Source Id",
      "type": "string"
    }
  },
  "required": [
    "installation_id",
    "source_id"
  ],
  "title": "knowledge_source_deleteArguments",
  "type": "object"
}
knowledge_source_getRead upload or indexing state for one Knowledge Base source.
Input schema
{
  "properties": {
    "installation_id": {
      "maxLength": 500,
      "minLength": 1,
      "pattern": "^[A-Za-z0-9_.:-]+$",
      "title": "Installation Id",
      "type": "string"
    },
    "source_id": {
      "maxLength": 500,
      "minLength": 1,
      "pattern": "^[A-Za-z0-9_.:-]+$",
      "title": "Source Id",
      "type": "string"
    }
  },
  "required": [
    "installation_id",
    "source_id"
  ],
  "title": "knowledge_source_getArguments",
  "type": "object"
}
knowledge_sources_listList every source and indexing state for a Knowledge Base installation.
Input schema
{
  "properties": {
    "installation_id": {
      "maxLength": 500,
      "minLength": 1,
      "pattern": "^[A-Za-z0-9_.:-]+$",
      "title": "Installation Id",
      "type": "string"
    }
  },
  "required": [
    "installation_id"
  ],
  "title": "knowledge_sources_listArguments",
  "type": "object"
}
operations_connection_getRead the linked credential's environment, actor and granted scopes; no secrets.
Input schema
{
  "properties": {},
  "title": "operations_connection_getArguments",
  "type": "object"
}
operations_executions_listList permitted catalog-agent run IDs and statuses, excluding payloads and partner references.
Input schema
{
  "properties": {
    "status": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Status"
    },
    "limit": {
      "default": 25,
      "maximum": 100,
      "minimum": 1,
      "title": "Limit",
      "type": "integer"
    },
    "offset": {
      "default": 0,
      "minimum": 0,
      "title": "Offset",
      "type": "integer"
    }
  },
  "title": "operations_executions_listArguments",
  "type": "object"
}
planner_abandonCancel and discard a workflow build permanently. Tell the user the build has been cancelled. Never expose build IDs.
Input schema
{
  "properties": {
    "build_id": {
      "maxLength": 200,
      "minLength": 6,
      "pattern": "^pbld_[A-Za-z0-9_-]+$",
      "title": "Build Id",
      "type": "string"
    },
    "state_version": {
      "exclusiveMinimum": 0,
      "title": "State Version",
      "type": "integer"
    },
    "idempotency_key": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Idempotency Key"
    }
  },
  "required": [
    "build_id",
    "state_version"
  ],
  "title": "planner_abandonArguments",
  "type": "object"
}
planner_accept_stepConfirm a step looks good, with optional edits. Tell the user 'step N confirmed' in plain language. Never expose action names or state versions.
Input schema
{
  "properties": {
    "build_id": {
      "maxLength": 200,
      "minLength": 6,
      "pattern": "^pbld_[A-Za-z0-9_-]+$",
      "title": "Build Id",
      "type": "string"
    },
    "step_number": {
      "exclusiveMinimum": 0,
      "title": "Step Number",
      "type": "integer"
    },
    "state_version": {
      "exclusiveMinimum": 0,
      "title": "State Version",
      "type": "integer"
    },
    "edited_code": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Edited Code"
    },
    "edited_yaml_params": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Edited Yaml Params"
    },
    "idempotency_key": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Idempotency Key"
    }
  },
  "required": [
    "build_id",
    "step_number",
    "state_version"
  ],
  "title": "planner_accept_stepArguments",
  "type": "object"
}
planner_answer_specAnswer the planner's questions about the uploaded process documents. Use when planner_get_build reports gate 'spec'. The answer lets the planner finish the workflow spec and continue to the plan. Tell the user 'sending your answers to the planner' — never mention state versions or durable commands.
Input schema
{
  "properties": {
    "build_id": {
      "maxLength": 200,
      "minLength": 6,
      "pattern": "^pbld_[A-Za-z0-9_-]+$",
      "title": "Build Id",
      "type": "string"
    },
    "answer": {
      "maxLength": 20000,
      "pattern": "\\S",
      "title": "Answer",
      "type": "string"
    },
    "state_version": {
      "exclusiveMinimum": 0,
      "title": "State Version",
      "type": "integer"
    },
    "idempotency_key": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Idempotency Key"
    }
  },
  "required": [
    "build_id",
    "answer",
    "state_version"
  ],
  "title": "planner_answer_specArguments",
  "type": "object"
}
planner_assist_stepAsk Build Copilot for a proposed edit without mutating the build.
Input schema
{
  "properties": {
    "build_id": {
      "maxLength": 200,
      "minLength": 6,
      "pattern": "^pbld_[A-Za-z0-9_-]+$",
      "title": "Build Id",
      "type": "string"
    },
    "step_number": {
      "exclusiveMinimum": 0,
      "title": "Step Number",
      "type": "integer"
    },
    "prompt": {
      "title": "Prompt",
      "type": "string"
    },
    "current_code": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Current Code"
    },
    "current_yaml": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Current Yaml"
    },
    "editor_session_id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Editor Session Id"
    }
  },
  "required": [
    "build_id",
    "step_number",
    "prompt"
  ],
  "title": "planner_assist_stepArguments",
  "type": "object"
}
planner_cancel_stepSynchronously cancel a running test; repeating this is safe.
Input schema
{
  "properties": {
    "build_id": {
      "maxLength": 200,
      "minLength": 6,
      "pattern": "^pbld_[A-Za-z0-9_-]+$",
      "title": "Build Id",
      "type": "string"
    },
    "step_number": {
      "exclusiveMinimum": 0,
      "title": "Step Number",
      "type": "integer"
    }
  },
  "required": [
    "build_id",
    "step_number"
  ],
  "title": "planner_cancel_stepArguments",
  "type": "object"
}
planner_export_buildExport a redacted Planner journey fixture for debugging or re-seeding.
Input schema
{
  "properties": {
    "build_id": {
      "maxLength": 200,
      "minLength": 6,
      "pattern": "^pbld_[A-Za-z0-9_-]+$",
      "title": "Build Id",
      "type": "string"
    }
  },
  "required": [
    "build_id"
  ],
  "title": "planner_export_buildArguments",
  "type": "object"
}
planner_get_browser_sessionGet the live browser view URL for a running browser step. Returns vnc_url (view-only) and vnc_control_url (interactive). Present the vnc_url to the user as a clickable link: 'Watch the browser live: <url>'. The user opens it once and keeps it open — all subsequent browser actions are visible in that same window. Do not show the raw token or URL parameters — just the link.
Input schema
{
  "properties": {
    "build_id": {
      "maxLength": 200,
      "minLength": 6,
      "pattern": "^pbld_[A-Za-z0-9_-]+$",
      "title": "Build Id",
      "type": "string"
    },
    "step_number": {
      "exclusiveMinimum": 0,
      "title": "Step Number",
      "type": "integer"
    }
  },
  "required": [
    "build_id",
    "step_number"
  ],
  "title": "planner_get_browser_sessionArguments",
  "type": "object"
}
planner_get_buildCheck the current status of a workflow build. Summarize for the user as 'designing...', 'testing...', 'ready to publish', etc. Keep internal fields like state_version and step statuses out of the user's view.
Input schema
{
  "properties": {
    "build_id": {
      "maxLength": 200,
      "minLength": 6,
      "pattern": "^pbld_[A-Za-z0-9_-]+$",
      "title": "Build Id",
      "type": "string"
    }
  },
  "required": [
    "build_id"
  ],
  "title": "planner_get_buildArguments",
  "type": "object"
}
planner_get_eventsRead build progress events. Summarize in plain language for the user; keep cursors and event names internal. MANDATORY: If the response includes a 'browser_live_view' field or '_user_facing_message' field, you MUST copy the full VNC URL into your reply as a clickable link. Never paraphrase it as 'the provided link' — always print the complete URL so the user can open it.
Input schema
{
  "properties": {
    "build_id": {
      "maxLength": 200,
      "minLength": 6,
      "pattern": "^pbld_[A-Za-z0-9_-]+$",
      "title": "Build Id",
      "type": "string"
    },
    "after": {
      "default": 0,
      "minimum": 0,
      "title": "After",
      "type": "integer"
    },
    "limit": {
      "default": 100,
      "exclusiveMinimum": 0,
      "title": "Limit",
      "type": "integer"
    }
  },
  "required": [
    "build_id"
  ],
  "title": "planner_get_eventsArguments",
  "type": "object"
}
planner_list_buildsList workflow builds for this organization. Present results as a simple list of workflows being built, with their current stage. Keep build IDs and cursors internal.
Input schema
{
  "properties": {
    "limit": {
      "default": 50,
      "exclusiveMinimum": 0,
      "title": "Limit",
      "type": "integer"
    },
    "cursor": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Cursor"
    },
    "status": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Status"
    }
  },
  "title": "planner_list_buildsArguments",
  "type": "object"
}
planner_message_stepSend feedback about a step without confirming or rejecting it. Use plain language when relaying the feedback status to the user.
Input schema
{
  "properties": {
    "build_id": {
      "maxLength": 200,
      "minLength": 6,
      "pattern": "^pbld_[A-Za-z0-9_-]+$",
      "title": "Build Id",
      "type": "string"
    },
    "step_number": {
      "exclusiveMinimum": 0,
      "title": "Step Number",
      "type": "integer"
    },
    "state_version": {
      "exclusiveMinimum": 0,
      "title": "State Version",
      "type": "integer"
    },
    "comment": {
      "title": "Comment",
      "type": "string"
    },
    "idempotency_key": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Idempotency Key"
    }
  },
  "required": [
    "build_id",
    "step_number",
    "state_version",
    "comment"
  ],
  "title": "planner_message_stepArguments",
  "type": "object"
}
planner_promotePublish a completed workflow so it appears in XY Flows and can be run. IMPORTANT — always pass 'name': a short, descriptive title for the workflow (2-6 words, Title Case). Examples: 'HN Top Stories Review', 'Daily Weather Dashboard', 'Bug Triage Queue'. This is what the user sees as the workflow title. NEVER use the user's full prompt as the name — summarize the workflow's purpose in a few words. After publishing, tell the user in plain language: 1. Their workflow is live — the sample data created during building is already in their queue and ready to review. 2. They can open the Queues tab to see it now. 3. To generate fresh data, they can click 'Run workflow' any time. 4. If the original request mentioned timing (daily, weekly, every morning), offer to set up a recurring schedule. Do NOT auto-run the workflow — the user controls when it runs. Do NOT say 'step-test entities' or 'test data' — call it 'sample data' or 'the data created during building'. Never mention tool names, build IDs, or definition IDs to the user. Say 'your workflow is published' not 'promoted to production definition'.
Input schema
{
  "properties": {
    "build_id": {
      "maxLength": 200,
      "minLength": 6,
      "pattern": "^pbld_[A-Za-z0-9_-]+$",
      "title": "Build Id",
      "type": "string"
    },
    "state_version": {
      "exclusiveMinimum": 0,
      "title": "State Version",
      "type": "integer"
    },
    "name": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Name"
    },
    "description": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Description"
    },
    "idempotency_key": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Idempotency Key"
    }
  },
  "required": [
    "build_id",
    "state_version"
  ],
  "title": "planner_promoteArguments",
  "type": "object"
}
planner_reject_stepRequest changes to a step with a description of what to fix. Tell the user 'requesting changes to this step'. Never expose action names or internal statuses.
Input schema
{
  "properties": {
    "build_id": {
      "maxLength": 200,
      "minLength": 6,
      "pattern": "^pbld_[A-Za-z0-9_-]+$",
      "title": "Build Id",
      "type": "string"
    },
    "step_number": {
      "exclusiveMinimum": 0,
      "title": "Step Number",
      "type": "integer"
    },
    "state_version": {
      "exclusiveMinimum": 0,
      "title": "State Version",
      "type": "integer"
    },
    "comment": {
      "title": "Comment",
      "type": "string"
    },
    "idempotency_key": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Idempotency Key"
    }
  },
  "required": [
    "build_id",
    "step_number",
    "state_version",
    "comment"
  ],
  "title": "planner_reject_stepArguments",
  "type": "object"
}
planner_respond_to_planAccept or request changes to the generated workflow plan. Accepting starts building each step. Requesting changes requires a description of what to revise. Tell the user 'the plan looks good, starting to build it' or 'requesting changes to the plan' — never mention APPROVE/REJECT, state versions, or durable commands.
Input schema
{
  "properties": {
    "build_id": {
      "maxLength": 200,
      "minLength": 6,
      "pattern": "^pbld_[A-Za-z0-9_-]+$",
      "title": "Build Id",
      "type": "string"
    },
    "action": {
      "enum": [
        "APPROVE",
        "REJECT"
      ],
      "title": "Action",
      "type": "string"
    },
    "state_version": {
      "exclusiveMinimum": 0,
      "title": "State Version",
      "type": "integer"
    },
    "comment": {
      "anyOf": [
        {
          "maxLength": 20000,
          "pattern": "\\S",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Comment"
    },
    "idempotency_key": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Idempotency Key"
    }
  },
  "required": [
    "build_id",
    "action",
    "state_version"
  ],
  "title": "planner_respond_to_planArguments",
  "type": "object"
}
planner_resumeResume a workflow build that was interrupted. Tell the user 'resuming where we left off'. Keep internal state hidden.
Input schema
{
  "properties": {
    "build_id": {
      "maxLength": 200,
      "minLength": 6,
      "pattern": "^pbld_[A-Za-z0-9_-]+$",
      "title": "Build Id",
      "type": "string"
    },
    "state_version": {
      "exclusiveMinimum": 0,
      "title": "State Version",
      "type": "integer"
    },
    "idempotency_key": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Idempotency Key"
    }
  },
  "required": [
    "build_id",
    "state_version"
  ],
  "title": "planner_resumeArguments",
  "type": "object"
}
planner_retry_stepRetry a step that needs another attempt. Tell the user 'retrying this step'. Keep internal details hidden.
Input schema
{
  "properties": {
    "build_id": {
      "maxLength": 200,
      "minLength": 6,
      "pattern": "^pbld_[A-Za-z0-9_-]+$",
      "title": "Build Id",
      "type": "string"
    },
    "step_number": {
      "exclusiveMinimum": 0,
      "title": "Step Number",
      "type": "integer"
    },
    "state_version": {
      "exclusiveMinimum": 0,
      "title": "State Version",
      "type": "integer"
    },
    "idempotency_key": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Idempotency Key"
    }
  },
  "required": [
    "build_id",
    "step_number",
    "state_version"
  ],
  "title": "planner_retry_stepArguments",
  "type": "object"
}
planner_save_templateSave a completed build as an organization workflow template.
Input schema
{
  "properties": {
    "build_id": {
      "maxLength": 200,
      "minLength": 6,
      "pattern": "^pbld_[A-Za-z0-9_-]+$",
      "title": "Build Id",
      "type": "string"
    },
    "name": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Name"
    },
    "description": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Description"
    },
    "category": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Category"
    }
  },
  "required": [
    "build_id"
  ],
  "title": "planner_save_templateArguments",
  "type": "object"
}
planner_set_browser_controlSwitch a Planner browser step between human and shared control.
Input schema
{
  "properties": {
    "build_id": {
      "maxLength": 200,
      "minLength": 6,
      "pattern": "^pbld_[A-Za-z0-9_-]+$",
      "title": "Build Id",
      "type": "string"
    },
    "step_number": {
      "exclusiveMinimum": 0,
      "title": "Step Number",
      "type": "integer"
    },
    "mode": {
      "enum": [
        "human",
        "shared"
      ],
      "title": "Mode",
      "type": "string"
    }
  },
  "required": [
    "build_id",
    "step_number",
    "mode"
  ],
  "title": "planner_set_browser_controlArguments",
  "type": "object"
}
planner_start_buildStart FDE implementation of an actual XY workflow. The user describes a business outcome — do not ask them for activity names, YAML, entity types, status enums, or internal IDs. Translate their request into the technical build context yourself. Ask only when a missing business fact would change behavior, access, or safety. Use this only for explicit build, modification, or implementation intent, including an accepted CIE-to-FDE handoff. Do not use it to analyze customer meetings, recordings, discovery, or specifications; those belong to internal_cie_authoring_start or internal_cie_authoring_send. For a recording-based build, set ``context.recorded_task_id`` to the organization-owned task ID. Credentials remain separate references. Track the returned identifiers internally for reconnection after disconnects, but never show them to the user. If the build reports a capacity limit, tell the user the system is temporarily busy and to try again shortly — do not mention model-capacity limits or internal error codes.
Input schema
{
  "$defs": {
    "PlannerBuildCreateContext": {
      "additionalProperties": false,
      "description": "Structured Planner hints; omit workflow requirements that belong in request.",
      "properties": {
        "portal_url": {
          "description": "Portal origin the workflow will access, for example https://portal.example.com.",
          "format": "uri",
          "minLength": 1,
          "title": "Portal Url",
          "type": "string"
        },
        "credential_id": {
          "description": "Active organization Password Vault credential reference; never a secret value.",
          "title": "Credential Id",
          "type": "string"
        },
        "credential_domain": {
          "description": "Credential lookup domain when an exact credential ID is not supplied.",
          "title": "Credential Domain",
          "type": "string"
        },
        "recorded_task_id": {
          "description": "Organization-owned Browser Agent recording ID used as workflow-build context.",
          "title": "Recorded Task Id",
          "type": "string"
        },
        "inputs": {
          "description": "Optional structured workflow input hints.",
          "items": {
            "additionalProperties": true,
            "type": "object"
          },
          "title": "Inputs",
          "type": "array"
        },
        "outputs": {
          "description": "Optional structured workflow output hints.",
          "items": {
            "additionalProperties": true,
            "type": "object"
          },
          "title": "Outputs",
          "type": "array"
        },
        "workflow": {
          "$ref": "#/$defs/PlannerWorkflowReference",
          "description": "Name an existing workflow to change it instead of building a new one.",
          "title": "Workflow"
        },
        "workflow_files": {
          "description": "Upload bundle IDs whose data files the workflow reads at run time.",
          "items": {
            "type": "string"
          },
          "title": "Workflow Files",
          "type": "array"
        }
      },
      "title": "PlannerBuildCreateContext",
      "type": "object"
    },
    "PlannerWorkflowReference": {
      "additionalProperties": false,
      "description": "An existing workflow this build should CHANGE rather than replace.",
      "properties": {
        "id": {
          "description": "Workflow definition identifier. Takes precedence over `name`.",
          "title": "Id",
          "type": "string"
        },
        "name": {
          "description": "Exact workflow name, matched case-insensitively within the organization.",
          "title": "Name",
          "type": "string"
        }
      },
      "title": "PlannerWorkflowReference",
      "type": "object"
    }
  },
  "properties": {
    "request": {
      "title": "Request",
      "type": "string"
    },
    "idempotency_key": {
      "maxLength": 200,
      "minLength": 1,
      "title": "Idempotency Key",
      "type": "string"
    },
    "context": {
      "anyOf": [
        {
          "$ref": "#/$defs/PlannerBuildCreateContext"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    },
    "existing_yaml": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Existing Yaml"
    },
    "modification_instructions": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Modification Instructions"
    }
  },
  "required": [
    "request",
    "idempotency_key"
  ],
  "title": "planner_start_buildArguments",
  "type": "object"
}
planner_test_stepRun a step's test again, with or without edits. Send edits to test a change before confirming it, or neither to re-test the saved step as it is, e.g. before publishing. The step then waits for a decision again, even if it was accepted. Tell the user 'testing your changes' or 're-testing this step'. Keep technical details internal.
Input schema
{
  "properties": {
    "build_id": {
      "maxLength": 200,
      "minLength": 6,
      "pattern": "^pbld_[A-Za-z0-9_-]+$",
      "title": "Build Id",
      "type": "string"
    },
    "step_number": {
      "exclusiveMinimum": 0,
      "title": "Step Number",
      "type": "integer"
    },
    "state_version": {
      "exclusiveMinimum": 0,
      "title": "State Version",
      "type": "integer"
    },
    "edited_code": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Edited Code"
    },
    "edited_yaml_params": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Edited Yaml Params"
    },
    "idempotency_key": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Idempotency Key"
    }
  },
  "required": [
    "build_id",
    "step_number",
    "state_version"
  ],
  "title": "planner_test_stepArguments",
  "type": "object"
}
planner_usageRead this organization's Planner, browser, and model-cost quota usage.
Input schema
{
  "properties": {},
  "title": "planner_usageArguments",
  "type": "object"
}
planner_wait_for_eventsWait for progress on the current build and summarize what changed. Safe after disconnect or restart. Preserve the returned cursor internally. Summarize progress in plain language: 'designing your workflow...', 'testing step 1...', 'all steps passed'. Never show raw event names, statuses, cursors, state versions, or identifiers to the user. MANDATORY: If the response includes a 'browser_live_view' field or '_user_facing_message' field, you MUST copy the full VNC URL into your reply. Print the complete URL as a clickable link — never say 'the provided link' or omit it. The user needs the exact URL to open in their browser. Do this the FIRST time you see it.
Input schema
{
  "properties": {
    "build_id": {
      "maxLength": 200,
      "minLength": 6,
      "pattern": "^pbld_[A-Za-z0-9_-]+$",
      "title": "Build Id",
      "type": "string"
    },
    "after": {
      "minimum": 0,
      "title": "After",
      "type": "integer"
    },
    "timeout_seconds": {
      "default": 20,
      "exclusiveMinimum": 0,
      "title": "Timeout Seconds",
      "type": "integer"
    },
    "limit": {
      "default": 100,
      "exclusiveMinimum": 0,
      "title": "Limit",
      "type": "integer"
    }
  },
  "required": [
    "build_id",
    "after"
  ],
  "title": "planner_wait_for_eventsArguments",
  "type": "object"
}
queue_ui_approveApprove this exact design version and its returned 16-character resolved_yaml_hash using a system API key with explicit approval authority. When the version exposes release_digest, supply that exact 64-character digest. Supply the current publication.live_version_id receipt, or explicit null before first publication, as expected_live_version_id; stale approval is rejected. This records system approval, not human review or approval by the key creator. It does not publish; personal keys and user-bound OAuth cannot use this operation.
Input schema
{
  "properties": {
    "design_id": {
      "description": "The queue design's `id` (starts with qds_).",
      "maxLength": 200,
      "pattern": "^qds_[A-Za-z0-9_-]+$",
      "title": "Design Id",
      "type": "string"
    },
    "version_id": {
      "maxLength": 200,
      "minLength": 1,
      "pattern": "^[A-Za-z0-9_-]+$",
      "title": "Version Id",
      "type": "string"
    },
    "resolved_yaml_hash": {
      "maxLength": 16,
      "minLength": 16,
      "pattern": "^[0-9a-f]{16}$",
      "title": "Resolved Yaml Hash",
      "type": "string"
    },
    "expected_live_version_id": {
      "anyOf": [
        {
          "maxLength": 200,
          "minLength": 1,
          "pattern": "^[A-Za-z0-9_-]+$",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Expected Live Version Id"
    },
    "release_digest": {
      "anyOf": [
        {
          "maxLength": 64,
          "minLength": 64,
          "pattern": "^[0-9a-f]{64}$",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Release Digest"
    }
  },
  "required": [
    "design_id",
    "version_id",
    "resolved_yaml_hash",
    "expected_live_version_id"
  ],
  "title": "queue_ui_approveArguments",
  "type": "object"
}
queue_ui_cancel_runStop the selected or current generation run. Saved versions and previews remain available.
Input schema
{
  "properties": {
    "design_id": {
      "description": "The queue design's `id` (starts with qds_).",
      "maxLength": 200,
      "pattern": "^qds_[A-Za-z0-9_-]+$",
      "title": "Design Id",
      "type": "string"
    },
    "run_id": {
      "anyOf": [
        {
          "maxLength": 200,
          "minLength": 1,
          "pattern": "^[A-Za-z0-9_-]+$",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Run Id"
    }
  },
  "required": [
    "design_id"
  ],
  "title": "queue_ui_cancel_runArguments",
  "type": "object"
}
queue_ui_cleanup_previewsFinish this design session and clean up its temporary previews. This closes the session before cleanup: no further messages or publishing are allowed. Start a fresh session to design again. Versions, publication history, and the live queue remain intact; cleanup retries and rollback still work.
Input schema
{
  "properties": {
    "design_id": {
      "description": "The queue design's `id` (starts with qds_).",
      "maxLength": 200,
      "pattern": "^qds_[A-Za-z0-9_-]+$",
      "title": "Design Id",
      "type": "string"
    }
  },
  "required": [
    "design_id"
  ],
  "title": "queue_ui_cleanup_previewsArguments",
  "type": "object"
}
queue_ui_get_designCheck a design's progress, current version, review link, and live publication.
Input schema
{
  "properties": {
    "design_id": {
      "description": "The queue design's `id` (starts with qds_).",
      "maxLength": 200,
      "pattern": "^qds_[A-Za-z0-9_-]+$",
      "title": "Design Id",
      "type": "string"
    }
  },
  "required": [
    "design_id"
  ],
  "title": "queue_ui_get_designArguments",
  "type": "object"
}
queue_ui_get_eventsRead saved generation progress and summarize it in ordinary language. Keep run_id and after_seq together; start at zero for a new run. After a connection failure, inspect state and events instead of blindly sending another mutation. Generation is not approval or publication. Do not show raw event names or IDs unless the user requests debugging details.
Input schema
{
  "properties": {
    "design_id": {
      "description": "The queue design's `id` (starts with qds_).",
      "maxLength": 200,
      "pattern": "^qds_[A-Za-z0-9_-]+$",
      "title": "Design Id",
      "type": "string"
    },
    "run_id": {
      "anyOf": [
        {
          "maxLength": 200,
          "minLength": 1,
          "pattern": "^[A-Za-z0-9_-]+$",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Run Id"
    },
    "after_seq": {
      "default": 0,
      "minimum": 0,
      "title": "After Seq",
      "type": "integer"
    },
    "limit": {
      "default": 100,
      "maximum": 100,
      "minimum": 1,
      "title": "Limit",
      "type": "integer"
    }
  },
  "required": [
    "design_id"
  ],
  "title": "queue_ui_get_eventsArguments",
  "type": "object"
}
queue_ui_get_versionInspect one exact saved version and open its preview for human review.
Input schema
{
  "properties": {
    "design_id": {
      "description": "The queue design's `id` (starts with qds_).",
      "maxLength": 200,
      "pattern": "^qds_[A-Za-z0-9_-]+$",
      "title": "Design Id",
      "type": "string"
    },
    "version_id": {
      "maxLength": 200,
      "minLength": 1,
      "pattern": "^[A-Za-z0-9_-]+$",
      "title": "Version Id",
      "type": "string"
    }
  },
  "required": [
    "design_id",
    "version_id"
  ],
  "title": "queue_ui_get_versionArguments",
  "type": "object"
}
queue_ui_list_designsFind your saved queue designs and their generation or review status.
Input schema
{
  "properties": {
    "limit": {
      "default": 50,
      "maximum": 100,
      "minimum": 1,
      "title": "Limit",
      "type": "integer"
    },
    "cursor": {
      "anyOf": [
        {
          "maxLength": 500,
          "minLength": 1,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Cursor"
    }
  },
  "title": "queue_ui_list_designsArguments",
  "type": "object"
}
queue_ui_list_targetsFind workflows whose operator screens your personal or system credential may design.
Input schema
{
  "properties": {
    "limit": {
      "default": 50,
      "maximum": 100,
      "minimum": 1,
      "title": "Limit",
      "type": "integer"
    },
    "cursor": {
      "anyOf": [
        {
          "maxLength": 500,
          "minLength": 1,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Cursor"
    }
  },
  "title": "queue_ui_list_targetsArguments",
  "type": "object"
}
queue_ui_list_versionsCompare saved design versions, validation results, and preview links.
Input schema
{
  "properties": {
    "design_id": {
      "description": "The queue design's `id` (starts with qds_).",
      "maxLength": 200,
      "pattern": "^qds_[A-Za-z0-9_-]+$",
      "title": "Design Id",
      "type": "string"
    },
    "limit": {
      "default": 50,
      "maximum": 100,
      "minimum": 1,
      "title": "Limit",
      "type": "integer"
    },
    "cursor": {
      "anyOf": [
        {
          "maxLength": 500,
          "minLength": 1,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Cursor"
    }
  },
  "required": [
    "design_id"
  ],
  "title": "queue_ui_list_versionsArguments",
  "type": "object"
}
queue_ui_publishPublish an exact approved design version_id with authorized personal or system access. Personal publication also requires an ADMIN, PARTNER, or STAFF organization role plus explicit workflow configure permission; a scope alone is not enough. expected_live_version_id is the publication.live_version_id receipt, or null before first publication, not a design version. Approval and target publication permission are checked separately. Cannot approve a design or publish from a closed session.
Input schema
{
  "properties": {
    "design_id": {
      "description": "The queue design's `id` (starts with qds_).",
      "maxLength": 200,
      "pattern": "^qds_[A-Za-z0-9_-]+$",
      "title": "Design Id",
      "type": "string"
    },
    "version_id": {
      "maxLength": 200,
      "minLength": 1,
      "pattern": "^[A-Za-z0-9_-]+$",
      "title": "Version Id",
      "type": "string"
    },
    "expected_live_version_id": {
      "anyOf": [
        {
          "maxLength": 200,
          "minLength": 1,
          "pattern": "^[A-Za-z0-9_-]+$",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Expected Live Version Id"
    }
  },
  "required": [
    "design_id",
    "version_id",
    "expected_live_version_id"
  ],
  "title": "queue_ui_publishArguments",
  "type": "object"
}
queue_ui_rollbackRestore an earlier operator screen without changing business data. to_version_id is a receipt from publication.history or publication.baseline_version_id, not a design version. expected_live_version_id is the current publication.live_version_id receipt. Requires authorized personal or system publication access; works after session cleanup.
Input schema
{
  "properties": {
    "design_id": {
      "description": "The queue design's `id` (starts with qds_).",
      "maxLength": 200,
      "pattern": "^qds_[A-Za-z0-9_-]+$",
      "title": "Design Id",
      "type": "string"
    },
    "to_version_id": {
      "maxLength": 200,
      "minLength": 1,
      "pattern": "^[A-Za-z0-9_-]+$",
      "title": "To Version Id",
      "type": "string"
    },
    "expected_live_version_id": {
      "anyOf": [
        {
          "maxLength": 200,
          "minLength": 1,
          "pattern": "^[A-Za-z0-9_-]+$",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Expected Live Version Id"
    }
  },
  "required": [
    "design_id",
    "to_version_id",
    "expected_live_version_id"
  ],
  "title": "queue_ui_rollbackArguments",
  "type": "object"
}
queue_ui_send_messageDescribe screen changes in business language to create a new version. Translate requests such as changing what operators see, filter, decide, or do into the UI contract internally. Reuse the request key when retrying.
Input schema
{
  "properties": {
    "design_id": {
      "description": "The queue design's `id` (starts with qds_).",
      "maxLength": 200,
      "pattern": "^qds_[A-Za-z0-9_-]+$",
      "title": "Design Id",
      "type": "string"
    },
    "prompt": {
      "maxLength": 20000,
      "minLength": 1,
      "pattern": "\\S",
      "title": "Prompt",
      "type": "string"
    },
    "idempotency_key": {
      "maxLength": 200,
      "minLength": 1,
      "title": "Idempotency Key",
      "type": "string"
    }
  },
  "required": [
    "design_id",
    "prompt",
    "idempotency_key"
  ],
  "title": "queue_ui_send_messageArguments",
  "type": "object"
}
queue_ui_start_designDescribe an operator screen in ordinary business language. Explain what work people should see, which details help them decide, and what actions they need. Do not ask the user for entities, status enums, fields, or a UI schema; the designer infers those from the workflow. Keep the request key for retries, follow progress events, then open the returned review link.
Input schema
{
  "properties": {
    "workflow_definition_id": {
      "maxLength": 200,
      "minLength": 1,
      "pattern": "^[A-Za-z0-9_-]+$",
      "title": "Workflow Definition Id",
      "type": "string"
    },
    "prompt": {
      "maxLength": 20000,
      "minLength": 1,
      "pattern": "\\S",
      "title": "Prompt",
      "type": "string"
    },
    "idempotency_key": {
      "maxLength": 200,
      "minLength": 1,
      "title": "Idempotency Key",
      "type": "string"
    }
  },
  "required": [
    "workflow_definition_id",
    "prompt",
    "idempotency_key"
  ],
  "title": "queue_ui_start_designArguments",
  "type": "object"
}
schedule_createSet up a recurring schedule for a workflow. Tell the user their workflow will run automatically on the specified schedule. Never expose overlap policies, cron syntax details, or definition IDs.
Input schema
{
  "properties": {
    "workflow_definition_id": {
      "maxLength": 500,
      "minLength": 1,
      "pattern": "^[A-Za-z0-9_.:-]+$",
      "title": "Workflow Definition Id",
      "type": "string"
    },
    "cron_expression": {
      "title": "Cron Expression",
      "type": "string"
    },
    "input": {
      "anyOf": [
        {
          "additionalProperties": true,
          "type": "object"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Input"
    },
    "overlap_policy": {
      "default": "BUFFER_ALL",
      "title": "Overlap Policy",
      "type": "string"
    },
    "note": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Note"
    }
  },
  "required": [
    "workflow_definition_id",
    "cron_expression"
  ],
  "title": "schedule_createArguments",
  "type": "object"
}
schedule_deleteDelete a schedule; the workflow definition remains intact.
Input schema
{
  "properties": {
    "workflow_definition_id": {
      "maxLength": 500,
      "minLength": 1,
      "pattern": "^[A-Za-z0-9_.:-]+$",
      "title": "Workflow Definition Id",
      "type": "string"
    }
  },
  "required": [
    "workflow_definition_id"
  ],
  "title": "schedule_deleteArguments",
  "type": "object"
}
schedule_getRead one workflow definition’s recurring schedule.
Input schema
{
  "properties": {
    "workflow_definition_id": {
      "maxLength": 500,
      "minLength": 1,
      "pattern": "^[A-Za-z0-9_.:-]+$",
      "title": "Workflow Definition Id",
      "type": "string"
    }
  },
  "required": [
    "workflow_definition_id"
  ],
  "title": "schedule_getArguments",
  "type": "object"
}
schedule_pausePause future actions for one workflow schedule.
Input schema
{
  "properties": {
    "workflow_definition_id": {
      "maxLength": 500,
      "minLength": 1,
      "pattern": "^[A-Za-z0-9_.:-]+$",
      "title": "Workflow Definition Id",
      "type": "string"
    },
    "note": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Note"
    }
  },
  "required": [
    "workflow_definition_id"
  ],
  "title": "schedule_pauseArguments",
  "type": "object"
}
schedule_resumeResume future actions for one paused workflow schedule.
Input schema
{
  "properties": {
    "workflow_definition_id": {
      "maxLength": 500,
      "minLength": 1,
      "pattern": "^[A-Za-z0-9_.:-]+$",
      "title": "Workflow Definition Id",
      "type": "string"
    },
    "note": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Note"
    }
  },
  "required": [
    "workflow_definition_id"
  ],
  "title": "schedule_resumeArguments",
  "type": "object"
}
schedule_triggerTrigger now; reuse idempotency_key for every retry of one attempt.
Input schema
{
  "properties": {
    "workflow_definition_id": {
      "maxLength": 500,
      "minLength": 1,
      "pattern": "^[A-Za-z0-9_.:-]+$",
      "title": "Workflow Definition Id",
      "type": "string"
    },
    "overlap_policy": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Overlap Policy"
    },
    "idempotency_key": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Idempotency Key"
    }
  },
  "required": [
    "workflow_definition_id"
  ],
  "title": "schedule_triggerArguments",
  "type": "object"
}
schedule_updateUpdate supplied fields on an existing workflow schedule.
Input schema
{
  "properties": {
    "workflow_definition_id": {
      "maxLength": 500,
      "minLength": 1,
      "pattern": "^[A-Za-z0-9_.:-]+$",
      "title": "Workflow Definition Id",
      "type": "string"
    },
    "cron_expression": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Cron Expression"
    },
    "input": {
      "anyOf": [
        {
          "additionalProperties": true,
          "type": "object"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Input"
    },
    "overlap_policy": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Overlap Policy"
    },
    "note": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Note"
    }
  },
  "required": [
    "workflow_definition_id"
  ],
  "title": "schedule_updateArguments",
  "type": "object"
}
schedules_listList this organization’s workflow schedules and recent runs.
Input schema
{
  "properties": {
    "limit": {
      "default": 25,
      "exclusiveMinimum": 0,
      "title": "Limit",
      "type": "integer"
    },
    "offset": {
      "default": 0,
      "minimum": 0,
      "title": "Offset",
      "type": "integer"
    },
    "paused_only": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Paused Only"
    }
  },
  "title": "schedules_listArguments",
  "type": "object"
}
session_getRead state and capabilities for Planner, Browser, or queue design sessions. Queue designs also require queue_ui:read.
Input schema
{
  "properties": {
    "target_id": {
      "description": "A build (pbld_), browser (bas_) or queue design (qds_) id.",
      "maxLength": 200,
      "minLength": 5,
      "pattern": "^(?:pbld_|bas_|qds_)[A-Za-z0-9_-]+$",
      "title": "Target Id",
      "type": "string"
    }
  },
  "required": [
    "target_id"
  ],
  "title": "session_getArguments",
  "type": "object"
}
session_get_eventsReplay durable events when the session advertises replay_events=true.
Input schema
{
  "properties": {
    "target_id": {
      "description": "A build (pbld_), browser (bas_) or queue design (qds_) id.",
      "maxLength": 200,
      "minLength": 5,
      "pattern": "^(?:pbld_|bas_|qds_)[A-Za-z0-9_-]+$",
      "title": "Target Id",
      "type": "string"
    },
    "after": {
      "default": 0,
      "minimum": 0,
      "title": "After",
      "type": "integer"
    },
    "limit": {
      "default": 100,
      "maximum": 500,
      "minimum": 1,
      "title": "Limit",
      "type": "integer"
    }
  },
  "required": [
    "target_id"
  ],
  "title": "session_get_eventsArguments",
  "type": "object"
}
session_sendSend feedback to Planner, Browser, or a queue design. Queue designs also require queue_ui:write; follow their events_path for progress.
Input schema
{
  "properties": {
    "target_id": {
      "description": "A build (pbld_), browser (bas_) or queue design (qds_) id.",
      "maxLength": 200,
      "minLength": 5,
      "pattern": "^(?:pbld_|bas_|qds_)[A-Za-z0-9_-]+$",
      "title": "Target Id",
      "type": "string"
    },
    "message": {
      "maxLength": 200000,
      "minLength": 1,
      "title": "Message",
      "type": "string"
    },
    "source_session_id": {
      "anyOf": [
        {
          "description": "A build (pbld_), browser (bas_) or queue design (qds_) id.",
          "maxLength": 200,
          "minLength": 5,
          "pattern": "^(?:pbld_|bas_|qds_)[A-Za-z0-9_-]+$",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Source Session Id"
    },
    "step_number": {
      "anyOf": [
        {
          "exclusiveMinimum": 0,
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Step Number"
    },
    "expected_state_version": {
      "anyOf": [
        {
          "exclusiveMinimum": 0,
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Expected State Version"
    },
    "idempotency_key": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Idempotency Key"
    }
  },
  "required": [
    "target_id",
    "message"
  ],
  "title": "session_sendArguments",
  "type": "object"
}
session_waitBoundedly wait for replayable session events without losing the cursor.
Input schema
{
  "properties": {
    "target_id": {
      "description": "A build (pbld_), browser (bas_) or queue design (qds_) id.",
      "maxLength": 200,
      "minLength": 5,
      "pattern": "^(?:pbld_|bas_|qds_)[A-Za-z0-9_-]+$",
      "title": "Target Id",
      "type": "string"
    },
    "after": {
      "minimum": 0,
      "title": "After",
      "type": "integer"
    },
    "timeout_seconds": {
      "default": 20,
      "exclusiveMinimum": 0,
      "title": "Timeout Seconds",
      "type": "integer"
    },
    "limit": {
      "default": 100,
      "maximum": 500,
      "minimum": 1,
      "title": "Limit",
      "type": "integer"
    }
  },
  "required": [
    "target_id",
    "after"
  ],
  "title": "session_waitArguments",
  "type": "object"
}
sms_inbox_messagesRead messages received by this organization's dedicated VoIP inbox.
Input schema
{
  "properties": {
    "after_ms": {
      "default": 0,
      "minimum": 0,
      "title": "After Ms",
      "type": "integer"
    },
    "limit": {
      "default": 20,
      "maximum": 50,
      "minimum": 1,
      "title": "Limit",
      "type": "integer"
    }
  },
  "title": "sms_inbox_messagesArguments",
  "type": "object"
}
sms_inbox_provisionProvision or retrieve this organization's dedicated VoIP SMS number.
Input schema
{
  "properties": {
    "country_code": {
      "const": "US",
      "default": "US",
      "title": "Country Code",
      "type": "string"
    },
    "area_code": {
      "anyOf": [
        {
          "pattern": "^[0-9]{3}$",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Area Code"
    }
  },
  "title": "sms_inbox_provisionArguments",
  "type": "object"
}
webhook_configurationGet supported events and organization workflow/queue-state setup choices. Use these workflow IDs and declared queue states to configure actual run outcomes, daily results, and review-required notifications. No raw workflow definitions, item data, or signing secrets are exposed.
Input schema
{
  "properties": {},
  "title": "webhook_configurationArguments",
  "type": "object"
}
webhook_deliveries_listInspect delivery, retry, and dead-letter state without response bodies.
Input schema
{
  "properties": {
    "subscription_id": {
      "anyOf": [
        {
          "maxLength": 500,
          "minLength": 1,
          "pattern": "^[A-Za-z0-9_.:-]+$",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Subscription Id"
    },
    "limit": {
      "default": 50,
      "maximum": 100,
      "minimum": 1,
      "title": "Limit",
      "type": "integer"
    }
  },
  "title": "webhook_deliveries_listArguments",
  "type": "object"
}
webhook_delivery_getRead one webhook delivery status without receiver response bodies.
Input schema
{
  "properties": {
    "delivery_id": {
      "maxLength": 500,
      "minLength": 1,
      "pattern": "^[A-Za-z0-9_.:-]+$",
      "title": "Delivery Id",
      "type": "string"
    }
  },
  "required": [
    "delivery_id"
  ],
  "title": "webhook_delivery_getArguments",
  "type": "object"
}
webhook_delivery_redeliverExplicitly retry a dead-lettered event with its original event ID.
Input schema
{
  "properties": {
    "delivery_id": {
      "maxLength": 500,
      "minLength": 1,
      "pattern": "^[A-Za-z0-9_.:-]+$",
      "title": "Delivery Id",
      "type": "string"
    }
  },
  "required": [
    "delivery_id"
  ],
  "title": "webhook_delivery_redeliverArguments",
  "type": "object"
}
webhook_subscription_createCreate an organization HTTPS receiver; save its one-time signing secret. For workflow.run.completed/failed, workflow.daily_results, or workflow.human_review_required, supply workflow_notifications selecting organization workflow IDs. Review alerts need explicit queue review_statuses; daily reports use timezone and daily_send_time (defaults UTC, 09:00). Signing secrets verify outbound events; they are not API authorization keys.
Input schema
{
  "$defs": {
    "WorkflowWebhookRule": {
      "additionalProperties": false,
      "properties": {
        "workflow_id": {
          "maxLength": 200,
          "minLength": 1,
          "pattern": "^[A-Za-z0-9_.:-]+$",
          "title": "Workflow Id",
          "type": "string"
        },
        "review_statuses": {
          "items": {
            "type": "string"
          },
          "maxItems": 25,
          "title": "Review Statuses",
          "type": "array"
        }
      },
      "required": [
        "workflow_id"
      ],
      "title": "WorkflowWebhookRule",
      "type": "object"
    },
    "WorkflowWebhookSettings": {
      "additionalProperties": false,
      "properties": {
        "workflows": {
          "description": "Explicit workflows owned by this organization; never a cross-org wildcard.",
          "items": {
            "$ref": "#/$defs/WorkflowWebhookRule"
          },
          "maxItems": 25,
          "minItems": 1,
          "title": "Workflows",
          "type": "array"
        },
        "timezone": {
          "default": "UTC",
          "maxLength": 100,
          "minLength": 1,
          "title": "Timezone",
          "type": "string"
        },
        "daily_send_time": {
          "default": "09:00",
          "description": "Local send time for the previous calendar day's daily results.",
          "pattern": "^(?:[01]\\d|2[0-3]):[0-5]\\d$",
          "title": "Daily Send Time",
          "type": "string"
        }
      },
      "required": [
        "workflows"
      ],
      "title": "WorkflowWebhookSettings",
      "type": "object"
    }
  },
  "properties": {
    "url": {
      "title": "Url",
      "type": "string"
    },
    "event_types": {
      "items": {
        "type": "string"
      },
      "title": "Event Types",
      "type": "array"
    },
    "description": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Description"
    },
    "idempotency_key": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Idempotency Key"
    },
    "workflow_notifications": {
      "anyOf": [
        {
          "$ref": "#/$defs/WorkflowWebhookSettings"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    }
  },
  "required": [
    "url",
    "event_types"
  ],
  "title": "webhook_subscription_createArguments",
  "type": "object"
}
webhook_subscription_deleteIrreversibly disable and hide a webhook; delivery history remains.
Input schema
{
  "properties": {
    "subscription_id": {
      "maxLength": 500,
      "minLength": 1,
      "pattern": "^[A-Za-z0-9_.:-]+$",
      "title": "Subscription Id",
      "type": "string"
    },
    "version": {
      "minimum": 1,
      "title": "Version",
      "type": "integer"
    }
  },
  "required": [
    "subscription_id",
    "version"
  ],
  "title": "webhook_subscription_deleteArguments",
  "type": "object"
}
webhook_subscription_getRead one webhook subscription without its signing secret.
Input schema
{
  "properties": {
    "subscription_id": {
      "maxLength": 500,
      "minLength": 1,
      "pattern": "^[A-Za-z0-9_.:-]+$",
      "title": "Subscription Id",
      "type": "string"
    }
  },
  "required": [
    "subscription_id"
  ],
  "title": "webhook_subscription_getArguments",
  "type": "object"
}
webhook_subscription_rotate_secretRotate a signing secret and save the one-time replacement returned.
Input schema
{
  "properties": {
    "subscription_id": {
      "maxLength": 500,
      "minLength": 1,
      "pattern": "^[A-Za-z0-9_.:-]+$",
      "title": "Subscription Id",
      "type": "string"
    },
    "version": {
      "minimum": 1,
      "title": "Version",
      "type": "integer"
    }
  },
  "required": [
    "subscription_id",
    "version"
  ],
  "title": "webhook_subscription_rotate_secretArguments",
  "type": "object"
}
webhook_subscription_testQueue one signed test event for an active webhook subscription.
Input schema
{
  "properties": {
    "subscription_id": {
      "maxLength": 500,
      "minLength": 1,
      "pattern": "^[A-Za-z0-9_.:-]+$",
      "title": "Subscription Id",
      "type": "string"
    },
    "idempotency_key": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Idempotency Key"
    }
  },
  "required": [
    "subscription_id"
  ],
  "title": "webhook_subscription_testArguments",
  "type": "object"
}
webhook_subscription_updateConditionally update an organization webhook subscription.
Input schema
{
  "$defs": {
    "WorkflowWebhookRule": {
      "additionalProperties": false,
      "properties": {
        "workflow_id": {
          "maxLength": 200,
          "minLength": 1,
          "pattern": "^[A-Za-z0-9_.:-]+$",
          "title": "Workflow Id",
          "type": "string"
        },
        "review_statuses": {
          "items": {
            "type": "string"
          },
          "maxItems": 25,
          "title": "Review Statuses",
          "type": "array"
        }
      },
      "required": [
        "workflow_id"
      ],
      "title": "WorkflowWebhookRule",
      "type": "object"
    },
    "WorkflowWebhookSettings": {
      "additionalProperties": false,
      "properties": {
        "workflows": {
          "description": "Explicit workflows owned by this organization; never a cross-org wildcard.",
          "items": {
            "$ref": "#/$defs/WorkflowWebhookRule"
          },
          "maxItems": 25,
          "minItems": 1,
          "title": "Workflows",
          "type": "array"
        },
        "timezone": {
          "default": "UTC",
          "maxLength": 100,
          "minLength": 1,
          "title": "Timezone",
          "type": "string"
        },
        "daily_send_time": {
          "default": "09:00",
          "description": "Local send time for the previous calendar day's daily results.",
          "pattern": "^(?:[01]\\d|2[0-3]):[0-5]\\d$",
          "title": "Daily Send Time",
          "type": "string"
        }
      },
      "required": [
        "workflows"
      ],
      "title": "WorkflowWebhookSettings",
      "type": "object"
    }
  },
  "properties": {
    "subscription_id": {
      "maxLength": 500,
      "minLength": 1,
      "pattern": "^[A-Za-z0-9_.:-]+$",
      "title": "Subscription Id",
      "type": "string"
    },
    "version": {
      "minimum": 1,
      "title": "Version",
      "type": "integer"
    },
    "url": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Url"
    },
    "event_types": {
      "anyOf": [
        {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Event Types"
    },
    "description": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Description"
    },
    "status": {
      "anyOf": [
        {
          "enum": [
            "active",
            "disabled"
          ],
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Status"
    },
    "workflow_notifications": {
      "anyOf": [
        {
          "$ref": "#/$defs/WorkflowWebhookSettings"
        },
        {
          "type": "null"
        }
      ],
      "title": "Workflow Notifications"
    }
  },
  "required": [
    "subscription_id",
    "version"
  ],
  "title": "webhook_subscription_updateArguments",
  "type": "object"
}
webhook_subscriptions_listList organization webhook subscriptions without signing secrets.
Input schema
{
  "properties": {},
  "title": "webhook_subscriptions_listArguments",
  "type": "object"
}
workflow_executeRun a workflow once now. Tell the user their workflow is running and they will see results in the Queues tab shortly. Never expose the definition ID or execution ID unless they ask for debugging details.
Input schema
{
  "properties": {
    "workflow_definition_id": {
      "maxLength": 500,
      "minLength": 1,
      "pattern": "^[A-Za-z0-9_.:-]+$",
      "title": "Workflow Definition Id",
      "type": "string"
    },
    "input": {
      "anyOf": [
        {
          "additionalProperties": true,
          "type": "object"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Input"
    },
    "idempotency_key": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Idempotency Key"
    }
  },
  "required": [
    "workflow_definition_id"
  ],
  "title": "workflow_executeArguments",
  "type": "object"
}
workflow_get_phasesRead safe activity-phase status for an exact workflow run.
Input schema
{
  "properties": {
    "workflow_instance_id": {
      "maxLength": 500,
      "minLength": 1,
      "pattern": "^[^/\\\\?#]+$",
      "title": "Workflow Instance Id",
      "type": "string"
    }
  },
  "required": [
    "workflow_instance_id"
  ],
  "title": "workflow_get_phasesArguments",
  "type": "object"
}
workflow_metric_dashboard_getRender one approved metric view for an explicitly granted workflow.
Input schema
{
  "properties": {
    "workflow_definition_id": {
      "maxLength": 500,
      "minLength": 1,
      "pattern": "^[A-Za-z0-9_.:-]+$",
      "title": "Workflow Definition Id",
      "type": "string"
    },
    "dashboard_id": {
      "maxLength": 500,
      "minLength": 1,
      "pattern": "^[A-Za-z0-9_.:-]+$",
      "title": "Dashboard Id",
      "type": "string"
    },
    "from_date": {
      "anyOf": [
        {
          "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "From Date"
    },
    "to_date": {
      "anyOf": [
        {
          "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "To Date"
    }
  },
  "required": [
    "workflow_definition_id",
    "dashboard_id"
  ],
  "title": "workflow_metric_dashboard_getArguments",
  "type": "object"
}
workflow_metric_dashboards_listList approved metric views for one explicitly granted workflow.
Input schema
{
  "properties": {
    "workflow_definition_id": {
      "maxLength": 500,
      "minLength": 1,
      "pattern": "^[A-Za-z0-9_.:-]+$",
      "title": "Workflow Definition Id",
      "type": "string"
    }
  },
  "required": [
    "workflow_definition_id"
  ],
  "title": "workflow_metric_dashboards_listArguments",
  "type": "object"
}

Security model

Authorization defines the boundary.

  • Interactive OAuth access is bound to the approving user, selected XY organization, exact MCP resource, and approved scopes.
  • Personal API keys are also user-bound; service API keys represent unattended organization systems rather than a human actor.
  • Every OAuth request rechecks the user's current organization membership and assigned API scopes; endpoint-specific workflow permissions still apply.
  • Interactive access must be enabled for the organization, and each user receives only the scopes assigned to their identity.
  • Every tool operation receives a request ID and a payload-free audit record with its credential, actor when applicable, organization, route, outcome, and opaque target identifiers.
  • OAuth grants and API keys are environment-bound; this public guide always uses production.
  • Tool discovery is filtered to the scopes on the current OAuth grant or API key.
  • Queue UI Designer supports personal access with explicit workflow permissions and system keys with organization authorization. Only system keys with queue_ui:approve can use queue_ui_approve; personal OAuth cannot. Publish never grants approval.
  • API keys belong in a secret manager or OS keychain, never in a URL or source control.
  • Credential-bound workflows require an exact visible Password Vault reference. MCP clients can discover safe metadata and receive credential IDs, never plaintext secrets.