Skip to main content

The four building blocks

  • Application - an integrable product (monday.com, Gmail, Salesforce, Priority…). Identified by a slug. Browse via GET /v1/applications; the detail view lists the application’s authentication methods and whether it supports object selection.
  • Connection - your authenticated instance of an application (an OAuth grant, an API key, DB credentials…). Identified by an integer id. Tools execute through a connection. You can mark one connection per application as your default.
  • Tool - a single executable action (create an item, send an email, query records). Identified by a slug. The detail view embeds the tool’s inputSchema and outputSchema (JSON Schema) plus capability flags (supportsFilters, supportsSort, supportsTopOffset).
  • Toolset - a named bundle of connections plus an allow-list of tools, identified by a GUID. Toolsets scope what an LLM agent is allowed to call and which connection each application uses.

How a tool finds its connection

When you POST /v1/tools/{toolSlug}/execute, the connection is resolved in this order:
  1. Explicit ?connectionId= - must belong to you and to the tool’s application. If ?toolsetId= is also present, the connection must be in that toolset.
  2. Toolset ?toolsetId= - uses the toolset’s connection for the tool’s application, and enforces the toolset’s tool allow-list.
  3. Default - your per-application default connection (PUT /v1/connections/{id}/Default). If you have exactly one connection for the application, it’s used and recorded as the default automatically.
  4. Otherwise the call fails with 409 NO_DEFAULT_CONNECTION.
Applications that don’t require a connection (connectionRequirement: "None") skip all of this.

Object selection

Some applications (mostly databases) expose objects (tables, entities) that you choose from: refresh the catalog (RefreshObjects), poll RefreshStatus until it leaves InProgress, browse Objects, then SelectObjects with the ids to activate. Only applications with supportsObjectSelection: true use this - the CLI’s engini connect walks you through it.