Skip to main content
Glama

Fixes as code

get_fix_pack

Fixes ready to ship: as code, for a CMS through its MCP, as a pull request or at the edge. Pick with mode: fixes = Title, description, canonical, social tags, JSON-LD; platform html, wordpress, shopify, webflow, wix, storyblok, sanity, contentful, strapi, ghost, magento, git or cloudflare. Needs url. alt_texts = Write and ship missing alt texts. Needs url. web_vitals = Speed fixes as tags, WordPress steps or a Worker. Needs url. wordpress = Send fixes, new drafts and post updates to the OnPage.dev WordPress plugin for one-click approval and undo. Needs site_key.

Input Schema

NameRequiredDescriptionDefault
urlNoFull address of the page, for example https://example.com/pricing.
altsNoStep 2: the alt text per image src.
modeNoDefault fixes.
noteNoOptional reason shown to the site owner.
detailNobrief = short summary.
changesNoOptional field and new value pairs.
failingNoMetrics that fail for real users, if known.
platformNohtml (default) for code to paste; wordpress, webflow, wix, shopify, storyblok, sanity, contentful, strapi, ghost or magento for a plan with the exact fields and
site_keyNoThe site key from the plugin, wpk_...
change_idNoStatus of an earlier send.
frameworkNoWith platform git: the site's framework.
memory_keyNosite_memory key, records this call.

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / changes / items / properties / field / enum
      Previous value: -[
      -  "title",
      -  "meta_description",
      -  "canonical",
      -  "og_title",
      -  "og_description",
      -  "og_image",
      -  "jsonld",
      -  "image_alt"
      -]New value: +[
      +  "title",
      +  "meta_description",
      +  "canonical",
      +  "og_title",
      +  "og_description",
      +  "og_image",
      +  "jsonld",
      +  "image_alt",
      +  "post_content",
      +  "new_post"
      +]
  2. Changed1 schema field changed
    • removedOutput schema / description
      Removed value: -"The result as structured data; fields depend on mode."
  3. Changed7 schema fields changed
    • addedInput schema / properties / change_id
      Added value: +{
      +  "description": "Status of an earlier send.",
      +  "maxLength": 40,
      +  "type": "string"
      +}
    • addedInput schema / properties / changes
      Added value: +{
      +  "description": "Optional field and new value pairs.",
      +  "items": {
      +    "properties": {
      +      "field": {
      +        "enum": [
      +          "title",
      +          "meta_description",
      +          "canonical",
      +          "og_title",
      +          "og_description",
      +          "og_image",
      +          "jsonld",
      +          "image_alt"
      +        ],
      +        "type": "string"
      +      },
      +      "value": {}
      +    },
      +    "required": [
      +      "field",
      +      "value"
      +    ],
      +    "type": "object"
      +  },
      +  "maxItems": 20,
      +  "type": "array"
      +}
    • changedInput schema / properties / detail / description
      Previous value: -"brief returns a short summary, default full."New value: +"brief = short summary."
    • changedInput schema / properties / memory_key / description
      Previous value: -"Optional site_memory key, to record this call in the site memory."New value: +"site_memory key, records this call."
    • changedInput schema / properties / mode / enum
      Previous value: -[
      -  "fixes",
      -  "alt_texts",
      -  "web_vitals"
      -]New value: +[
      +  "fixes",
      +  "alt_texts",
      +  "web_vitals",
      +  "wordpress"
      +]
    • addedInput schema / properties / note
      Added value: +{
      +  "description": "Optional reason shown to the site owner.",
      +  "maxLength": 300,
      +  "type": "string"
      +}
    • addedInput schema / properties / site_key
      Added value: +{
      +  "description": "The site key from the plugin, wpk_...",
      +  "maxLength": 60,
      +  "type": "string"
      +}
  4. Changed1 schema field changed
    • addedInput schema / properties / detail
      Added value: +{
      +  "description": "brief returns a short summary, default full.",
      +  "enum": [
      +    "full",
      +    "brief"
      +  ],
      +  "type": "string"
      +}
  5. Changed1 schema field changed
    • addedInput schema / properties / memory_key
      Added value: +{
      +  "description": "Optional site_memory key, to record this call in the site memory.",
      +  "maxLength": 80,
      +  "type": "string"
      +}
  6. Changed8 schema fields changed
    • addedInput schema / properties / alts
      Added value: +{
      +  "description": "Step 2: the alt text per image src.",
      +  "items": {
      +    "properties": {
      +      "alt": {
      +        "maxLength": 300,
      +        "type": "string"
      +      },
      +      "src": {
      +        "maxLength": 2000,
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "src",
      +      "alt"
      +    ],
      +    "type": "object"
      +  },
      +  "maxItems": 50,
      +  "type": "array"
      +}
    • addedInput schema / properties / failing
      Added value: +{
      +  "description": "Metrics that fail for real users, if known.",
      +  "items": {
      +    "enum": [
      +      "LCP",
      +      "INP",
      +      "CLS",
      +      "FCP",
      +      "TTFB"
      +    ],
      +    "type": "string"
      +  },
      +  "maxItems": 5,
      +  "type": "array"
      +}
    • changedInput schema / properties / framework / description
      Previous value: -"With platform git: the site's framework. auto (default) detects it from the page."New value: +"With platform git: the site's framework."
    • addedInput schema / properties / mode
      Added value: +{
      +  "description": "Default fixes.",
      +  "enum": [
      +    "fixes",
      +    "alt_texts",
      +    "web_vitals"
      +  ],
      +  "type": "string"
      +}
    • changedInput schema / properties / platform / description
      Previous value: -"html (default) for code to paste; wordpress, webflow, wix, shopify, storyblok, sanity, contentful, strapi, ghost or magento for a plan with the exact fields and MCP or API calls that the user's own connection to that platform applies after approval; git for framework code and a pull request; or cloudflare for a Worker that applies the fixes as the page is served, on any CMS on the user's own Cloudflare."New value: +"html (default) for code to paste; wordpress, webflow, wix, shopify, storyblok, sanity, contentful, strapi, ghost or magento for a plan with the exact fields and"
    • changedInput schema / properties / url / description
      Previous value: -"Full address of the page, for example https://example.com/pricing. A bare domain like example.com also works."New value: +"Full address of the page, for example https://example.com/pricing."
    • removedInput schema / required
      Removed value: -[
      -  "url"
      -]
    • changedOutput schema / description
      Previous value: -"The same result as the text, as structured data."New value: +"The result as structured data; fields depend on mode."
  7. Changed2 schema fields changed
    • changedInput schema / properties / platform / description
      Previous value: -"html (default) for code to paste, wordpress for a plan your WordPress connection can apply, git for framework code and the steps to open a pull request, or cloudflare for a Cloudflare Worker that applies the fixes as the page is served, on any CMS, when the domain runs through the user's own Cloudflare."New value: +"html (default) for code to paste; wordpress, webflow, wix, shopify, storyblok, sanity, contentful, strapi, ghost or magento for a plan with the exact fields and MCP or API calls that the user's own connection to that platform applies after approval; git for framework code and a pull request; or cloudflare for a Worker that applies the fixes as the page is served, on any CMS on the user's own Cloudflare."
    • changedInput schema / properties / platform / enum
      Previous value: -[
      -  "html",
      -  "wordpress",
      -  "git",
      -  "cloudflare"
      -]New value: +[
      +  "html",
      +  "wordpress",
      +  "git",
      +  "cloudflare",
      +  "webflow",
      +  "wix",
      +  "shopify",
      +  "storyblok",
      +  "sanity",
      +  "contentful",
      +  "strapi",
      +  "ghost",
      +  "magento"
      +]
  8. Changed2 schema fields changed
    • addedInput schema / properties / url / maxLength
      Added value: +2048
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "description": "The same result as the text, as structured data.",
      +  "type": "object"
      +}
  9. Changed2 schema fields changed
    • changedInput schema / properties / platform / description
      Previous value: -"html (default) for code to paste, wordpress for a plan your WordPress connection can apply, git for framework code and the steps to open a pull request."New value: +"html (default) for code to paste, wordpress for a plan your WordPress connection can apply, git for framework code and the steps to open a pull request, or cloudflare for a Cloudflare Worker that applies the fixes as the page is served, on any CMS, when the domain runs through the user's own Cloudflare."
    • changedInput schema / properties / platform / enum
      Previous value: -[
      -  "html",
      -  "wordpress",
      -  "git"
      -]New value: +[
      +  "html",
      +  "wordpress",
      +  "git",
      +  "cloudflare"
      +]
  10. Changed3 schema fields changed
    • addedInput schema / properties / framework
      Added value: +{
      +  "description": "With platform git: the site's framework. auto (default) detects it from the page.",
      +  "enum": [
      +    "auto",
      +    "nextjs-app",
      +    "nextjs-pages",
      +    "nuxt",
      +    "sveltekit",
      +    "astro",
      +    "angular",
      +    "react",
      +    "vue",
      +    "html"
      +  ],
      +  "type": "string"
      +}
    • changedInput schema / properties / platform / description
      Previous value: -"html (default) for code to paste, wordpress for a plan your WordPress connection can apply."New value: +"html (default) for code to paste, wordpress for a plan your WordPress connection can apply, git for framework code and the steps to open a pull request."
    • changedInput schema / properties / platform / enum
      Previous value: -[
      -  "html",
      -  "wordpress"
      -]New value: +[
      +  "html",
      +  "wordpress",
      +  "git"
      +]
  11. Changed1 schema field changed
    • addedInput schema / properties / platform
      Added value: +{
      +  "description": "html (default) for code to paste, wordpress for a plan your WordPress connection can apply.",
      +  "enum": [
      +    "html",
      +    "wordpress"
      +  ],
      +  "type": "string"
      +}
  12. First observed

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, idempotentHint=false, openWorldHint=true and destructiveHint=false. The description adds real context beyond that for the wordpress mode: fixes, drafts and post updates are sent to the plugin with one-click approval and undo, which reassures about reversibility. It does not disclose auth requirements, rate limits, or whether repeated non-idempotent calls duplicate sends, so it is useful but partial.

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

Conciseness3/5

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

The mode list is dense but consistently structured ('mode = output. Needs x.'), and the deliverable is front-loaded. The opening clause 'Fixes ready to ship' is marketing filler, and cramming four modes plus platform lists into one paragraph makes it harder to scan than bullets would.

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?

With an output schema present, return values need not be described. For a 12-parameter, 4-mode tool the description covers the mode taxonomy and required inputs well; the main omission is any signal about ordering relative to siblings (e.g. analyze first, then generate fixes).

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 goes further by binding parameters to modes – url is required for fixes/alt_texts/web_vitals and site_key for wordpress. That mode-to-parameter dependency is not expressible in the flat schema and is the single most useful thing added here.

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

Purpose4/5

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

The description states a concrete deliverable – a 'fix pack' emitted as code, CMS payload, PR, or edge worker – and enumerates the four modes (fixes, alt_texts, web_vitals, wordpress) with the artifact each produces. That is specific verb+resource+output. It does not, however, name or contrast itself against closely related siblings such as prioritize_fixes, plan, accessibility, or web_vitals, so an agent must infer the boundary.

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

Usage Guidelines3/5

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

Usage is implied through mode semantics and the per-mode prerequisites ('Needs url', 'Needs site_key'), which tells an agent which mode requires what input. There is no explicit when-to-use/when-not guidance and no routing to alternatives, e.g. which sibling to call first to decide which fixes are needed.

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.