Skip to main content
Glama

PixelFlow

Update site

update_site
DestructiveIdempotent

Change settings on a site (domain, platform, currency, ecommerce flags, or Get Started checklist items) and return the saved site. Omitted fields stay unchanged; provided fields overwrite the stored value. The result includes next_action, the same as get_site_status. Use it when the user changes a site setting or confirms that a Get Started item is done.

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": {
      "site_id": "<site_id>"
    },
    "name": "update_site"
  }
}

Input Schema

NameRequiredDescriptionDefault
domainNoWebsite domain, such as example.com.
site_idYesSite to act on, as returned by list_sites.
currencyNoISO 4217 currency for event values, such as EUR.
platformNoPlatform the site runs on, a name from list_supported_values's `platforms`, such as webflow or wordpress. other for custom code or a platform not in the list.
is_woocommerceNoWhether the WordPress site uses WooCommerce.
is_old_pixel_removedNoWhether the user confirmed the old ad platform pixel code is removed from the site (a Get Started item).
is_utm_snippet_addedNoWhether the user confirmed UTM parameters are added to their ads (a Get Started item).
is_webflow_ecommerceNoWhether the Webflow site uses Webflow eCommerce. When true and the site has a domain, PixelFlow adds the standard Webflow eCommerce triggers, returned in triggers_added.
is_meta_domain_approvedNoWhether the user confirmed the domain is verified in Facebook Business Manager (a Get Started item).
is_consent_banner_configuredNoWhether the user confirmed a consent banner is configured (a Get Started item).

Output Schema

NameRequiredDescriptionDefault
domainYesWebsite domain.
site_idYesSite id.
currencyYesISO 4217 currency for event values.
platformYesPlatform the site runs on, such as webflow.
external_idYesPublic site id, as in list_sites.
next_actionYesThe one open setup step. null once setup and every Get Started item that applies to this site are complete.
workspace_idYesWorkspace that owns the site.
is_woocommerceYesWhether the WordPress site uses WooCommerce.
triggers_addedYesWebflow eCommerce triggers this call added: `trigger_id` (integer), `type` (url), `event` (string, such as Purchase), and `url` (string). Empty when none were added, including when they already exist.
is_setup_via_aiYesWhether the site was set up through an AI assistant.
is_old_pixel_removedYesWhether the Get Started item "remove old pixel code" is done.
is_utm_snippet_addedYesWhether the Get Started item "add UTM parameters to ads" is done.
is_webflow_ecommerceYesWhether the Webflow site uses Webflow eCommerce.
is_meta_domain_approvedYesWhether the Get Started item "verify the domain in Facebook Business Manager" is done.
is_consent_banner_configuredYesWhether the Get Started item "configure a consent banner" is done.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed11 schema fields changed
    • addedOutput schema / properties / currency / anyOf
      Added value: +[
      +  {
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • removedOutput schema / properties / currency / type
      Removed value: -[
      -  "string",
      -  "null"
      -]
    • addedOutput schema / properties / domain / anyOf
      Added value: +[
      +  {
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • removedOutput schema / properties / domain / type
      Removed value: -[
      -  "string",
      -  "null"
      -]
    • removedOutput schema / properties / next_action / additionalProperties
      Removed value: -false
    • addedOutput schema / properties / next_action / anyOf
      Added value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "action": {
      +        "description": "Step to do now.",
      +        "enum": [
      +          "ask_platform",
      +          "wordpress_connect",
      +          "ask_domain",
      +          "ask_currency",
      +          "connect_ad_platform",
      +          "install",
      +          "verify",
      +          "triggers",
      +          "get_started"
      +        ],
      +        "type": "string"
      +      },
      +      "ad_platform": {
      +        "description": "Ad platform to connect, for connect_ad_platform. Set only when a saved pixel cannot send yet; absent when the user still has to pick an ad platform.",
      +        "type": "string"
      +      },
      +      "install": {
      +        "additionalProperties": false,
      +        "description": "For install: the steps and snippet for this site, the same as get_install_instructions returns for task install. When it is set, there is no tool.",
      +        "properties": {
      +          "docs": {
      +            "description": "Help articles for this result: `title` (string) and `url` (string, uri).",
      +            "items": {
      +              "additionalProperties": false,
      +              "properties": {
      +                "title": {
      +                  "type": "string"
      +                },
      +                "url": {
      +                  "format": "uri",
      +                  "type": "string"
      +                }
      +              },
      +              "required": [
      +                "title",
      +                "url"
      +              ],
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          "native_pixel_search": {
      +            "anyOf": [
      +              {
      +                "items": {
      +                  "type": "string"
      +                },
      +                "type": "array"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "description": "Phase activate only: text to search the site's code for to find an ad platform pixel already on the site. null otherwise."
      +          },
      +          "rules_to_follow": {
      +            "anyOf": [
      +              {
      +                "items": {
      +                  "type": "string"
      +                },
      +                "type": "array"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "description": "How to show the snippet to the user; follow them when you present it. null when the result has no snippet."
      +          },
      +          "snippet": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "description": "HTML snippet with this site's public site id and key, to paste into the site. null on platforms with a PixelFlow plugin."
      +          },
      +          "steps": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "description": "Numbered steps for this task on this platform."
      +          }
      +        },
      +        "required": [
      +          "steps",
      +          "snippet",
      +          "rules_to_follow",
      +          "native_pixel_search",
      +          "docs"
      +        ],
      +        "type": "object"
      +      },
      +      "phase": {
      +        "description": "Plugin install phase, for install.",
      +        "enum": [
      +          "connect",
      +          "activate"
      +        ],
      +        "type": "string"
      +      },
      +      "progress": {
      +        "description": "Position in setup, such as Step 4 of 7. total depends on the site: plugin platforms add a step, and sites that set up conversions add another.",
      +        "type": "string"
      +      },
      +      "say": {
      +        "description": "Suggested wording for the user. Words for the user only; the tool for this step is in next_action.tool.",
      +        "type": "string"
      +      },
      +      "step": {
      +        "description": "Position in setup, such as Step 4 of 7. total depends on the site: plugin platforms add a step, and sites that set up conversions add another.",
      +        "type": "integer"
      +      },
      +      "steps": {
      +        "description": "Every setup step: `step` (integer), `label` (string), `state` (enum: done, current, later).",
      +        "items": {
      +          "additionalProperties": false,
      +          "properties": {
      +            "label": {
      +              "type": "string"
      +            },
      +            "state": {
      +              "enum": [
      +                "done",
      +                "current",
      +                "later"
      +              ],
      +              "type": "string"
      +            },
      +            "step": {
      +              "type": "integer"
      +            }
      +          },
      +          "required": [
      +            "step",
      +            "label",
      +            "state"
      +          ],
      +          "type": "object"
      +        },
      +        "type": "array"
      +      },
      +      "target": {
      +        "description": "get_connect_link target, for connect_ad_platform.",
      +        "enum": [
      +          "ad_platform"
      +        ],
      +        "type": "string"
      +      },
      +      "task": {
      +        "description": "get_install_instructions task, for install.",
      +        "enum": [
      +          "install"
      +        ],
      +        "type": "string"
      +      },
      +      "tool": {
      +        "description": "Tool that performs this step. Absent when the step needs no tool or when install is attached.",
      +        "type": "string"
      +      },
      +      "total": {
      +        "description": "Position in setup, such as Step 4 of 7. total depends on the site: plugin platforms add a step, and sites that set up conversions add another.",
      +        "type": "integer"
      +      }
      +    },
      +    "required": [
      +      "action",
      +      "say",
      +      "step",
      +      "total",
      +      "progress",
      +      "steps"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • removedOutput schema / properties / next_action / properties
      Removed value: -{
      -  "action": {
      -    "description": "Step to do now.",
      -    "enum": [
      -      "ask_platform",
      -      "wordpress_connect",
      -      "ask_domain",
      -      "ask_currency",
      -      "connect_ad_platform",
      -      "install",
      -      "verify",
      -      "triggers",
      -      "get_started"
      -    ],
      -    "type": "string"
      -  },
      -  "ad_platform": {
      -    "description": "Ad platform to connect, for connect_ad_platform. Set only when a saved pixel cannot send yet; absent when the user still has to pick an ad platform.",
      -    "type": "string"
      -  },
      -  "install": {
      -    "additionalProperties": false,
      -    "description": "For install: the steps and snippet for this site, the same as get_install_instructions returns for task install. When it is set, there is no tool.",
      -    "properties": {
      -      "docs": {
      -        "description": "Help articles for this result: `title` (string) and `url` (string, uri).",
      -        "items": {
      -          "additionalProperties": false,
      -          "properties": {
      -            "title": {
      -              "type": "string"
      -            },
      -            "url": {
      -              "format": "uri",
      -              "type": "string"
      -            }
      -          },
      -          "required": [
      -            "title",
      -            "url"
      -          ],
      -          "type": "object"
      -        },
      -        "type": "array"
      -      },
      -      "native_pixel_search": {
      -        "description": "Phase activate only: text to search the site's code for to find an ad platform pixel already on the site. null otherwise.",
      -        "items": {
      -          "type": "string"
      -        },
      -        "type": [
      -          "array",
      -          "null"
      -        ]
      -      },
      -      "rules_to_follow": {
      -        "description": "How to show the snippet to the user; follow them when you present it. null when the result has no snippet.",
      -        "items": {
      -          "type": "string"
      -        },
      -        "type": [
      -          "array",
      -          "null"
      -        ]
      -      },
      -      "snippet": {
      -        "description": "HTML snippet with this site's public site id and key, to paste into the site. null on platforms with a PixelFlow plugin.",
      -        "type": [
      -          "string",
      -          "null"
      -        ]
      -      },
      -      "steps": {
      -        "description": "Numbered steps for this task on this platform.",
      -        "type": [
      -          "string",
      -          "null"
      -        ]
      -      }
      -    },
      -    "required": [
      -      "steps",
      -      "snippet",
      -      "rules_to_follow",
      -      "native_pixel_search",
      -      "docs"
      -    ],
      -    "type": "object"
      -  },
      -  "phase": {
      -    "description": "Plugin install phase, for install.",
      -    "enum": [
      -      "connect",
      -      "activate"
      -    ],
      -    "type": "string"
      -  },
      -  "progress": {
      -    "description": "Position in setup, such as Step 4 of 7. total depends on the site: plugin platforms add a step, and sites that set up conversions add another.",
      -    "type": "string"
      -  },
      -  "say": {
      -    "description": "Suggested wording for the user. Words for the user only; the tool for this step is in next_action.tool.",
      -    "type": "string"
      -  },
      -  "step": {
      -    "description": "Position in setup, such as Step 4 of 7. total depends on the site: plugin platforms add a step, and sites that set up conversions add another.",
      -    "type": "integer"
      -  },
      -  "steps": {
      -    "description": "Every setup step: `step` (integer), `label` (string), `state` (enum: done, current, later).",
      -    "items": {
      -      "additionalProperties": false,
      -      "properties": {
      -        "label": {
      -          "type": "string"
      -        },
      -        "state": {
      -          "enum": [
      -            "done",
      -            "current",
      -            "later"
      -          ],
      -          "type": "string"
      -        },
      -        "step": {
      -          "type": "integer"
      -        }
      -      },
      -      "required": [
      -        "step",
      -        "label",
      -        "state"
      -      ],
      -      "type": "object"
      -    },
      -    "type": "array"
      -  },
      -  "target": {
      -    "description": "get_connect_link target, for connect_ad_platform.",
      -    "enum": [
      -      "ad_platform"
      -    ],
      -    "type": "string"
      -  },
      -  "task": {
      -    "description": "get_install_instructions task, for install.",
      -    "enum": [
      -      "install"
      -    ],
      -    "type": "string"
      -  },
      -  "tool": {
      -    "description": "Tool that performs this step. Absent when the step needs no tool or when install is attached.",
      -    "type": "string"
      -  },
      -  "total": {
      -    "description": "Position in setup, such as Step 4 of 7. total depends on the site: plugin platforms add a step, and sites that set up conversions add another.",
      -    "type": "integer"
      -  }
      -}
    • removedOutput schema / properties / next_action / required
      Removed value: -[
      -  "action",
      -  "say",
      -  "step",
      -  "total",
      -  "progress",
      -  "steps"
      -]
    • removedOutput schema / properties / next_action / type
      Removed value: -[
      -  "object",
      -  "null"
      -]
    • addedOutput schema / properties / platform / anyOf
      Added value: +[
      +  {
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • removedOutput schema / properties / platform / type
      Removed value: -[
      -  "string",
      -  "null"
      -]
  2. Changed17 schema fields changed
    • removedInput schema / properties / ad_platforms
      Removed value: -{
      -  "description": "Meta and TikTok to connect, in that order. At least one of meta or tiktok. An empty list is refused. Replaces the saved list",
      -  "items": {
      -    "type": "string"
      -  },
      -  "type": "array"
      -}
    • changedInput schema / properties / currency / description
      Previous value: -"3-letter currency code, such as USD"New value: +"ISO 4217 currency for event values, such as EUR."
    • addedInput schema / properties / currency / maxLength
      Added value: +3
    • changedInput schema / properties / domain / description
      Previous value: -"Website address, such as example.com"New value: +"Website domain, such as example.com."
    • changedInput schema / properties / is_consent_banner_configured / description
      Previous value: -"Get Started: a consent banner was configured"New value: +"Whether the user confirmed a consent banner is configured (a Get Started item)."
    • changedInput schema / properties / is_meta_domain_approved / description
      Previous value: -"Get Started: the domain was approved"New value: +"Whether the user confirmed the domain is verified in Facebook Business Manager (a Get Started item)."
    • changedInput schema / properties / is_old_pixel_removed / description
      Previous value: -"Get Started: the old pixel was removed. Saved as sent"New value: +"Whether the user confirmed the old ad platform pixel code is removed from the site (a Get Started item)."
    • removedInput schema / properties / is_setup_via_ai
      Removed value: -{
      -  "description": "True marks this Site as set up with AI. False does not clear the flag",
      -  "type": "boolean"
      -}
    • changedInput schema / properties / is_utm_snippet_added / description
      Previous value: -"Get Started: the UTM parameters were added"New value: +"Whether the user confirmed UTM parameters are added to their ads (a Get Started item)."
    • changedInput schema / properties / is_webflow_ecommerce / description
      Previous value: -"True when this Webflow site uses Webflow eCommerce"New value: +"Whether the Webflow site uses Webflow eCommerce. When true and the site has a domain, PixelFlow adds the standard Webflow eCommerce triggers, returned in triggers_added."
    • changedInput schema / properties / is_woocommerce / description
      Previous value: -"True when this WordPress site uses WooCommerce"New value: +"Whether the WordPress site uses WooCommerce."
    • removedInput schema / properties / name
      Removed value: -{
      -  "description": "Label for this Site in the chat",
      -  "type": "string"
      -}
    • changedInput schema / properties / platform / description
      Previous value: -"Name from the platforms table, such as webflow, wordpress, squarespace, framer, lovable, or other"New value: +"Platform the site runs on, a name from list_supported_values's `platforms`, such as webflow or wordpress. other for custom code or a platform not in the list."
    • removedInput schema / properties / site
      Removed value: -{
      -  "description": "Domain, id, or external id from list_sites",
      -  "type": "string"
      -}
    • addedInput schema / properties / site_id
      Added value: +{
      +  "description": "Site to act on, as returned by list_sites.",
      +  "type": "integer"
      +}
    • changedInput schema / required
      Previous value: -[
      -  "site"
      -]New value: +[
      +  "site_id"
      +]
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "currency": {
      +      "description": "ISO 4217 currency for event values.",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "domain": {
      +      "description": "Website domain.",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "external_id": {
      +      "description": "Public site id, as in list_sites.",
      +      "type": "string"
      +    },
      +    "is_consent_banner_configured": {
      +      "description": "Whether the Get Started item \"configure a consent banner\" is done.",
      +      "type": "boolean"
      +    },
      +    "is_meta_domain_approved": {
      +      "description": "Whether the Get Started item \"verify the domain in Facebook Business Manager\" is done.",
      +      "type": "boolean"
      +    },
      +    "is_old_pixel_removed": {
      +      "description": "Whether the Get Started item \"remove old pixel code\" is done.",
      +      "type": "boolean"
      +    },
      +    "is_setup_via_ai": {
      +      "description": "Whether the site was set up through an AI assistant.",
      +      "type": "boolean"
      +    },
      +    "is_utm_snippet_added": {
      +      "description": "Whether the Get Started item \"add UTM parameters to ads\" is done.",
      +      "type": "boolean"
      +    },
      +    "is_webflow_ecommerce": {
      +      "description": "Whether the Webflow site uses Webflow eCommerce.",
      +      "type": "boolean"
      +    },
      +    "is_woocommerce": {
      +      "description": "Whether the WordPress site uses WooCommerce.",
      +      "type": "boolean"
      +    },
      +    "next_action": {
      +      "additionalProperties": false,
      +      "description": "The one open setup step. null once setup and every Get Started item that applies to this site are complete.",
      +      "properties": {
      +        "action": {
      +          "description": "Step to do now.",
      +          "enum": [
      +            "ask_platform",
      +            "wordpress_connect",
      +            "ask_domain",
      +            "ask_currency",
      +            "connect_ad_platform",
      +            "install",
      +            "verify",
      +            "triggers",
      +            "get_started"
      +          ],
      +          "type": "string"
      +        },
      +        "ad_platform": {
      +          "description": "Ad platform to connect, for connect_ad_platform. Set only when a saved pixel cannot send yet; absent when the user still has to pick an ad platform.",
      +          "type": "string"
      +        },
      +        "install": {
      +          "additionalProperties": false,
      +          "description": "For install: the steps and snippet for this site, the same as get_install_instructions returns for task install. When it is set, there is no tool.",
      +          "properties": {
      +            "docs": {
      +              "description": "Help articles for this result: `title` (string) and `url` (string, uri).",
      +              "items": {
      +                "additionalProperties": false,
      +                "properties": {
      +                  "title": {
      +                    "type": "string"
      +                  },
      +                  "url": {
      +                    "format": "uri",
      +                    "type": "string"
      +                  }
      +                },
      +                "required": [
      +                  "title",
      +                  "url"
      +                ],
      +                "type": "object"
      +              },
      +              "type": "array"
      +            },
      +            "native_pixel_search": {
      +              "description": "Phase activate only: text to search the site's code for to find an ad platform pixel already on the site. null otherwise.",
      +              "items": {
      +                "type": "string"
      +              },
      +              "type": [
      +                "array",
      +                "null"
      +              ]
      +            },
      +            "rules_to_follow": {
      +              "description": "How to show the snippet to the user; follow them when you present it. null when the result has no snippet.",
      +              "items": {
      +                "type": "string"
      +              },
      +              "type": [
      +                "array",
      +                "null"
      +              ]
      +            },
      +            "snippet": {
      +              "description": "HTML snippet with this site's public site id and key, to paste into the site. null on platforms with a PixelFlow plugin.",
      +              "type": [
      +                "string",
      +                "null"
      +              ]
      +            },
      +            "steps": {
      +              "description": "Numbered steps for this task on this platform.",
      +              "type": [
      +                "string",
      +                "null"
      +              ]
      +            }
      +          },
      +          "required": [
      +            "steps",
      +            "snippet",
      +            "rules_to_follow",
      +            "native_pixel_search",
      +            "docs"
      +          ],
      +          "type": "object"
      +        },
      +        "phase": {
      +          "description": "Plugin install phase, for install.",
      +          "enum": [
      +            "connect",
      +            "activate"
      +          ],
      +          "type": "string"
      +        },
      +        "progress": {
      +          "description": "Position in setup, such as Step 4 of 7. total depends on the site: plugin platforms add a step, and sites that set up conversions add another.",
      +          "type": "string"
      +        },
      +        "say": {
      +          "description": "Suggested wording for the user. Words for the user only; the tool for this step is in next_action.tool.",
      +          "type": "string"
      +        },
      +        "step": {
      +          "description": "Position in setup, such as Step 4 of 7. total depends on the site: plugin platforms add a step, and sites that set up conversions add another.",
      +          "type": "integer"
      +        },
      +        "steps": {
      +          "description": "Every setup step: `step` (integer), `label` (string), `state` (enum: done, current, later).",
      +          "items": {
      +            "additionalProperties": false,
      +            "properties": {
      +              "label": {
      +                "type": "string"
      +              },
      +              "state": {
      +                "enum": [
      +                  "done",
      +                  "current",
      +                  "later"
      +                ],
      +                "type": "string"
      +              },
      +              "step": {
      +                "type": "integer"
      +              }
      +            },
      +            "required": [
      +              "step",
      +              "label",
      +              "state"
      +            ],
      +            "type": "object"
      +          },
      +          "type": "array"
      +        },
      +        "target": {
      +          "description": "get_connect_link target, for connect_ad_platform.",
      +          "enum": [
      +            "ad_platform"
      +          ],
      +          "type": "string"
      +        },
      +        "task": {
      +          "description": "get_install_instructions task, for install.",
      +          "enum": [
      +            "install"
      +          ],
      +          "type": "string"
      +        },
      +        "tool": {
      +          "description": "Tool that performs this step. Absent when the step needs no tool or when install is attached.",
      +          "type": "string"
      +        },
      +        "total": {
      +          "description": "Position in setup, such as Step 4 of 7. total depends on the site: plugin platforms add a step, and sites that set up conversions add another.",
      +          "type": "integer"
      +        }
      +      },
      +      "required": [
      +        "action",
      +        "say",
      +        "step",
      +        "total",
      +        "progress",
      +        "steps"
      +      ],
      +      "type": [
      +        "object",
      +        "null"
      +      ]
      +    },
      +    "platform": {
      +      "description": "Platform the site runs on, such as webflow.",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "site_id": {
      +      "description": "Site id.",
      +      "type": "integer"
      +    },
      +    "triggers_added": {
      +      "description": "Webflow eCommerce triggers this call added: `trigger_id` (integer), `type` (url), `event` (string, such as Purchase), and `url` (string). Empty when none were added, including when they already exist.",
      +      "items": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "event": {
      +            "type": "string"
      +          },
      +          "trigger_id": {
      +            "type": "integer"
      +          },
      +          "type": {
      +            "enum": [
      +              "url"
      +            ],
      +            "type": "string"
      +          },
      +          "url": {
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "trigger_id",
      +          "type",
      +          "event",
      +          "url"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "workspace_id": {
      +      "description": "Workspace that owns the site.",
      +      "type": "integer"
      +    }
      +  },
      +  "required": [
      +    "site_id",
      +    "external_id",
      +    "workspace_id",
      +    "domain",
      +    "platform",
      +    "currency",
      +    "is_webflow_ecommerce",
      +    "is_woocommerce",
      +    "is_setup_via_ai",
      +    "is_old_pixel_removed",
      +    "is_meta_domain_approved",
      +    "is_utm_snippet_added",
      +    "is_consent_banner_configured",
      +    "triggers_added",
      +    "next_action"
      +  ],
      +  "type": "object"
      +}
  3. First observed

TDQS

A4.5/5.0
Behavior4/5

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

Annotations declare readOnlyHint=false, destructiveHint=true, idempotentHint=true, but don't say what makes it destructive. The description fills that gap with patch semantics ('omitted fields stay unchanged; provided fields overwrite the stored value') and discloses the next_action field in the response, consistent with destructiveHint rather than contradicting it. It stops short of saying whether overwrites are recoverable or what errors look like.

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 sentences, front-loaded with the verb and resource, then the mutation rule, then the usage trigger. No filler and nothing repeated from the annotations.

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?

Output schema exists, so return values need not be enumerated, and the description still flags next_action and the saved-site return. For a 10-parameter partial-update tool with full annotation coverage and 100% schema descriptions, an agent has everything needed to call it correctly.

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 genuine semantics the schema lacks: omitted vs. provided fields and the overwrite-versus-preserve rule, which determines how an agent should construct the payload. The field-family list largely mirrors the schema and adds little on its own.

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?

Specific verb (change settings) plus resource (site), with an enumeration of the updatable field families (domain, platform, currency, ecommerce flags, Get Started items) and the return value. This clearly separates it from create_site (creation) and get_site_status (read), so an agent can route 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 an explicit trigger: 'Use it when the user changes a site setting or confirms that a Get Started item is done.' That is a clear positive condition, though it doesn't name a competing alternative (e.g. close_get_started or update_pixel) for the Get Started confirmation case, which is the one place ambiguity is plausible.

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.