Skip to main content
Glama

PixelFlow

Get install instructions

get_install_instructions
Read-onlyIdempotent

Get step-by-step instructions the user follows on their website or in their ad platform's ads manager, for one task: installing PixelFlow, adding UTM parameters to ad links, removing an ad platform's own pixel code (such as the Facebook pixel) that was added before PixelFlow and would count events twice, or removing PixelFlow. Steps are written for the site's platform, and install steps include this site's code snippet, ready to paste. Use it when the user is ready to install PixelFlow, or asks how to add UTM parameters, remove a duplicate pixel, or uninstall.

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>",
      "task": "<task>"
    },
    "name": "get_install_instructions"
  }
}

Input Schema

NameRequiredDescriptionDefault
taskYesWhat the instructions are for. install: add PixelFlow to the site. add_utm: add UTM parameters to ad links so conversions are attributed to campaigns. remove_duplicate_pixel: find and remove an ad platform pixel already on the site. uninstall: remove PixelFlow from the site.
phaseNoinstall on platforms with a PixelFlow plugin only. connect (default): install the plugin and sign in. activate: the remaining steps after an ad platform is connected. Ignored on other platforms.
site_idYesSite to act on, as returned by list_sites.
other_platformNoPlatform the site runs on when its saved platform is other, such as kajabi, hubspot, or html. Omit for the generic steps. An unknown name is refused with the supported list. Refused when the saved platform is not other.

Output Schema

NameRequiredDescriptionDefault
docsYesHelp articles for this result: `title` (string) and `url` (string, uri).
taskYesThe task the instructions are for.
stepsYesNumbered steps for this task on this platform.
snippetYesHTML snippet with this site's public site id and key, to paste into the site. null on platforms with a PixelFlow plugin and for tasks other than install.
platformYesPlatform the steps are written for, such as webflow.
instructionYesOne-sentence summary of what to do.
utm_templatesYesadd_utm only: one UTM template per ad platform, to paste into the ad's URL parameters: `ad_platform` (string) and `template` (string).
other_platformYesPlatform the steps are written for when the saved platform is other, such as kajabi. null when it was not passed or the saved platform is not other.
rules_to_followYesHow to show the snippet to the user; follow them when you present it. null when the result has no snippet.
native_pixel_searchYesremove_duplicate_pixel, and install with phase activate: text to search the site's code for to find an ad platform pixel already on the site.
supported_other_platformsYesPlatforms with their own steps when the saved platform is other, such as kajabi or html. Pass one as `other_platform`. null when the saved platform is not other.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed20 schema fields changed
    • addedOutput schema / properties / native_pixel_search / anyOf
      Added value: +[
      +  {
      +    "items": {
      +      "type": "string"
      +    },
      +    "type": "array"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • removedOutput schema / properties / native_pixel_search / items
      Removed value: -{
      -  "type": "string"
      -}
    • removedOutput schema / properties / native_pixel_search / type
      Removed value: -[
      -  "array",
      -  "null"
      -]
    • addedOutput schema / properties / other_platform / anyOf
      Added value: +[
      +  {
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • removedOutput schema / properties / other_platform / type
      Removed value: -[
      -  "string",
      -  "null"
      -]
    • addedOutput schema / properties / platform / anyOf
      Added value: +[
      +  {
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • removedOutput schema / properties / platform / type
      Removed value: -[
      -  "string",
      -  "null"
      -]
    • addedOutput schema / properties / rules_to_follow / anyOf
      Added value: +[
      +  {
      +    "items": {
      +      "type": "string"
      +    },
      +    "type": "array"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • removedOutput schema / properties / rules_to_follow / items
      Removed value: -{
      -  "type": "string"
      -}
    • removedOutput schema / properties / rules_to_follow / type
      Removed value: -[
      -  "array",
      -  "null"
      -]
    • addedOutput schema / properties / snippet / anyOf
      Added value: +[
      +  {
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • removedOutput schema / properties / snippet / type
      Removed value: -[
      -  "string",
      -  "null"
      -]
    • addedOutput schema / properties / steps / anyOf
      Added value: +[
      +  {
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • removedOutput schema / properties / steps / type
      Removed value: -[
      -  "string",
      -  "null"
      -]
    • addedOutput schema / properties / supported_other_platforms / anyOf
      Added value: +[
      +  {
      +    "items": {
      +      "type": "string"
      +    },
      +    "type": "array"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • removedOutput schema / properties / supported_other_platforms / items
      Removed value: -{
      -  "type": "string"
      -}
    • removedOutput schema / properties / supported_other_platforms / type
      Removed value: -[
      -  "array",
      -  "null"
      -]
    • addedOutput schema / properties / utm_templates / anyOf
      Added value: +[
      +  {
      +    "items": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "ad_platform": {
      +          "type": "string"
      +        },
      +        "template": {
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "ad_platform",
      +        "template"
      +      ],
      +      "type": "object"
      +    },
      +    "type": "array"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • removedOutput schema / properties / utm_templates / items
      Removed value: -{
      -  "additionalProperties": false,
      -  "properties": {
      -    "ad_platform": {
      -      "type": "string"
      -    },
      -    "template": {
      -      "type": "string"
      -    }
      -  },
      -  "required": [
      -    "ad_platform",
      -    "template"
      -  ],
      -  "type": "object"
      -}
    • removedOutput schema / properties / utm_templates / type
      Removed value: -[
      -  "array",
      -  "null"
      -]
  2. Changed10 schema fields changed
    • removedInput schema / properties / guide
      Removed value: -{
      -  "description": "On platform other: html, kajabi, clickfunnels, gohighlevel, hubspot, unbounce, or dotnet",
      -  "type": "string"
      -}
    • addedInput schema / properties / other_platform
      Added value: +{
      +  "description": "Platform the site runs on when its saved platform is other, such as kajabi, hubspot, or html. Omit for the generic steps. An unknown name is refused with the supported list. Refused when the saved platform is not other.",
      +  "type": "string"
      +}
    • removedInput schema / properties / part
      Removed value: -{
      -  "description": "script, ads_utm, uninstall, or duplicate_pixel",
      -  "type": "string"
      -}
    • changedInput schema / properties / phase / description
      Previous value: -"connect or activate. WordPress and WooCommerce only. Activate only after an ad platform is connected. Omit phase and those guides return connect. Other guides ignore it"New value: +"install on platforms with a PixelFlow plugin only. connect (default): install the plugin and sign in. activate: the remaining steps after an ad platform is connected. Ignored on other platforms."
    • addedInput schema / properties / phase / enum
      Added value: +[
      +  "connect",
      +  "activate"
      +]
    • 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"
      +}
    • addedInput schema / properties / task
      Added value: +{
      +  "description": "What the instructions are for. install: add PixelFlow to the site. add_utm: add UTM parameters to ad links so conversions are attributed to campaigns. remove_duplicate_pixel: find and remove an ad platform pixel already on the site. uninstall: remove PixelFlow from the site.",
      +  "enum": [
      +    "install",
      +    "add_utm",
      +    "remove_duplicate_pixel",
      +    "uninstall"
      +  ],
      +  "type": "string"
      +}
    • changedInput schema / required
      Previous value: -[
      -  "site",
      -  "part"
      -]New value: +[
      +  "site_id",
      +  "task"
      +]
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "additionalProperties": false,
      +  "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"
      +    },
      +    "instruction": {
      +      "description": "One-sentence summary of what to do.",
      +      "type": "string"
      +    },
      +    "native_pixel_search": {
      +      "description": "remove_duplicate_pixel, and install with phase activate: text to search the site's code for to find an ad platform pixel already on the site.",
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": [
      +        "array",
      +        "null"
      +      ]
      +    },
      +    "other_platform": {
      +      "description": "Platform the steps are written for when the saved platform is other, such as kajabi. null when it was not passed or the saved platform is not other.",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "platform": {
      +      "description": "Platform the steps are written for, such as webflow.",
      +      "type": [
      +        "string",
      +        "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 and for tasks other than install.",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "steps": {
      +      "description": "Numbered steps for this task on this platform.",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "supported_other_platforms": {
      +      "description": "Platforms with their own steps when the saved platform is other, such as kajabi or html. Pass one as `other_platform`. null when the saved platform is not other.",
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": [
      +        "array",
      +        "null"
      +      ]
      +    },
      +    "task": {
      +      "description": "The task the instructions are for.",
      +      "enum": [
      +        "install",
      +        "add_utm",
      +        "remove_duplicate_pixel",
      +        "uninstall"
      +      ],
      +      "type": "string"
      +    },
      +    "utm_templates": {
      +      "description": "add_utm only: one UTM template per ad platform, to paste into the ad's URL parameters: `ad_platform` (string) and `template` (string).",
      +      "items": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "ad_platform": {
      +            "type": "string"
      +          },
      +          "template": {
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "ad_platform",
      +          "template"
      +        ],
      +        "type": "object"
      +      },
      +      "type": [
      +        "array",
      +        "null"
      +      ]
      +    }
      +  },
      +  "required": [
      +    "task",
      +    "instruction",
      +    "platform",
      +    "other_platform",
      +    "supported_other_platforms",
      +    "steps",
      +    "snippet",
      +    "rules_to_follow",
      +    "utm_templates",
      +    "native_pixel_search",
      +    "docs"
      +  ],
      +  "type": "object"
      +}
  3. First observed

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive, closed-world, so the safety profile is covered. The description adds genuinely new behavioral context: steps are tailored to the site's saved platform and install steps embed the site's own ready-to-paste snippet, telling the agent what the response contains. It does not mention rate limits or that an unknown platform is refused (that lives in the schema).

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?

Front-loaded with the purpose, then the task scope, then the usage trigger. Dense but every clause maps to the enum or to usage; the long middle sentence is slightly over-packed but nothing is redundant.

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?

An output schema exists, so return values need no explanation, and annotations cover safety. The description adds what an agent needs to decide to call it and what to expect (platform-tailored steps with an embedded snippet). Minor gap: the conditional phase/other_platform behaviors are only in the schema, not surfaced in prose.

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

Parameters3/5

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

Schema description coverage is 100% with enums documented for task and phase, so the schema carries the parameter burden and 3 is the baseline. The description adds rationale for one enum value (removing a prior ad-platform pixel that would double-count events) but never mentions phase or other_platform, so it does not meaningfully exceed the 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?

States a specific verb ('Get step-by-step instructions') and enumerates the exact scope: one of four named tasks, written for the site's platform. The four tasks mirror the enum values, so an agent can tell this apart from siblings like get_connect_link or verify_tracking 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?

Explicitly states the trigger conditions: 'when the user is ready to install PixelFlow, or asks how to add UTM parameters, remove a duplicate pixel, or uninstall.' Clear usage context, but no named alternatives or when-not-to-use exclusions (e.g., versus get_connect_link for the connect step).

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.