trigger_manage
Manage event-driven trigger rules to automate project execution based on signal conditions. Create, update, delete, list, and test rules that respond to signals from sources like Sentry, IMAP, or RSS feeds.
Instructions
Manage event-driven trigger rules. Actions: list, create (name, event, conditions, actions), update (trigger_id + fields), delete (trigger_id), test (trigger_id, sample payload — dry-run).
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Action to perform: list, create, update, delete, test | |
| status | No | Filter by status: active | paused | |
| limit | No | Max results (default 20, max 100) | |
| name | Yes | Descriptive name for the rule | |
| source_type | No | Signal source type to match (* = any). E.g. sentry, imap, telegram, rss | * |
| project_id | No | UUID of the project to trigger | |
| conditions | No | Conditions to match on signal payload. Keys are dot-notation field paths, values are {operator: value} objects. Operators: eq, neq, gte, lte, contains, not_contains, exists | |
| input_mapping | No | Map signal fields to project input_data. Keys are target fields, values are dot-notation source paths | |
| cooldown_seconds | No | Seconds between triggers (0 = no cooldown) | |
| max_concurrent | No | Max active runs before skipping trigger (-1 = unlimited) | |
| rule_id | Yes | UUID of the trigger rule | |
| payload | No | Signal payload to test against. Use dot-notation to nest: {"metadata": {"severity": "error"}} | |
| execute | No | If true, actually trigger the project run (default: false — dry run only) |
Implementation Reference
- mcp-gateway/index.js:75-100 (handler)The MCP gateway proxies all tool calls, including potential 'trigger_manage' requests, to the upstream FleetQ instance via HTTP/SSE. The actual logic resides on the server side of the FleetQ instance.
server.setRequestHandler(CallToolRequestSchema, async (request) => { return upstreamClient.callTool(request.params); }); server.setRequestHandler(ListResourcesRequestSchema, async (request) => { return upstreamClient.listResources(request.params); }); server.setRequestHandler(ReadResourceRequestSchema, async (request) => { return upstreamClient.readResource(request.params); }); server.setRequestHandler(ListPromptsRequestSchema, async (request) => { return upstreamClient.listPrompts(request.params); }); server.setRequestHandler(GetPromptRequestSchema, async (request) => { return upstreamClient.getPrompt(request.params); }); const stdioTransport = new StdioServerTransport(); await server.connect(stdioTransport);