Skip to main content
Glama

Change a funnel

update_funnel
DestructiveIdempotent

Change a funnel's name, whether it is a goal, and its goal_value; what you omit stays. Steps and trait_scope never change: a different step means a new funnel. A goal's conversions (visitor-days reaching its last step that day) show per source and campaign in list_sources and list_campaigns; unmarking keeps the funnel and its history. At most 5 goals per project, and a goal still uses a funnels slot. goal_value: none, fixed (an amount per conversion, applied to past days too) or detail (an attrs.KEY of the last step's event summed as revenue, counted only from the day it is set). Amounts are decimal strings in the project's currency (get_project). Pass run_id from start_setup_run so this undoes together with the rest of the setup; leave it out (never "") to start a new chat run, whose run_id is returned and should go on every later change.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "funnel_id": "<funnel_id>"
    },
    "name": "update_funnel"
  }
}

Input Schema

NameRequiredDescriptionDefault
nameNoThe new name, at most 100 characters. Omit to keep it.
run_idNoThe setup run this change belongs to, from start_setup_run. Omit to start a new chat run (its id is returned).
is_goalNotrue marks the funnel as a goal, false unmarks it (the funnel and its history stay). Omit to keep it.
projectNoProject ID, from list_projects. Required when this connection covers more than one project; may be left out when it covers one (and with an API key, which belongs to one project).
funnel_idYesFunnel ID, from list_funnels.
goal_valueNoThe new value of a conversion, replacing the current one ({kind: none} removes it). Omit to keep it.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.7/5.0
Behavior4/5

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

Annotations declare destructiveHint=true and idempotentHint=true, and the description goes well beyond them: unmarking a goal keeps the funnel and its history, a fixed amount retroactively applies to past days, while detail-based revenue counts only from the day it is set, and there is a 5-goal-per-project cap where a goal still consumes a funnel slot. It does not mention permission requirements or what the response body contains, which is the remaining gap for a destructive mutation.

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?

It is front-loaded with the mutation scope before the caveats, and nearly every sentence carries needed information. The cost is that it is one dense paragraph with the goal_value and run_id material interleaved, which makes it slower to scan than a bulleted or separated form.

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?

For a destructive, multi-mode mutation with no output schema, the definition covers the side effects (retroactive revenue, history retention), the goal cap, the currency format, and the run_id lifecycle including the returned id. An agent has everything needed to call it correctly, or to route to create_funnel when steps must change.

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

Parameters5/5

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

Schema coverage is already 100%, but the description still adds real meaning: goal_value's three kinds and their retroactivity rules, that amounts are decimal strings in the project currency (get_project), the 'never ""' constraint on run_id, and the run_id return value that should be threaded into later changes. This is genuine semantic value rather than restatement.

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 opening clause names a specific verb (change) and the exact mutable fields (name, is_goal, goal_value) and immediately scopes it with 'what you omit stays'. It also distinguishes itself from create_funnel by stating 'Steps and trait_scope never change: a different step means a new funnel', so an agent can separate update from create without opening sibling schemas.

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?

It gives explicit when/when-not rules: use this to rename or toggle goal status, but not to change steps (make a new funnel instead). It also spells out the run_id branch — pass it from start_setup_run for undoable setup work, omit it (never empty string) to start a new chat run — and points to list_sources, list_campaigns, and get_project for the data needed to set goal_value.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources