Declarative Connectors (Zapier, Composio, n8n)
Zapier, Composio and n8n connections are declared on the agent the same way mcp: is — a block naming the connection and the actions the agent may use. Each named action becomes a real, individually-named tool the model can call: github_create_issue, crm_send_followup_email, ops_create_ticket — never a generic "call the integration" tool it has to be taught to drive.
agents:
ops_agent:
name: "ops_agent"
agent_type: llm
model: your-model-name
zapier:
- name: crm
vault_connection: zapier-main # the Zapier record (holds the MCP key)
connection: conn_hubspot_main # on Zapier, `connection` is the Zapier app connection
use:
- send_followup_email
- create_deal
composio:
- app: github
vault_connection: composio-main # the Composio record (holds the API key)
entity_id: default
use:
- create_issue
n8n:
- name: ops
vault_connection: n8n-ops # the n8n record (holds the instance address and API key)
use:
- create_ticket # → POSTs the workflow's webhook pathThe rules
- Named actions only.
use:lists exactly what the agent may call; an empty block registers nothing. There is no "discover everything" mode — the operator decides the surface. - Tool naming. Each action registers as
<namespace>_<action>— the namespace comes fromname:(or the app / host when omitted). The model sees a specific verb with a clear description. - Secrets live in the vault. Keys, tokens and addresses are entered only on Studio's Infrastructure page, under Infrastructure → Integrations (Zapier, n8n, Composio). All three blocks name their record with
vault_connection:; on a Zapier block,connection:is the Zapier app. Anapi_key,mcp_keyorbase_urlwritten inline, including an${ENV_VAR}reference, is refused at load. Studio's Tools page (Zapier, Composio, n8n) sets up the tool and picks its record. - Tools that change nothing (2.4.491+). Add
changes_nothing: trueto a block whose actions only read (defaultfalse). Answers from turns that used only such tools, with no personal data or secret, may be reused from the response cache. - Scoped per agent. Tools register with permissions limited to the declaring agent — two agents never see each other's connections.
- Fail-open startup. A connection that cannot be reached at start-up costs the agent those actions and nothing else; the rest of the mesh starts normally. A failed call at runtime surfaces to the model as a tool error it can react to — never a crash.
Per-connector notes
| Connector | Connection fields | Action semantics |
|---|---|---|
| Zapier | vault_connection (record holds mcp_key), connection (the Zapier app) | Each use: entry is a Zapier action run through Zapier MCP. (Zapier retired AI Actions, which api_key reached.) |
| Composio | vault_connection (record holds api_key), app, entity_id | Each entry is a Composio action on the app, run as the entity. |
| n8n | vault_connection (record holds api_key and base_url) | Each entry is a workflow webhook path (or full URL); the tool POSTs the model's payload to it and returns the workflow's response synchronously. |
Playground
The Playground registers these blocks at execute time, so an ad-hoc agent — or a saved agent with edited blocks — can exercise its integration tools before anything is committed to YAML.