Skip to content

Add Action Gateway endpoint and endpoint version API specs - #1292

Open
bbatha wants to merge 12 commits into
mainfrom
bbatha/ag-endpoints
Open

bbatha wants to merge 12 commits into
mainfrom
bbatha/ag-endpoints

Conversation

@bbatha

@bbatha bbatha commented Oct 29, 2026 •

Copy link
Copy Markdown
Contributor

Summary

This adds the public API spec for Action Gateway endpoints and endpoint versions, and marks the legacy session routes deprecated. An endpoint is a named series of immutable versions with a live MCP URL that follows the head and a pinned URL for each version. The spec follows Tool Registry's merged REST contract, so docs and generated clients describe what the service returns.

Scope

+POST   /v2/action-gateway/endpoints
+GET    /v2/action-gateway/endpoints
+GET    /v2/action-gateway/endpoints/search
+GET    /v2/action-gateway/endpoints/{endpoint_id}
+PATCH  /v2/action-gateway/endpoints/{endpoint_id}
+DELETE /v2/action-gateway/endpoints/{endpoint_id}
+POST   /v2/action-gateway/endpoints/{endpoint_id}/versions
+GET    /v2/action-gateway/endpoints/{endpoint_id}/versions
+POST   /v2/action-gateway/endpoints/{endpoint_id}/versions:promote
+GET    /v2/action-gateway/endpoint-versions/{version_id}
+DELETE /v2/action-gateway/endpoint-versions/{version_id}

Reviewer callouts

  • 🟡 Affects: public API reference, generated Python and TypeScript clients · Customers: new endpoint routes appear in the docs and SDKs; the session routes are marked deprecated and keep their current behavior.
  • Insights consent belongs to the endpoint: insights is on create, PATCH, and endpoint responses. Version insights is deprecated: true; requests may send it and the service ignores it, and responses never include it.
  • PATCH accepts name, insights, or both and merges insights per signal. A body with neither returns 400 endpoint_update_empty; the schema can only approximate that with minProperties: 1.
  • Service-managed endpoints are hidden. Reads and writes return the same 404 as an unknown ID, and DELETE returns the same 204 and changes nothing. spectral/ruleset.yml exempts that DELETE from the required-404 rule.
  • head_version uses nullable with allOf, like other schemas in this repo. The service sends null once no live version remains.

bbatha and others added 8 commits October 20, 2026 14:29
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Reword endpoint mcp_url descriptions to reflect head-following host
selection and default-host fallback when no version is live.

Co-authored-by: Cursor <cursoragent@cursor.com>
The endpoint insight log and trace properties and the session parent ID
properties composed scalar schemas through allOf without a matching type,
which the generated-client precheck rejects. State the scalar type on
the composed properties and inline the session parent ID shapes.
@bbatha
bbatha requested a review from SSharma-10 October 30, 2026 17:43
bbatha and others added 4 commits November 2, 2026 13:12
Document endpoint-level Insights consent on create, PATCH, and endpoint
responses, and make PATCH a partial update that accepts a name, Insights
signals, or both. Mark version Insights deprecated and point it at the
endpoint. Add endpoint search and session conversion, document that
service-managed endpoints behave like unknown IDs, and drop endpoint
fields and a session 410 response that the runtime does not return.

Co-authored-by: Cursor <cursoragent@cursor.com>
Remove POST /v2/action-gateway/endpoints:fromSession with its request
model, examples, curl sample, and contract tests. Tool Registry is
removing the public route, so the spec must not document it. Session
routes stay documented and deprecated.

Co-authored-by: Cursor <cursoragent@cursor.com>
@bbatha bbatha added the shepherded Agent-shepherded: checks green, waiting on human review label Nov 2, 2026

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

shepherded Agent-shepherded: checks green, waiting on human review

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant