{"updated_at":"2026-09-29T00:42:26.577Z","observing_since":"2026-08-09T12:20:07.503Z","stats":{"domains_monitored":5439643,"domains_crawled":5439597,"domains_not_yet_crawled":46,"domains_monitored_note":"domains_monitored is the size of our crawl list, not the number of domains fetched. Use domains_crawled for statements about what we have actually looked at.","sites_analyzed":133979,"webmcp_detected":78230,"webmcp_detected_ever":78230,"webmcp_detected_latest_scan":77682,"not_observed_on_latest_scan":548,"not_observed_note":"Detected on an earlier scan but not observed on the most recent one. This is not a removal: transient failures are common, and we only treat a site as having removed WebMCP after three consecutive misses.","high_risk_sites":15,"tools_analyzed":7536747,"distinct_tools":910686,"distinct_tool_names":12676,"tools_analyzed_note":"tools_analyzed counts tool observations across all snapshots, not distinct tools: the same tool on the same site is counted once per scan. Use distinct_tools for unique (site, tool) pairs and distinct_tool_names for unique names.","alerts_30d":16270,"alerts_30d_sites":1424,"alerts_counted_since":"2026-08-30T06:07:13.445Z","alerts_excluded_not_attributable":466955,"alerts_30d_note":"Counts only risk increases attributable to the site, not to changes in our own scoring rules: a risk_increased event is counted only when the two snapshots compared were scored by the same scorer version. Events recorded before alerts_counted_since carry no version stamp and are excluded (alerts_excluded_not_attributable). The 30-day window is therefore only fully covered once alerts_counted_since is more than 30 days old."},"adoption_breakdown":{"detected":77682,"template_sites":73495,"custom_sites":4187,"custom_implementations":3614,"largest_template_sites":63074,"templates":[{"tool_names":["add_to_cart","browse_store","cancel_cart","get_cart","get_product","manage_orders","proceed_to_checkout","search_catalog","search_shop_policies_and_faqs","show_variant","update_cart_lines"],"sites":63074},{"vendor":"Shopify","vendor_doc_url":"https://shopify.dev/docs/api/web-mcp","note":"Documented platform feature, not a vulnerability. Individual merchants did not opt in to it one by one.","tool_names":["browse_store","cancel_cart","get_cart","get_product","manage_orders","proceed_to_checkout","search_catalog","search_shop_policies_and_faqs","show_variant","update_cart"],"sites":10248},{"vendor":"Cloudflare","vendor_doc_url":"https://blog.cloudflare.com/webmcp/","note":"Injected at the edge by Cloudflare when a site enables the WebMCP toggle (developer preview, 2026-08-06). No change at the origin is required. Documented platform feature, not a vulnerability.","tool_names":["inspect_image_c2pa","scan_images_c2pa"],"sites":171}]},"findings_total":2253,"findings_shown":20,"findings_truncated":true,"findings_denominator":4187,"findings_note":"Findings are independent implementations where a scoring rule fired, out of all independent implementations. Copies of a vendor-distributed template are collapsed into template_derived_observation instead of being listed one by one. Most findings are unverifiable_execute, which records that we could not read the implementation — not that we found something dangerous.","template_derived_observation":{"vendor":null,"vendor_doc_url":null,"sites":63074,"sites_with_a_scoring_signal":1,"implementation_analysed":false,"tool_names":["add_to_cart","browse_store","cancel_cart","get_cart","get_product","manage_orders","proceed_to_checkout","search_catalog","search_shop_policies_and_faqs","show_variant","update_cart_lines"],"note":"One implementation, distributed by the vendor. The same rules fire on every copy, so we count it once rather than listing it 63,074 times. This is a documented platform feature, not a vulnerability. We have not yet analysed this vendor's bundle, so 1 of these sites still carry unverifiable_execute — that records what we have not verified, not something we found."},"template_derived_observations":[{"vendor":null,"vendor_doc_url":null,"sites":63074,"sites_with_a_scoring_signal":1,"implementation_analysed":false,"tool_names":["add_to_cart","browse_store","cancel_cart","get_cart","get_product","manage_orders","proceed_to_checkout","search_catalog","search_shop_policies_and_faqs","show_variant","update_cart_lines"],"note":"One implementation, distributed by the vendor. The same rules fire on every copy, so we count it once rather than listing it 63,074 times. This is a documented platform feature, not a vulnerability. We have not yet analysed this vendor's bundle, so 1 of these sites still carry unverifiable_execute — that records what we have not verified, not something we found."},{"vendor":"Shopify","vendor_doc_url":"https://shopify.dev/docs/api/web-mcp","sites":10248,"sites_with_a_scoring_signal":16,"implementation_analysed":true,"tool_names":["browse_store","cancel_cart","get_cart","get_product","manage_orders","proceed_to_checkout","search_catalog","search_shop_policies_and_faqs","show_variant","update_cart"],"note":"One implementation, distributed by the vendor. The same rules fire on every copy, so we count it once rather than listing it 10,248 times. This is a documented platform feature, not a vulnerability. We fetched and analysed the distributed bundle, so these copies carry no unverified-implementation signal."},{"vendor":"Cloudflare","vendor_doc_url":"https://blog.cloudflare.com/webmcp/","sites":171,"sites_with_a_scoring_signal":1,"implementation_analysed":false,"tool_names":["inspect_image_c2pa","scan_images_c2pa"],"note":"One implementation, distributed by the vendor. The same rules fire on every copy, so we count it once rather than listing it 171 times. This is a documented platform feature, not a vulnerability. We have not yet analysed this vendor's bundle, so 1 of these sites still carry unverifiable_execute — that records what we have not verified, not something we found."}],"scored_sites":{"detected_latest_scan":77682,"with_a_scoring_signal":2271,"independent":2253,"template_derived":18},"crawl_first_seen":{"metric":"crawl_first_seen","disclaimer":"Counts when our crawler first observed a site, not when the site implemented WebMCP. This is crawl progress, not adoption growth.","series":[{"date":"2026-08-30","vendor_distributed":1032,"independent":37,"total":1069},{"date":"2026-08-31","vendor_distributed":875,"independent":37,"total":912},{"date":"2026-09-01","vendor_distributed":1024,"independent":202,"total":1226},{"date":"2026-09-02","vendor_distributed":990,"independent":44,"total":1034},{"date":"2026-09-03","vendor_distributed":1225,"independent":44,"total":1269},{"date":"2026-09-04","vendor_distributed":1094,"independent":32,"total":1126},{"date":"2026-09-05","vendor_distributed":1241,"independent":28,"total":1269},{"date":"2026-09-06","vendor_distributed":1297,"independent":414,"total":1711},{"date":"2026-09-07","vendor_distributed":867,"independent":21,"total":888},{"date":"2026-09-08","vendor_distributed":921,"independent":40,"total":961},{"date":"2026-09-09","vendor_distributed":1374,"independent":63,"total":1437},{"date":"2026-09-10","vendor_distributed":836,"independent":54,"total":890},{"date":"2026-09-11","vendor_distributed":1013,"independent":64,"total":1077},{"date":"2026-09-12","vendor_distributed":1656,"independent":133,"total":1789},{"date":"2026-09-13","vendor_distributed":1283,"independent":150,"total":1433},{"date":"2026-09-14","vendor_distributed":495,"independent":42,"total":537},{"date":"2026-09-15","vendor_distributed":1185,"independent":91,"total":1276},{"date":"2026-09-16","vendor_distributed":1113,"independent":137,"total":1250},{"date":"2026-09-17","vendor_distributed":1134,"independent":92,"total":1226},{"date":"2026-09-18","vendor_distributed":970,"independent":115,"total":1085},{"date":"2026-09-19","vendor_distributed":1768,"independent":156,"total":1924},{"date":"2026-09-20","vendor_distributed":3090,"independent":191,"total":3281},{"date":"2026-09-21","vendor_distributed":4623,"independent":219,"total":4842},{"date":"2026-09-22","vendor_distributed":1654,"independent":94,"total":1748},{"date":"2026-09-23","vendor_distributed":1195,"independent":101,"total":1296},{"date":"2026-09-24","vendor_distributed":979,"independent":118,"total":1097},{"date":"2026-09-25","vendor_distributed":1423,"independent":123,"total":1546},{"date":"2026-09-26","vendor_distributed":1306,"independent":96,"total":1402},{"date":"2026-09-27","vendor_distributed":1568,"independent":223,"total":1791},{"date":"2026-09-28","vendor_distributed":1371,"independent":133,"total":1504},{"date":"2026-09-29","vendor_distributed":81,"independent":4,"total":85}]},"requested_data":{"examples":[{"tool":"get_product","sites":73462,"description":"Get product details, OR navigate the browser to the product page. Set catalog.navigate=true whenever the user wants to see/view the product in the browser (triggers: \"show me\", \"open\", \"view\", \"go to\", \"take me to\", \"navigate to\" a product). Set catalog.navigate=false (default) only when you need data (description, options, variants, prices, availability) to answer a question or to prepare an add_","fields":[{"key":"catalog.id","type":"string","description":"Storefront API Product GID, product handle, or product URL path. Custom app product paths and Shopify standard /products/<handle> paths are supported. The id fi","personal":false,"label":null},{"key":"catalog.navigate","type":"boolean","description":"When true, navigate the browser to the product page after fetching details. Set true for user intents like \"show me\", \"open\", \"view\", \"go to\", \"take me to\" a pr","personal":false,"label":null},{"key":"catalog.selected_options","type":"array","description":"Known product option selections to filter available_options. Use exact option names and values from search_catalog options or a prior get_product available_opti","personal":false,"label":null}]},{"tool":"search_catalog","sites":73440,"description":"Search the store catalog for products, collections, articles, and pages. Does NOT add anything to the cart; use add_to_cart for cart changes. If the user asks for a specific product variant, call get_product after search_catalog to inspect available variants, then show_variant to display one.","fields":[{"key":"catalog.query","type":"string","description":"Search query string.","personal":false,"label":null},{"key":"catalog.pagination.limit","type":"integer","description":"Max results per type (1-10). Defaults to 5.","personal":false,"label":null}]},{"tool":"get_cart","sites":73434,"description":"Get the current shopping cart contents — line items with product titles, variant titles, handles, URLs, images, unit prices, quantities, and totals. Everything needed to describe the cart to the user in natural language, without a follow-up get_product call per line. Works from any page.","fields":[]}],"personal_examples":[{"sites":1,"fields":[{"key":"employee_email","type":"string","personal":true,"label":"Email address"},{"key":"passport_expiry","type":"string","personal":true,"label":"Government ID (passport / SSN)"},{"key":"passport_number","type":"string","personal":true,"label":"Government ID (passport / SSN)"}]},{"sites":1,"fields":[{"key":"name","type":"string","personal":true,"label":"Name"},{"key":"email","type":"string","personal":true,"label":"Email address"},{"key":"birthDate","type":"string","personal":true,"label":"Date of birth"}]}],"sites_with_tools":77682,"no_personal_data":77172,"requests_personal_data":480,"undetermined":30,"fields":[{"label":"Email address","sites":357},{"label":"Name","sites":250},{"label":"Phone number","sites":168},{"label":"Postal code","sites":25},{"label":"Government ID (passport / SSN)","sites":4},{"label":"Date of birth","sites":4},{"label":"Postal address","sites":3},{"label":"Payment details","sites":2}]},"mcp_registry":{"servers_monitored":36509,"servers_probed":10734,"tool_lists_retrieved":6385,"listing_state_changing_tools":4163,"listing_destructive_tools":2413,"auth_metadata_mismatch":2715,"auth_metadata_mismatch_denominator":9100,"auth_metadata_mismatch_note":"Servers that declared no authentication in the registry and responded to us. Servers that did not respond are excluded: we cannot tell whether their declaration was accurate.","local_execution":15233,"tools_analyzed":108705,"observing_since":"2026-08-11T13:11:37.094Z"},"findings":[{"id":"site-#FF7B96","risk_category":"output_concealed_from_user","severity":"high","first_detected":"2026-08-14T03:52:00.550Z"},{"id":"site-#2B94DD","risk_category":"credential_input","severity":"high","first_detected":"2026-09-28T04:05:14.677Z"},{"id":"site-#DA6C9B","risk_category":"credential_input","severity":"high","first_detected":"2026-09-20T06:13:27.094Z"},{"id":"site-#A2CEED","risk_category":"credential_input","severity":"high","first_detected":"2026-09-21T16:06:12.029Z"},{"id":"site-#145CB1","risk_category":"unverifiable_execute_declared_readonly","severity":"high","first_detected":"2026-09-06T07:59:27.236Z"},{"id":"site-#19F4FC","risk_category":"unverifiable_execute","severity":"high","first_detected":"2026-09-06T06:23:14.940Z"},{"id":"site-#D3E94A","risk_category":"credential_input","severity":"high","first_detected":"2026-09-27T04:31:25.836Z"},{"id":"site-#B53D1D","risk_category":"credential_input","severity":"high","first_detected":"2026-08-15T01:39:42.246Z"},{"id":"site-#BCC9EF","risk_category":"unverifiable_execute_declared_readonly","severity":"high","first_detected":"2026-09-01T04:28:04.653Z"},{"id":"site-#F1C873","risk_category":"unverifiable_execute","severity":"high","first_detected":"2026-09-28T06:36:43.079Z"},{"id":"site-#E2F645","risk_category":"unverifiable_execute_declared_readonly","severity":"high","first_detected":"2026-09-06T07:45:36.697Z"},{"id":"site-#986B64","risk_category":"unverifiable_execute","severity":"high","first_detected":"2026-09-19T22:55:35.774Z"},{"id":"site-#50B394","risk_category":"unverifiable_execute","severity":"high","first_detected":"2026-08-16T22:59:29.990Z"},{"id":"site-#F7EFE8","risk_category":"unverifiable_execute","severity":"high","first_detected":"2026-09-06T07:45:24.662Z"},{"id":"site-#365A75","risk_category":"external_data_transmission","severity":"high","first_detected":"2026-09-20T17:07:24.314Z"},{"id":"site-#D96A67","risk_category":"unverifiable_execute_declared_readonly","severity":"medium","first_detected":"2026-09-06T07:48:02.068Z"},{"id":"site-#6F84AF","risk_category":"unverifiable_execute_declared_readonly","severity":"medium","first_detected":"2026-09-06T08:04:19.294Z"},{"id":"site-#3676E7","risk_category":"unverifiable_execute","severity":"medium","first_detected":"2026-09-13T07:14:44.717Z"},{"id":"site-#25F1E4","risk_category":"unverifiable_execute_with_personal_data","severity":"medium","first_detected":"2026-09-23T06:47:07.662Z"},{"id":"site-#97BAC8","risk_category":"unverifiable_execute","severity":"medium","first_detected":"2026-09-06T07:16:44.442Z"}]}