Skip to content

Document all public Action Gateway Tool Registry endpoints - #1234

Open
tgillam-do wants to merge 2 commits into
digitalocean:mainfrom
tgillam-do:action-gateway/tool-registry-public-api
Open

tgillam-do wants to merge 2 commits into
digitalocean:mainfrom
tgillam-do:action-gateway/tool-registry-public-api

Conversation

@tgillam-do

Copy link
Copy Markdown
Contributor

Summary

Documents every Tool Registry route that Edge exposes publicly under /v2/action-gateway: 43 operations across 32 paths. Each operation has request and response schemas, a full JSON response example, and a cURL sample.

Area Operations
Tools list, toolkits, providers, search, provider search, provider health, tool health (list and get)
Toolbelts create, list, search, get, delete, add tools, remove tools, list providers, list provider tools
Output views create, preview, list, get, delete
MCP servers register, list, get, patch, delete, resync, list tools, update tools
Connections create, list, get, delete
Sessions create, list, search, delete
Users list, get
End user limits get, set (limits:set), clear (limits:clear)

How it was checked

  • Routes and scopes. The operation set was generated from, and asserted equal to, the production Edge config (edgeconfig/.../action-infra/tool-registry.jsonnet). Each operation's action_gateway:{read,create,update,delete} scope is the permission Edge enforces on that route, not one inferred from the HTTP method. For example, tools/remove needs delete and mcp-servers/{server_ref}/resync needs update.
  • Field names and types. Request and response schemas in the bundled spec were cross-checked field by field against the compiled tool-registry.proto from cthulhu master. The gateway serializes with protojson, so field names follow each field's json_name (a mix of snake_case and camelCase), 64-bit integers are strings, durations look like "86400s", and enums use their value names.
  • Intentional omissions. Two fields are left out: ProviderRateLimitSpec's numeric fields, which the gateway redacts on public reads, and the output-only region on a VPC connection network in create requests.
  • Lint. make lint and make bundle pass with 0 errors. The remaining warnings are in other sections of the spec.

Changes to what #1209 added

  • Removed GET /v2/action-gateway/tools/{name}/definition and PATCH /v2/action-gateway/connections/{id}. Tool Registry serves both, but Edge doesn't route either one publicly, so on api.digitalocean.com they return 404. They can come back once Edge exposes them.
  • Split the single models.yml and examples.yml into per-area files under models/, with examples inline on each operation.
  • Kept the existing toolbelt operationIds, so generated clients don't change for those operations.
  • Rewrote the existing tools, toolbelts, connections, sessions, and users schemas to cover every field in the proto, including recent additions such as owning_user_numeric_id and session insights.

tgillam-do and others added 2 commits September 24, 2026 08:04
Cover every route Edge exposes for Tool Registry under /v2/action-gateway:
tools and health, toolbelts, output views, MCP servers, connections,
sessions, users, and end user limits. Schemas match the gateway's protojson
output and each operation has a response example and a cURL sample.

Drop GET tools/{name}/definition and PATCH connections/{id}; Tool Registry
serves them but Edge does not route them publicly.

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>

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

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant