Open Connector
Connectors & Tools

Connectors

How Runtime Catalog toolkits, execution definitions, and connected accounts fit together.

Open Connector has one connectable catalog identity: a toolkit. A toolkit owns its authentication methods, endpoint configuration, metadata, and the tools an agent can call. There is no separate runtime provider or auth-provider layer.

Runtime Catalog model

Catalog objectOwnsRuntime representation
Toolkit definitionName, discovery metadata, authMethods, optional connection fields, and trusted API endpoints.One row in runtime_toolkit_catalog.
Tool definitionAgent-facing input/output schemas, scopes, tags, and lifecycle.One row in tool_catalog.
ExecutionDefinitionDeclarative HTTP or GraphQL request mapping, or a named custom executor.JSONB on the tool row; loaded only when the tool executes.
Trigger typeEvent schema plus a lazy transport key.One row in trigger_type_catalog.
ConnectionA user's encrypted credentials for a selected toolkit authentication method and project scope.Stored independently from the catalog.

Generated catalog artifacts are source controlled under packages/tool-registry/artifacts/<toolkit>/catalog.gen.json. A release manifest records the complete, verified set. The server reads only the PostgreSQL Runtime Catalog; it never falls back to static tool modules.

Authentication methods

Each toolkit contains an authMethods array. An entry has a namespaced id such as github.oauth2 and is either available or explicitly unavailable with a reason.

KindWhat the user suppliesWhat Open Connector does
oauth2Browser consent, or client credentials when configured.Builds the authorization URL, exchanges and refreshes tokens, then stores them encrypted.
api_keyA long-lived key or token.Encrypts the supplied fields and injects them using the selected method's request template.
basicUsername/password or equivalent key/secret pair.Encrypts both values and injects the configured request fields.

Endpoint defaults never contain credentials. Credential injection belongs to the selected authentication method, so an execution definition remains portable and can be published without secrets.

Artifact example

This abbreviated artifact defines a toolkit and one declarative HTTP tool. The same shape is used for generated OpenAPI and GraphQL output.

{
  "version": "v1",
  "toolkit": {
    "slug": "my-crm",
    "name": "My CRM",
    "authMethods": [{ "id": "my-crm.oauth2", "kind": "oauth2", "status": "available" }],
    "endpoints": {
      "api": { "baseUrl": "https://api.mycrm.com/v2", "allowedBaseUrls": [], "defaultHeaders": {} }
    }
  },
  "tools": [{
    "definition": { "slug": "MY_CRM_CONTACTS_LIST", "toolkit_slug": "my-crm", "name": "List contacts" },
    "executionDefinition": { "version": "v1", "kind": "http", "endpointKey": "api", "method": "GET", "path": "/contacts" }
  }],
  "triggerTypes": []
}

Publishing and using the deployed catalog

After generating artifacts, publish the release explicitly to the database used by the server:

pnpm tools:generate-official
pnpm tools:build-catalog-release
DATABASE_URL='postgres://…' pnpm tools:publish-catalog

Publication validates artifact digests and atomically projects the release into PostgreSQL. It is separate from server startup and from database migrations, so a running service never silently changes its executable catalog.

For an agent or integration, the normal sequence is:

  1. Discover a toolkit and its supported authentication methods.
  2. Create or choose an auth configuration for that toolkit and method.
  3. Create a connection for the user and project scope.
  4. Invoke a tool through that connection.

See API reference for the exact discovery and execution routes, and Connected accounts for the credential lifecycle.

On this page