Skip to main content
Glama
kuyen-labs

Fuul MCP Server

by kuyen-labs

update_trigger

Update a trigger's mutable fields like name, description, and event type. For immutable fields like token or chain, delete and recreate the trigger.

Instructions

Updates a trigger: PATCH /api/v1/projects/:projectId/triggers/:triggerId. Partial body matching UpdateTriggerDto (name, description, event_type, expressions, payable, ref, contract_ids as single-element array, etc.). Does NOT update context fields such as token_address or chain_id — those are immutable after create. If the user asks to change token_address, chain_id, or the tracked token/contract: do NOT call PATCH. First inform the user clearly: "This cannot be updated in place; you must delete the trigger and create a new one with the new token/chain." Then, only with explicit user approval, run the replace flow: Replace-trigger flow (token/chain change; after telling the user update_trigger cannot change token_address/chain_id): (1) get_project or list_incentives — list every incentive/conversion whose triggers[] includes this draft_trigger_id; (2) delete_conversion for each draft_conversion_id (removes conversion + trigger links); (3) delete_trigger; (4) create_trigger with the new context; (5) create_incentive if the program must be recreated. Do not call delete_trigger until step 2 is done for all linked conversions. Never skip step 1 — always list linked conversions before delete_trigger. At least one patch field required for allowed fields only. dry_run then confirmed. Prefer get_project for current draft_trigger_id by ref. Before executing (including dry_run), this tool refreshes project metadata (same as get_project) and resolves trigger_id / conversion_id / trigger_ids[] to the current draft UUIDs. If you pass a published_trigger_id from before a dashboard publish, it is remapped to the current draft_trigger_id for the same ref. Responses include _draft_id_resolution when an ID was remapped. Unknown stale UUIDs fail with an explicit error. On successful execution (not dry_run), the response includes _publish_metadata_reminder: publish project metadata from the dashboard (Project → Incentives or Triggers → Publish now). The MCP cannot publish for you.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
dry_runNoIf true, validate and return a preview only; no server mutation.
confirmedNoMust be true to perform the mutation after reviewing dry_run output.
project_idYes
trigger_idYes
nameNo
descriptionNo
event_typeNo
condition_expressionNo
amount_expressionNo
volume_expressionNo
revenue_expressionNo
currency_expressionNo
volume_currency_expressionNo
revenue_currency_expressionNo
end_user_identifier_propertyNo
end_user_identifier_expressionNo
payableNo
refNo
contract_idsNoExactly one contract UUID when updating on-chain contract event triggers.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided; description fully covers behavioral traits: immutable fields, metadata refresh, ID remapping, error handling, and publish reminder. It also explains the replace flow steps and constraints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long but densely informative with no wasted sentences. It is front-loaded with the main action, then provides guidelines and replacement flow. Could be slightly more concise, but every part serves a purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite 19 parameters, many siblings, and no output schema, the description covers all critical aspects: main action, immutability constraints, replacement flow, dry_run/confirmed pattern, ID remapping, and publish reminder. It is complete for correct tool invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 16%, but the description lists allowed update fields (name, description, event_type, expressions, payable, ref, contract_ids) and clarifies immutability of others. This adds significant meaning beyond the sparse schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states it updates a trigger via PATCH, lists allowed fields, and contrasts with immutable context fields. It distinguishes itself from create_trigger and delete_trigger by specifying that context changes require a replace flow.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit guidelines: when to use (updating mutable fields), when not to (changing token/chain), and a detailed replacement flow. Also instructs to use dry_run then confirmed and to list linked conversions before deleting.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/kuyen-labs/mcp_server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server