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.
https://mcp.storecanary.app/mcpWhat 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
- 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
{
"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.
Tools
8 advertised
check_store — Check a WooCommerce store
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.
{
"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
}{
"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
}{
"title": "Check a WooCommerce store",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}check_ssl — Check a store's HTTPS setup
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.
{
"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
}{
"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
}{
"title": "Check a store's HTTPS setup",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}check_exposure — Check what a store exposes publicly
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.
{
"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
}{
"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
}{
"title": "Check what a store exposes publicly",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}check_seo_basics — Check a store's SEO basics
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.
{
"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
}{
"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
}{
"title": "Check a store's SEO basics",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}check_speed — Time a store's key pages
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.
{
"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
}{
"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
}{
"title": "Time a store's key pages",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}check_products — Sample a store's products
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.
{
"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
}{
"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
}{
"title": "Sample a store's products",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}check_policies — Check a store's policy pages
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.
{
"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
}{
"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
}{
"title": "Check a store's policy pages",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}explain_finding — Explain a Store Canary finding
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.
{
"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
}{
"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
}{
"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
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?
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
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
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.
Claude Code
claude mcp add --transport http store-canary-mcp https://mcp.storecanary.app/mcpCodex
codex mcp add store-canary-mcp --url https://mcp.storecanary.app/mcpCursor
{
"mcpServers": {
"store-canary-mcp": {
"url": "https://mcp.storecanary.app/mcp"
}
}
}Cline
{
"mcpServers": {
"store-canary-mcp": {
"type": "streamableHttp",
"url": "https://mcp.storecanary.app/mcp",
"disabled": false
}
}
}VS Code
{
"servers": {
"store-canary-mcp": {
"type": "http",
"url": "https://mcp.storecanary.app/mcp"
}
}
}Gemini CLI
gemini mcp add --transport http store-canary-mcp https://mcp.storecanary.app/mcpClaude Desktop
{
"mcpServers": {
"store-canary-mcp": {
"url": "https://mcp.storecanary.app/mcp"
}
}
}Windsurf
{
"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.