Skip to main content
Glama

Statable Analytics

Create goal

create_goal
Idempotent

Add a goal to a site. A goal is EITHER a custom event (event_name), OR a page (path with operator), OR a scroll depth — give one of the three, not several. operator: "e" exact, "b" begins with, "c" contains. A duplicate name is refused (goal_exists).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameYesShown in reports, e.g. "Signup".
pathNoPage path, e.g. "/thanks". Pair with operator.
siteYessite_id from list_sites.
operatorNoHow path is matched: e exact, b begins with, c contains.
event_nameNoCustom event to count, e.g. "Signup". Use list_prop_keys or top_custom_events to see what the site already sends.
scroll_depthNoPercent scrolled. Only with event_name "engagement".

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / scroll_depth / description
      Previous value: -"Percent scrolled."New value: +"Percent scrolled. Only with event_name \"engagement\"."
  2. Added
  3. Removed
  4. First observed

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare this is a non-read-only, idempotent, non-destructive write, so the safety profile is covered. The description adds genuinely extra behavior: the three-way mutual exclusivity of inputs and the duplicate-name rejection (goal_exists), which the annotations cannot express.

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

Conciseness5/5

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

Three short sentences, front-loaded with purpose then the input constraint then the failure mode. No filler, no restatement of the title.

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

Completeness4/5

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

For a 6-param mutation tool with a fully documented schema, annotations covering safety, and a stated error case, the definition covers what an agent needs to call it correctly. It omits only minor detail such as the return payload, which is acceptable given there is no output schema but not ideal.

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 100%, so the baseline is 3, but the description adds the OR-relationship between event_name, path, and scroll_depth that the flat schema cannot express. The operator code meanings are duplicated from the schema, so the gain is real but modest.

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?

States a specific verb+resource ("Add a goal to a site") and immediately defines what a goal can be, which separates it from update_goal and list_goals in the sibling set. An agent can tell this is the creation tool without opening the schema.

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

Usage Guidelines4/5

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

Gives the key selection rule among the three goal types ("EITHER a custom event, OR a page, OR a scroll depth — give one of the three, not several") and names the duplicate-name failure. It does not explicitly route to update_goal for modifying existing goals, so it stops short of full when/when-not guidance.

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