Connector Tools
Import any OpenAPI spec onto a connection and expose its operations as hosted agent tools — no wrapper code.
Import a spec
Every connection can carry imported operations. Point Cencori at an OpenAPI 3.x JSON document (inline or via a https URL) and it parses each path+method into a connector operation — stored on the connection's metadata, capped at 60:
curl -X POST https://cencori.com/v1/connections/con_9f8e7d6c5b4a1234/import \
-H "Authorization: Bearer sk_live_..." \
-H "Content-Type: application/json" \
-d '{"spec_url": "https://api.acme.example/openapi.json"}'{
"imported": 14,
"base_url": "https://api.acme.example/v1",
"title": "Acme CRM",
"operations": ["get_order", "create_order", "delete_order"]
}Operation IDs come from the spec's operationId (or are synthesized from the path). The https servers[0] URL becomes the connection's base_url. Re-run the import anytime to refresh.
Expose them to agents
List the connection in a version manifest's connection_tools (optionally filtered to specific operations):
{
"connection_tools": [
{ "connection_id": "con_9f8e7d6c5b4a1234", "operations": ["get_order"] }
]
}Agents see hosted tools named conn__<connection>__<operation> — the same pattern as mcp__ MCP tools.
Execution and safety
- GET/HEAD operations are classified as reads: the run loop executes them directly after the egress policy allows the base host.
- Other methods are writes; DELETE is destructive. They create approval actions — same risk/expiry model as any other action, approved via
POST /v1/actions/{actionId}/approve, which dispatches against the connection's live credential. - Arguments map to path parameters (required),
query,headers, andbody— path params are URL-encoded; the secret is injected asAuthorization: Bearerand never reaches the model. - Sessions do not execute connector tools server-side: a turn pauses with the tool call and your client resumes with the result, exactly like other function tools.
Zero-setup auth and enrichment
Two catalog conveniences make imports production-grade without wrapper code:
- Managed OAuth — catalog connectors flagged
managed_authship with platform OAuth clients: create the connection and authorize with no client_id/secret (Gmail today;GET /v1/connectorsshows the flag). Other OAuth connectors are BYO: passclient_id/client_secret(and optionallydiscovery_url) atauthorize— they persist to the connection, so refreshes need no re-submission. - Param enrichment — the connector catalog carries curated
param_overrides(per-operation descriptions, enums, required hints, dropped params) merged into parsed operations at import time. Additive metadata only, so a stale override can at worst confuse a model, never alter runtime behavior. Override keys may be exact operation names or globs (*_search) to survive vendor version churn — thehubspotcatalog already ships curated entries (search DSL, merge, GDPR delete, list paging) keyed that way.

