Triggers
MCP tools for the Triggers module. See the Triggers module docs for permissions and data model.
list-triggers
List triggers
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
project_id | string | no | — |
type | string | no | — |
target_type | string | no | — |
limit | number | no | Results per page. Above the maximum it is clamped, and limit in the response reports the page served; below 1 or not an integer it is 400 VALIDATION_FAILED. |
offset | number | no | Results to skip. Negative or not an integer it is 400 VALIDATION_FAILED. |
create-trigger
Create a trigger
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
project_id | string | no | Public ID of the project. Optional when authenticating with a project-scoped API key, which defaults to the key's project; required otherwise. |
name | string | yes | — |
description | string | no | — |
type | string | yes | — |
target_type | string | yes | — |
target_id | string | yes | — |
action | string | no | Tool targets only — the action for builtin/mcp tools |
input | object | no | — |
tool_context | object | no | Caller context every firing forwards to the run it starts, so an agent whose tools authorize through {{context:<key>}} can be put on a schedule — a firing has no request to carry one. Each key is forwarded as one X-Soat-Context-<key> header. Write-only. It is accepted here and never returned on a read, so the record cannot be used to recover a value. A value may be a {{secret:sec_...}} reference, which keeps the credential in the secret store and leaves only its id on the trigger; it is resolved at fire time, so rotating the secret changes the next firing without touching the trigger. A reference is refused here rather than at fire time when it is not in that id form (a secret's name does not resolve) or names a secret that does not exist in this project. |
cron | string | no | 5-field cron expression (UTC). Required when type is schedule |
event_pattern | string | no | Internal-event subscription pattern. Required when type is event, rejected otherwise. * matches every event, prefix.* a namespace, or give an exact event name such as documents.ingested |
active | boolean | no | — |
policy_id | string | no | — |
get-trigger
Get a trigger
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
trigger_id | string | yes | — |
update-trigger
Update a trigger
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
trigger_id | string | yes | — |
name | string | no | — |
description | string | null | no | — |
target_type | string | no | — |
target_id | string | no | — |
action | string | null | no | — |
input | object | null | no | — |
tool_context | object | null | no | Replaces the stored bag; null clears it. Write-only and resolved at fire time — see CreateTriggerRequest.tool_context. |
cron | string | null | no | — |
event_pattern | string | null | no | — |
active | boolean | no | — |
policy_id | string | null | no | — |
delete-trigger
Delete a trigger
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
trigger_id | string | yes | — |
fire-trigger
Fire a trigger
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
trigger_id | string | yes | — |
input | object | no | Fire-time input, shallow-merged over the trigger's static input. For eval targets it may carry agent_version and baseline_run_id. |
tool_context | object | no | Fire-time caller context, shallow-merged per key over the trigger's stored tool_context. A manual fire has a caller, so this is the one path that can supply a value without storing it. Forwarded exactly as written: a {{secret:...}} reference is resolved only in the trigger's stored bag, never in one supplied here. |
get-trigger-secret
Get trigger secret
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
trigger_id | string | yes | — |
rotate-trigger-secret
Rotate trigger secret
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
trigger_id | string | yes | — |
list-trigger-firings
List trigger firings
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
trigger_id | string | yes | Trigger to list firings for (trg_...) |
limit | number | no | Results per page. Above the maximum it is clamped, and limit in the response reports the page served; below 1 or not an integer it is 400 VALIDATION_FAILED. |
offset | number | no | Results to skip. Negative or not an integer it is 400 VALIDATION_FAILED. |
get-trigger-firing
Get a trigger firing
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
firing_id | string | yes | — |