Latch

Latch

@latch-tools.bsky.social

Make any website usable by AI agents in one line. Open-source WebMCP (navigator.modelContext) script. https://latch.tools

8 followers1 following112 posts

Cloudflare shipped a WebMCP developer preview at the edge: one dashboard toggle injects a bridge script into your pages, no code, nothing changed at your origin. When a company that sits in front of a huge slice of the web productizes a standard, the standard is real. One caveat ๐Ÿ‘‡

The preview ships two tool packs: content-credentials (C2PA provenance) and a proxy to an MCP server you already run. Neither one knows your site has a product search, an add-to-cart, a booking flow. Turning your actual actions into callable tools is still yours โ€” and that's the valuable half.

9th Circuit just vacated Amazon's injunction against Perplexity's Comet browser โ€” ruling the *user* accesses Amazon, not the agent vendor. The legal cloud over agentic browsing lifts a little. Worth noting what the fight was actually about: an agent acting through your logged-in session. ๐Ÿงต

That's the scrape-the-user model โ€” the agent drives the human's browser, the site never opted in, access contested enough to litigate. WebMCP is the opposite: the site declares first-party tools an agent may call. Sanctioned by design โ€” the owner sets what's exposed, not a court after.

And it settles "can agents access," not "can they do it reliably." A DOM-scraping agent is brittle and invisible to you; declared tools give a clean contract and let you see what agents do. Access was the legal question โ€” observability is the engineering one. (Biased: I build a WebMCP layer.)

They cap tool output at 4000 chars โ€” and that cap *is* a return-contract choice. For docs, search_content's payoff isn't that it ran; it's whether results come back ranked + chainable or a blob the agent re-parses. You only tune that by watching what agents call + get back. (I build here, biased.)

Nice, clear walkthrough from Dave Bitter of Lighthouse's new Agentic Browsing audit โ€” llms.txt, a11y tree, CLS, and WebMCP. Worth a read if you're asking "is my site agent-ready?" One thing I'd add on the WebMCP check ๐Ÿ‘‡ davebitter.com

It grades whether you *expose* tools (document.modelContext, valid schema). A static snapshot can't see what decides payoff: does the tool work when an agent calls it? Structured returns it can chain on, clean partial failures. Exposure isn't invocation. (I build a WebMCP layer, so biased.)

Fresh arXiv framework for 'agent-ready' e-commerce (Elnaffar & Rashidi, Jul 13): three dimensions โ€” interpretability, executability, decision reliability. Sharp. But 'executability' stays descriptive โ€” machine readability, semantic clarity, actionability *signals*. arxiv.org/abs/2607.12056

An agent doesn't execute a signal โ€” it calls something. The concrete primitive for that dimension is a callable tool (document.modelContext.registerTool), not richer markup. And 'decision reliability' only holds if you can see which agent called which tool + what came back. (I build here, biased.)

Google quietly shipped something bigger than another explainer: an official Agent-Ready Toolkit (June 22). "Is my website agent-ready?" just went from a vibes question to a measured, first-party check that ships in the same browser as most of your traffic. ๐Ÿงต

View full thread

The thing a static audit can't tell you: whether a real agent ever CALLED one. Exposure is a property of your code. Invocation is a property of the world โ€” "Gemini-in-Chrome called searchProducts() at 14:03, and it threw." No audit running in your own browser knows that yet.

So pass the audit to prove you exposed tools โ€” then instrument every call so the first real agent visit isn't invisible. I wrote up the gap + a tiny logging snippet (disclosure: I build Latch, a one-line WebMCP layer): dev.to writeup

Google quietly shipped something bigger than another explainer: an official Agent-Ready Toolkit (June 22). "Is my website agent-ready?" just went from a vibes question to a measured, first-party check that ships in the same browser as most of your traffic. ๐Ÿงต

What it grades (Lighthouse's new "Agentic browsing" category, from M150): did you register WebMCP tools, are there forms that should be exposed but aren't, are your input/output schemas valid. Good checks โ€” and all about one thing: EXPOSURE. Did you OFFER the tools?

Shopify's UCP makes your catalog agent-buyable โ€” discover, cart, checkout, standardized, shipping now. Real and worth doing. But be precise about what it *doesn't* cover: the parts of your storefront that make it yours. ๐Ÿงต

View full thread

Headless/non-Hydrogen or not on Shopify at all? You don't inherit /api/mcp for free โ€” WebMCP is the lighter path for the whole interactive surface. Caveat: no mainstream agent calls navigator.modelContext yet (June '26), so instrument it and treat it as a cheap option.

Shopify's UCP makes your catalog agent-buyable โ€” discover, cart, checkout, standardized, shipping now. Real and worth doing. But be precise about what it *doesn't* cover: the parts of your storefront that make it yours. ๐Ÿงต

UCP standardizes the commerce primitives every store shares. It doesn't describe your configurator, fit quiz, 'book a fitting', B2B quote, returns or subscription flows โ€” the bespoke stuff that's often why a customer picked you over a generic listing.

That's the WebMCP-shaped gap. UCP = the shared commerce rails. WebMCP (navigator.modelContext) = the tool surface for everything your store does that isn't a generic commerce primitive. They compose: agent buys via UCP, runs your custom flows via your WebMCP tools.

Honest take before you add WebMCP to your site: as of June 2026 *no* mainstream AI agent calls navigator.modelContext yet โ€” not ChatGPT Agent, not Claude, not Gemini, not Perplexity. They all still scrape the DOM or click pixels. So why ship it today? A short skeptic-friendly case ๐Ÿงต

View full thread

3/ The part most "install it now" posts skip: instrument it. Log every tool call from day one so you SEE the first real agent visit the day it happens โ€” not a quarter later from a billing anomaly. Adopt the option AND the meter, or you've adopted neither.

Honest take before you add WebMCP to your site: as of June 2026 *no* mainstream AI agent calls navigator.modelContext yet โ€” not ChatGPT Agent, not Claude, not Gemini, not Perplexity. They all still scrape the DOM or click pixels. So why ship it today? A short skeptic-friendly case ๐Ÿงต

1/ The cost is near-zero if you do it right. It's feature-detected โ€” a no-op in every browser that doesn't ship the API (almost all today). And a tool should be a thin typed wrapper over a function your UI already calls. No second codebase, nothing to undo.

2/ It's a dated option, not a promise. The folks building the browsers and the agents are the same companies pushing the spec. You don't need to know the date it lands โ€” just that holding the option is cheap (it is) and the payoff is high (for anything transactional, it is).

Chrome's Lighthouse now ships an "Agentic Browsing" audit category (since 13.3, May 2026). Run it and you get a pass/fail on whether an AI agent can actually understand and operate your page. Four checks โ€” here's what each tests ๐Ÿงต

View full thread

4. WebMCP โ€” does the page register tools (navigator.modelContext, or declarative form annotations) with valid input schemas? It's the only one of the four that's a genuine bet on agentic browsing rather than hygiene you should already be doing.

Chrome's Lighthouse now ships an "Agentic Browsing" audit category (since 13.3, May 2026). Run it and you get a pass/fail on whether an AI agent can actually understand and operate your page. Four checks โ€” here's what each tests ๐Ÿงต

1. llms.txt โ€” present at the root, has an H1, real links (not empty) 2. Accessibility tree โ€” every interactive element programmatically named, valid roles 3. CLS โ€” the same layout stability from Core Web Vitals; agents driving a browser mis-click on reflow just like people do

WebKit just marked WebMCP "oppose" on its standards-positions tracker. Before you write off building for AI agents: most of the objection is good engineering feedback. The strongest one โ€” "this duplicates the accessibility tree" โ€” is correct, and it tells you exactly how to build. ๐Ÿงต

The fix isn't picking a side, it's implementation. Your agent tool's handler should call the SAME function your "Add to cart" button already calls. One code path = one source of truth, so the tool registry can't desync from the page. Feature-detect it and you lose nothing if the spec stalls.

Most AI agents still "use" websites by screenshotting the page and guessing where to click. It's slow and breaks constantly. WebMCP (navigator.modelContext) flips it: your site hands the agent a list of callable tools โ€” search, add-to-cart, submit-form โ€” each with a schema. ๐Ÿงต

View full thread

The honest catch: wiring registerTool() for every search box, cart action and form โ€” plus schemas and a polyfill for browsers that don't have it yet โ€” is real work. I work on Latch (open-source, MIT): one <script> tag introspects your site and registers the tools for you.

Most AI agents still "use" websites by screenshotting the page and guessing where to click. It's slow and breaks constantly. WebMCP (navigator.modelContext) flips it: your site hands the agent a list of callable tools โ€” search, add-to-cart, submit-form โ€” each with a schema. ๐Ÿงต

It's now in an open origin trial in Chrome 149 (announced at Google I/O, May 2026), and Edge 147 ships it natively. Chrome DevTools can inspect which tools a page registers. The spec is a W3C Community Group draft โ€” Google, Microsoft, Mozilla & Apple all at the table.

You are up to date.