Koskamo

Store Canary MCP

A free, read-only MCP server that allows AI assistants to perform health checks on WooCommerce stores. It provides tools to verify SSL certificates, SEO basics, site speed, product availability, policy links, and overall store health without requiring authentication or modifying store data.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

Store Canary MCP logo, by Form Nerd, LLCCommunity listingStreamable HTTPNo sign-inEndpoint checked 2026-11-01Published by Form Nerd, LLC
MCP endpoint (Streamable HTTP)
https://mcp.storecanary.app/mcp
Vendor documentation

What you can do with it

  • Audit WooCommerce store health before high-traffic sales events
  • Verify if checkout and payment methods are loading correctly
  • Check SSL certificate validity and HTTP redirect chains
  • Review public exposure of WordPress and plugin versions

Source and maintenance

Community listingRegistry 1.1.0
Maintenance checked

Protocol and capabilities

Server
store-canary 1.0.0
MCP protocol
2025-06-18
Tools
8 advertised
Resources
Not advertised
Resource templates
Not advertised
Prompts
3 advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": false
  },
  "prompts": {
    "listChanged": false
  }
}

Server-provided instructions

Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.

Store Canary checks a public WooCommerce store from the outside. check_store is the overall health check; check_ssl, check_exposure, check_seo_basics, check_speed, check_products and check_policies each look at one area; explain_finding explains any finding code. Every tool runs once and only sends GET requests: it never logs in, adds to cart or submits forms, and nothing is monitored or saved. Starter prompts (prompts/list) cover a pre-Black Friday audit, a checkout check and explaining a finding.

Tools

8 advertised

check_store — Check a WooCommerce store
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Check a public WooCommerce store from the outside: is it reachable, is HTTPS valid and are redirects sane, is WooCommerce detected, do /cart/ and /checkout/ load, and are payment markers visible on checkout. Read-only: GET requests only, never adds to cart, logs in or submits forms. Returns pass/warn/fail findings plus a link to the full audit. Pass a bare hostname or URL; paths are ignored and the host's homepage is checked.

check_store input schema
{
  "type": "object",
  "required": [
    "url"
  ],
  "properties": {
    "url": {
      "type": "string",
      "format": "uri",
      "maxLength": 2048,
      "description": "The store's public address, for example https://example.com. A bare hostname (example.com) is fine. Any path, query or fragment is ignored: the homepage of the host is checked."
    }
  },
  "additionalProperties": false
}
check_store output schema
{
  "type": "object",
  "required": [
    "status",
    "url",
    "checkedAt",
    "overall",
    "summary",
    "findings",
    "auditUrl",
    "liteUrl",
    "proTrialUrl"
  ],
  "properties": {
    "url": {
      "type": [
        "string",
        "null"
      ],
      "description": "Normalized store origin that was checked."
    },
    "status": {
      "enum": [
        "checked",
        "invalid_url",
        "rate_limited"
      ],
      "type": "string",
      "description": "checked = findings below; otherwise no store request was made."
    },
    "liteUrl": {
      "type": "string",
      "format": "uri",
      "description": "Store Canary Lite on WordPress.org (free)."
    },
    "overall": {
      "enum": [
        "pass",
        "warn",
        "fail",
        null
      ],
      "type": [
        "string",
        "null"
      ]
    },
    "summary": {
      "type": "string"
    },
    "auditUrl": {
      "type": "string",
      "format": "uri",
      "description": "Full Store Canary audit (plain external link)."
    },
    "findings": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "id",
          "status",
          "title",
          "detail"
        ],
        "properties": {
          "id": {
            "enum": [
              "reachable",
              "https",
              "redirects",
              "woocommerce",
              "cart",
              "checkout",
              "payment"
            ],
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "detail": {
            "type": "string"
          },
          "status": {
            "enum": [
              "pass",
              "warn",
              "fail"
            ],
            "type": "string"
          }
        },
        "additionalProperties": false
      }
    },
    "checkedAt": {
      "type": "string",
      "format": "date-time"
    },
    "reportUrl": {
      "type": "string",
      "format": "uri",
      "description": "Shareable read-only report page. The result is encoded in the link; nothing is stored."
    },
    "proTrialUrl": {
      "type": "string",
      "format": "uri",
      "description": "Store Canary Pro 30-day free trial."
    }
  },
  "additionalProperties": false
}
check_store annotations
{
  "title": "Check a WooCommerce store",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
check_ssl — Check a store's HTTPS setup
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Check that a store's HTTPS certificate is accepted, http:// permanently redirects to https://, the redirect chain is short and stays on HTTPS, and an HSTS header is set. The exact certificate expiry date isn't visible to an outside fetch. Read-only: one run of GET requests only; never logs in, adds to cart or submits forms. Nothing is monitored or saved; ongoing checks are Store Canary Pro. A bare hostname is fine; URL paths are ignored and the host's homepage is checked.

check_ssl input schema
{
  "type": "object",
  "required": [
    "url"
  ],
  "properties": {
    "url": {
      "type": "string",
      "format": "uri",
      "maxLength": 2048,
      "description": "The store's public address, for example https://example.com. A bare hostname (example.com) is fine. Any path, query or fragment is ignored: the homepage of the host is checked."
    }
  },
  "additionalProperties": false
}
check_ssl output schema
{
  "type": "object",
  "required": [
    "status",
    "url",
    "checkedAt",
    "overall",
    "summary",
    "findings",
    "auditUrl",
    "liteUrl",
    "proTrialUrl"
  ],
  "properties": {
    "url": {
      "type": [
        "string",
        "null"
      ],
      "description": "Normalized store origin that was checked."
    },
    "status": {
      "enum": [
        "checked",
        "invalid_url",
        "rate_limited"
      ],
      "type": "string",
      "description": "checked = findings below; otherwise no store request was made."
    },
    "liteUrl": {
      "type": "string",
      "format": "uri",
      "description": "Store Canary Lite on WordPress.org (free)."
    },
    "overall": {
      "enum": [
        "pass",
        "warn",
        "fail",
        null
      ],
      "type": [
        "string",
        "null"
      ]
    },
    "summary": {
      "type": "string"
    },
    "auditUrl": {
      "type": "string",
      "format": "uri",
      "description": "Full Store Canary audit (plain external link)."
    },
    "findings": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "id",
          "status",
          "title",
          "detail"
        ],
        "properties": {
          "id": {
            "enum": [
              "reachable",
              "ssl_certificate",
              "ssl_http_redirect",
              "ssl_redirect_chain",
              "ssl_hsts"
            ],
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "detail": {
            "type": "string"
          },
          "status": {
            "enum": [
              "pass",
              "warn",
              "fail"
            ],
            "type": "string"
          }
        },
        "additionalProperties": false
      }
    },
    "checkedAt": {
      "type": "string",
      "format": "date-time"
    },
    "reportUrl": {
      "type": "string",
      "format": "uri",
      "description": "Shareable read-only report page. The result is encoded in the link; nothing is stored."
    },
    "proTrialUrl": {
      "type": "string",
      "format": "uri",
      "description": "Store Canary Pro 30-day free trial."
    }
  },
  "additionalProperties": false
}
check_ssl annotations
{
  "title": "Check a store's HTTPS setup",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
check_exposure — Check what a store exposes publicly
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Flag WordPress, WooCommerce, plugin and PHP versions a store shows publicly (generator tags, asset ?ver= values, X-Powered-By), a public /readme.html and a readable /wp-content/debug.log. Log contents are never returned or kept. Read-only: one run of GET requests only; never logs in, adds to cart or submits forms. Nothing is monitored or saved; ongoing checks are Store Canary Pro. A bare hostname is fine; URL paths are ignored and the host's homepage is checked.

check_exposure input schema
{
  "type": "object",
  "required": [
    "url"
  ],
  "properties": {
    "url": {
      "type": "string",
      "format": "uri",
      "maxLength": 2048,
      "description": "The store's public address, for example https://example.com. A bare hostname (example.com) is fine. Any path, query or fragment is ignored: the homepage of the host is checked."
    }
  },
  "additionalProperties": false
}
check_exposure output schema
{
  "type": "object",
  "required": [
    "status",
    "url",
    "checkedAt",
    "overall",
    "summary",
    "findings",
    "auditUrl",
    "liteUrl",
    "proTrialUrl"
  ],
  "properties": {
    "url": {
      "type": [
        "string",
        "null"
      ],
      "description": "Normalized store origin that was checked."
    },
    "status": {
      "enum": [
        "checked",
        "invalid_url",
        "rate_limited"
      ],
      "type": "string",
      "description": "checked = findings below; otherwise no store request was made."
    },
    "liteUrl": {
      "type": "string",
      "format": "uri",
      "description": "Store Canary Lite on WordPress.org (free)."
    },
    "overall": {
      "enum": [
        "pass",
        "warn",
        "fail",
        null
      ],
      "type": [
        "string",
        "null"
      ]
    },
    "summary": {
      "type": "string"
    },
    "auditUrl": {
      "type": "string",
      "format": "uri",
      "description": "Full Store Canary audit (plain external link)."
    },
    "findings": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "id",
          "status",
          "title",
          "detail"
        ],
        "properties": {
          "id": {
            "enum": [
              "reachable",
              "exposure_wordpress_version",
              "exposure_woocommerce_version",
              "exposure_plugin_versions",
              "exposure_php_version",
              "exposure_readme",
              "exposure_debug_log"
            ],
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "detail": {
            "type": "string"
          },
          "status": {
            "enum": [
              "pass",
              "warn",
              "fail"
            ],
            "type": "string"
          }
        },
        "additionalProperties": false
      }
    },
    "checkedAt": {
      "type": "string",
      "format": "date-time"
    },
    "reportUrl": {
      "type": "string",
      "format": "uri",
      "description": "Shareable read-only report page. The result is encoded in the link; nothing is stored."
    },
    "proTrialUrl": {
      "type": "string",
      "format": "uri",
      "description": "Store Canary Pro 30-day free trial."
    }
  },
  "additionalProperties": false
}
check_exposure annotations
{
  "title": "Check what a store exposes publicly",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
check_seo_basics — Check a store's SEO basics
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Check a store's robots.txt (and whether it blocks the whole site), its XML sitemap, the homepage title and meta description, and noindex on the homepage. Read-only: one run of GET requests only; never logs in, adds to cart or submits forms. Nothing is monitored or saved; ongoing checks are Store Canary Pro. A bare hostname is fine; URL paths are ignored and the host's homepage is checked.

check_seo_basics input schema
{
  "type": "object",
  "required": [
    "url"
  ],
  "properties": {
    "url": {
      "type": "string",
      "format": "uri",
      "maxLength": 2048,
      "description": "The store's public address, for example https://example.com. A bare hostname (example.com) is fine. Any path, query or fragment is ignored: the homepage of the host is checked."
    }
  },
  "additionalProperties": false
}
check_seo_basics output schema
{
  "type": "object",
  "required": [
    "status",
    "url",
    "checkedAt",
    "overall",
    "summary",
    "findings",
    "auditUrl",
    "liteUrl",
    "proTrialUrl"
  ],
  "properties": {
    "url": {
      "type": [
        "string",
        "null"
      ],
      "description": "Normalized store origin that was checked."
    },
    "status": {
      "enum": [
        "checked",
        "invalid_url",
        "rate_limited"
      ],
      "type": "string",
      "description": "checked = findings below; otherwise no store request was made."
    },
    "liteUrl": {
      "type": "string",
      "format": "uri",
      "description": "Store Canary Lite on WordPress.org (free)."
    },
    "overall": {
      "enum": [
        "pass",
        "warn",
        "fail",
        null
      ],
      "type": [
        "string",
        "null"
      ]
    },
    "summary": {
      "type": "string"
    },
    "auditUrl": {
      "type": "string",
      "format": "uri",
      "description": "Full Store Canary audit (plain external link)."
    },
    "findings": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "id",
          "status",
          "title",
          "detail"
        ],
        "properties": {
          "id": {
            "enum": [
              "reachable",
              "seo_robots",
              "seo_sitemap",
              "seo_title",
              "seo_description",
              "seo_noindex"
            ],
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "detail": {
            "type": "string"
          },
          "status": {
            "enum": [
              "pass",
              "warn",
              "fail"
            ],
            "type": "string"
          }
        },
        "additionalProperties": false
      }
    },
    "checkedAt": {
      "type": "string",
      "format": "date-time"
    },
    "reportUrl": {
      "type": "string",
      "format": "uri",
      "description": "Shareable read-only report page. The result is encoded in the link; nothing is stored."
    },
    "proTrialUrl": {
      "type": "string",
      "format": "uri",
      "description": "Store Canary Pro 30-day free trial."
    }
  },
  "additionalProperties": false
}
check_seo_basics annotations
{
  "title": "Check a store's SEO basics",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
check_speed — Time a store's key pages
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Time one download each of a store's homepage, one product page and the cart from Cloudflare's network. One sample per page, not a lab test or an average. Read-only: one run of GET requests only; never logs in, adds to cart or submits forms. Nothing is monitored or saved; ongoing checks are Store Canary Pro. A bare hostname is fine; URL paths are ignored and the host's homepage is checked.

check_speed input schema
{
  "type": "object",
  "required": [
    "url"
  ],
  "properties": {
    "url": {
      "type": "string",
      "format": "uri",
      "maxLength": 2048,
      "description": "The store's public address, for example https://example.com. A bare hostname (example.com) is fine. Any path, query or fragment is ignored: the homepage of the host is checked."
    }
  },
  "additionalProperties": false
}
check_speed output schema
{
  "type": "object",
  "required": [
    "status",
    "url",
    "checkedAt",
    "overall",
    "summary",
    "findings",
    "auditUrl",
    "liteUrl",
    "proTrialUrl"
  ],
  "properties": {
    "url": {
      "type": [
        "string",
        "null"
      ],
      "description": "Normalized store origin that was checked."
    },
    "status": {
      "enum": [
        "checked",
        "invalid_url",
        "rate_limited"
      ],
      "type": "string",
      "description": "checked = findings below; otherwise no store request was made."
    },
    "liteUrl": {
      "type": "string",
      "format": "uri",
      "description": "Store Canary Lite on WordPress.org (free)."
    },
    "overall": {
      "enum": [
        "pass",
        "warn",
        "fail",
        null
      ],
      "type": [
        "string",
        "null"
      ]
    },
    "summary": {
      "type": "string"
    },
    "auditUrl": {
      "type": "string",
      "format": "uri",
      "description": "Full Store Canary audit (plain external link)."
    },
    "findings": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "id",
          "status",
          "title",
          "detail"
        ],
        "properties": {
          "id": {
            "enum": [
              "reachable",
              "speed_home",
              "speed_product",
              "speed_cart"
            ],
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "detail": {
            "type": "string"
          },
          "status": {
            "enum": [
              "pass",
              "warn",
              "fail"
            ],
            "type": "string"
          }
        },
        "additionalProperties": false
      }
    },
    "checkedAt": {
      "type": "string",
      "format": "date-time"
    },
    "reportUrl": {
      "type": "string",
      "format": "uri",
      "description": "Shareable read-only report page. The result is encoded in the link; nothing is stored."
    },
    "proTrialUrl": {
      "type": "string",
      "format": "uri",
      "description": "Store Canary Pro 30-day free trial."
    }
  },
  "additionalProperties": false
}
check_speed annotations
{
  "title": "Time a store's key pages",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
check_products — Sample a store's products
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Read up to 10 published products from the public WooCommerce Store API and flag missing prices, missing images and out-of-stock items. Read-only: one run of GET requests only; never logs in, adds to cart or submits forms. Nothing is monitored or saved; ongoing checks are Store Canary Pro. A bare hostname is fine; URL paths are ignored and the host's homepage is checked.

check_products input schema
{
  "type": "object",
  "required": [
    "url"
  ],
  "properties": {
    "url": {
      "type": "string",
      "format": "uri",
      "maxLength": 2048,
      "description": "The store's public address, for example https://example.com. A bare hostname (example.com) is fine. Any path, query or fragment is ignored: the homepage of the host is checked."
    }
  },
  "additionalProperties": false
}
check_products output schema
{
  "type": "object",
  "required": [
    "status",
    "url",
    "checkedAt",
    "overall",
    "summary",
    "findings",
    "auditUrl",
    "liteUrl",
    "proTrialUrl"
  ],
  "properties": {
    "url": {
      "type": [
        "string",
        "null"
      ],
      "description": "Normalized store origin that was checked."
    },
    "status": {
      "enum": [
        "checked",
        "invalid_url",
        "rate_limited"
      ],
      "type": "string",
      "description": "checked = findings below; otherwise no store request was made."
    },
    "liteUrl": {
      "type": "string",
      "format": "uri",
      "description": "Store Canary Lite on WordPress.org (free)."
    },
    "overall": {
      "enum": [
        "pass",
        "warn",
        "fail",
        null
      ],
      "type": [
        "string",
        "null"
      ]
    },
    "summary": {
      "type": "string"
    },
    "auditUrl": {
      "type": "string",
      "format": "uri",
      "description": "Full Store Canary audit (plain external link)."
    },
    "findings": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "id",
          "status",
          "title",
          "detail"
        ],
        "properties": {
          "id": {
            "enum": [
              "reachable",
              "products_store_api",
              "products_prices",
              "products_images",
              "products_stock"
            ],
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "detail": {
            "type": "string"
          },
          "status": {
            "enum": [
              "pass",
              "warn",
              "fail"
            ],
            "type": "string"
          }
        },
        "additionalProperties": false
      }
    },
    "checkedAt": {
      "type": "string",
      "format": "date-time"
    },
    "reportUrl": {
      "type": "string",
      "format": "uri",
      "description": "Shareable read-only report page. The result is encoded in the link; nothing is stored."
    },
    "proTrialUrl": {
      "type": "string",
      "format": "uri",
      "description": "Store Canary Pro 30-day free trial."
    }
  },
  "additionalProperties": false
}
check_products annotations
{
  "title": "Sample a store's products",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
check_policies — Check a store's policy pages
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Check that the homepage links to privacy, terms, shipping and returns/refunds pages, and that each linked page on the same site loads. Read-only: one run of GET requests only; never logs in, adds to cart or submits forms. Nothing is monitored or saved; ongoing checks are Store Canary Pro. A bare hostname is fine; URL paths are ignored and the host's homepage is checked.

check_policies input schema
{
  "type": "object",
  "required": [
    "url"
  ],
  "properties": {
    "url": {
      "type": "string",
      "format": "uri",
      "maxLength": 2048,
      "description": "The store's public address, for example https://example.com. A bare hostname (example.com) is fine. Any path, query or fragment is ignored: the homepage of the host is checked."
    }
  },
  "additionalProperties": false
}
check_policies output schema
{
  "type": "object",
  "required": [
    "status",
    "url",
    "checkedAt",
    "overall",
    "summary",
    "findings",
    "auditUrl",
    "liteUrl",
    "proTrialUrl"
  ],
  "properties": {
    "url": {
      "type": [
        "string",
        "null"
      ],
      "description": "Normalized store origin that was checked."
    },
    "status": {
      "enum": [
        "checked",
        "invalid_url",
        "rate_limited"
      ],
      "type": "string",
      "description": "checked = findings below; otherwise no store request was made."
    },
    "liteUrl": {
      "type": "string",
      "format": "uri",
      "description": "Store Canary Lite on WordPress.org (free)."
    },
    "overall": {
      "enum": [
        "pass",
        "warn",
        "fail",
        null
      ],
      "type": [
        "string",
        "null"
      ]
    },
    "summary": {
      "type": "string"
    },
    "auditUrl": {
      "type": "string",
      "format": "uri",
      "description": "Full Store Canary audit (plain external link)."
    },
    "findings": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "id",
          "status",
          "title",
          "detail"
        ],
        "properties": {
          "id": {
            "enum": [
              "reachable",
              "policies_privacy",
              "policies_terms",
              "policies_shipping",
              "policies_returns"
            ],
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "detail": {
            "type": "string"
          },
          "status": {
            "enum": [
              "pass",
              "warn",
              "fail"
            ],
            "type": "string"
          }
        },
        "additionalProperties": false
      }
    },
    "checkedAt": {
      "type": "string",
      "format": "date-time"
    },
    "reportUrl": {
      "type": "string",
      "format": "uri",
      "description": "Shareable read-only report page. The result is encoded in the link; nothing is stored."
    },
    "proTrialUrl": {
      "type": "string",
      "format": "uri",
      "description": "Store Canary Pro 30-day free trial."
    }
  },
  "additionalProperties": false
}
check_policies annotations
{
  "title": "Check a store's policy pages",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
explain_finding — Explain a Store Canary finding
Advertised by the server during the last successful anonymous check.
Advertised read-only

Explain a finding code returned by any Store Canary tool (for example ssl_hsts or exposure_debug_log) in plain words, with a suggested fix. Makes no network requests.

explain_finding input schema
{
  "type": "object",
  "required": [
    "code"
  ],
  "properties": {
    "code": {
      "type": "string",
      "maxLength": 64,
      "description": "A finding id from a Store Canary result, for example checkout or seo_noindex."
    }
  },
  "additionalProperties": false
}
explain_finding output schema
{
  "type": "object",
  "required": [
    "status",
    "code",
    "tool",
    "title",
    "meaning",
    "fix",
    "summary",
    "auditUrl",
    "liteUrl",
    "proTrialUrl"
  ],
  "properties": {
    "fix": {
      "type": [
        "string",
        "null"
      ]
    },
    "code": {
      "type": "string"
    },
    "tool": {
      "type": [
        "string",
        "null"
      ],
      "description": "The tool that returns this finding."
    },
    "title": {
      "type": [
        "string",
        "null"
      ]
    },
    "status": {
      "enum": [
        "explained",
        "unknown_code",
        "rate_limited"
      ],
      "type": "string"
    },
    "liteUrl": {
      "type": "string",
      "format": "uri",
      "description": "Store Canary Lite on WordPress.org (free)."
    },
    "meaning": {
      "type": [
        "string",
        "null"
      ]
    },
    "summary": {
      "type": "string"
    },
    "auditUrl": {
      "type": "string",
      "format": "uri",
      "description": "Full Store Canary audit (plain external link)."
    },
    "proTrialUrl": {
      "type": "string",
      "format": "uri",
      "description": "Store Canary Pro 30-day free trial."
    }
  },
  "additionalProperties": false
}
explain_finding annotations
{
  "title": "Explain a Store Canary finding",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}

Prompts

3 advertised

black_friday_audit — Audit my WooCommerce store before Black Friday

Advertised by the server during the last successful anonymous check.

Runs all seven Store Canary checks on one store and turns them into a prioritized pre-sale fix list.

url
The store address, for example shop.example.com. (required)
checkout_check — Is my checkout working?

Advertised by the server during the last successful anonymous check.

Checks that a store's cart, checkout and payment methods load, and explains anything that doesn't.

url
The store address, for example shop.example.com. (required)
explain_finding — Explain this finding

Advertised by the server during the last successful anonymous check.

Explains a Store Canary finding id in plain words, with a suggested fix.

code
A finding id from a Store Canary result, for example ssl_hsts. (required)

Resources

Not advertised

No resource definitions available.

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
297 ms
95th percentile latency
297 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 297 ms · metadata changed · 8 tool(s), 3 prompt(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http store-canary-mcp https://mcp.storecanary.app/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add store-canary-mcp --url https://mcp.storecanary.app/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable store-canary-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "store-canary-mcp": {
      "url": "https://mcp.storecanary.app/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "store-canary-mcp": {
      "type": "streamableHttp",
      "url": "https://mcp.storecanary.app/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start store-canary-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "store-canary-mcp": {
      "type": "http",
      "url": "https://mcp.storecanary.app/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http store-canary-mcp https://mcp.storecanary.app/mcp

Claude Desktop

Merge this into claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\), then restart Claude Desktop.
Claude Desktop configuration
{
  "mcpServers": {
    "store-canary-mcp": {
      "url": "https://mcp.storecanary.app/mcp"
    }
  }
}

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "store-canary-mcp": {
      "serverUrl": "https://mcp.storecanary.app/mcp"
    }
  }
}

Let your agent find its tools

Find servers like Store Canary MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.