Changelog
Every change to the Passo API and MCP contract.
Every change to the public contract is recorded here. Entries track the committed API spec and MCP tool inventory, so this page cannot drift from what the surface actually does — a change to an endpoint or a tool lands in the same change as its entry below.
Read Conventions → Versioning for what counts as breaking, and how deprecations are announced before anything is removed.
Collection MCP tools require a workspace
Breaking change for multi-workspace callers
The MCP tools that list across a workspace — list_deals, list_jobs and
list_videos — now take the same workspace rule as REST's Passo-Workspace
header. Pass the workspace's wsp_ public id as workspaceId:
- If you belong to exactly one workspace, omit it — it is filled in automatically. Nothing changes for you.
- If you belong to more than one (an agency across several brands, or staff
working through a support grant), a call with no
workspaceIdis now refused with{ error: "workspace_required" }, whoseworkspacesfield lists your workspaces (id,name,slug) so you can pick one or ask the user. Before, such a call returned rows spanning every workspace — which could lead an agent to act in the wrong tenant on its next step. Find a workspace id withlist_workspaces.
Tools keyed by a resource id (get_video_review, get_script, …) and the
per-deal reads (list_deliverables, get_deal_activity) are unaffected — their
workspace is already implied by the id. list_workspace_members and
get_notification_preferences already required a workspaceId.
v1 — Initial surface
The first version of the Passo developer surface.
Workspace and agency ids are prefixed
Workspaces and agencies are identified on the contract by a prefixed public id
(wsp_…, agy_…), matching the cre_/vid_/scr_/dlv_ scheme every other
resource uses — see Concepts.
Pass it in the Passo-Workspace header or a tool's workspaceId; a raw uuid is
rejected with a 400. This is the surface as shipped — no uuid form was ever
public — so there is nothing to migrate.
MCP server
The remote MCP server is public at /v1/mcp, with a read-only variant at
/v1/mcp/readonly. Authentication is OAuth 2.1 with dynamic client registration;
an agent acts as the user who authorised it. Tools in this version:
whoami— the connected user's profile.list_workspaces— the workspaces the user belongs to.list_videos_awaiting_review— the review queue: videos whose current cut isin_review.get_video_review— a single video and its full version history.list_deals— deals the user can see, newest first.list_jobs— jobs (briefs) the user can see, newest first.list_workspace_members— the roster of a workspace.get_script— a script and its version history.create_deal— assign a creator to a job.create_job— create a job in a workspace.invite_member— invite a teammate to a workspace by email.
See the tools reference for inputs and example results. Some operations are REST-only by design — see Conventions.
REST API
The REST API is built and documented, and published on request. This version
covers workspaces and membership (/me, /workspaces, workspace members and
invites), the creator-video domain (jobs, deals, videos, sign-offs), and scripts
(detail and sign-offs). See the
API reference for every endpoint.
Conventions established
- Clamped pagination (
limitdefault 20, max 100;offset;totalin every list response). - HTTP status codes with a
code/messagebody for REST; structured{ error }results for MCP tools. - Path versioning (
/v1,/v1/mcp); additive changes are non-breaking.