<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: gr3p</title>
    <description>The latest articles on DEV Community by gr3p (@gr3p1p3).</description>
    <link>https://dev.to/gr3p1p3</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4056703%2F0fcd6045-acc5-4333-9fb2-153f64132fb8.png</url>
      <title>DEV Community: gr3p</title>
      <link>https://dev.to/gr3p1p3</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/gr3p1p3"/>
    <language>en</language>
    <item>
      <title>Your AI Agent Shouldn’t Have to Read an Entire Website Just to Click a Button</title>
      <dc:creator>gr3p</dc:creator>
      <pubDate>Fri, 31 Jul 2026 13:35:19 +0000</pubDate>
      <link>https://dev.to/gr3p1p3/your-ai-agent-shouldnt-have-to-read-an-entire-website-just-to-click-a-button-50l0</link>
      <guid>https://dev.to/gr3p1p3/your-ai-agent-shouldnt-have-to-read-an-entire-website-just-to-click-a-button-50l0</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fnrb7jzbj670h8pbrtjak.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fnrb7jzbj670h8pbrtjak.png" alt="Universal WebMCP turns a web page into registered tools for AI agents" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Imagine entering a restaurant where there is no menu.&lt;/p&gt;

&lt;p&gt;To order lunch, you must walk into the kitchen, inspect every shelf, understand how the appliances work, and guess which ingredients belong together.&lt;/p&gt;

&lt;p&gt;That is roughly how AI agents use most websites today.&lt;/p&gt;

&lt;p&gt;When you ask an agent to search for a product, compare offers, fill out a form, or press a button, it often has to:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;inspect the page;&lt;/li&gt;
&lt;li&gt;understand thousands of DOM or accessibility-tree elements;&lt;/li&gt;
&lt;li&gt;find the right control;&lt;/li&gt;
&lt;li&gt;build a selector;&lt;/li&gt;
&lt;li&gt;guess which input it expects;&lt;/li&gt;
&lt;li&gt;repeat the process when the page changes.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;It works, but it is expensive, fragile, and unnecessarily complicated.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;WebMCP offers a better idea: give the agent a menu.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What is WebMCP?
&lt;/h2&gt;

&lt;p&gt;WebMCP allows a website to expose structured tools directly to an AI agent.&lt;/p&gt;

&lt;p&gt;Instead of interpreting the entire page, the agent can see capabilities such as:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;search_products({ query })
filter_offers({ condition })
add_offer_to_cart({ index })
submit_contact_form({ fields })
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Each tool tells the agent:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;what it does;&lt;/li&gt;
&lt;li&gt;what input it accepts;&lt;/li&gt;
&lt;li&gt;what risk it carries;&lt;/li&gt;
&lt;li&gt;what structured result it returns.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The problem is that manually adding tools to every page, form, filter, and button still takes work.&lt;/p&gt;

&lt;p&gt;That is why I built &lt;strong&gt;Universal WebMCP Runtime&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  WebMCP without the integration work
&lt;/h2&gt;

&lt;p&gt;Universal WebMCP Runtime examines the interface your website already has and automatically turns it into a compact WebMCP tool catalog.&lt;/p&gt;

&lt;p&gt;Install it:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install&lt;/span&gt; @gr3p/universal-webmcp
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then start the runtime:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;createWebMCPRuntime&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;@gr3p/universal-webmcp&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;runtime&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;createWebMCPRuntime&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
  &lt;span class="na"&gt;mode&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;hybrid&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;confirmationPolicy&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;risk-based&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;

&lt;span class="nx"&gt;runtime&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;start&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The runtime discovers forms, buttons, navigation, filters, lists, and repeated actions. It generates names, descriptions, and input schemas, removes redundant tools, and registers the useful capabilities with WebMCP.&lt;/p&gt;

&lt;p&gt;Your website remains usable exactly as before. WebMCP becomes a progressive enhancement for agents.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why this matters for website owners
&lt;/h2&gt;

&lt;p&gt;Without a shared tool layer, every agent must reverse-engineer your interface independently.&lt;/p&gt;

&lt;p&gt;With Universal WebMCP:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;you do not need a separate agent-specific API;&lt;/li&gt;
&lt;li&gt;your existing UI remains the source of truth;&lt;/li&gt;
&lt;li&gt;the current browser session, permissions, and validation continue to apply;&lt;/li&gt;
&lt;li&gt;tools update when a dynamic page changes;&lt;/li&gt;
&lt;li&gt;open shadow roots and same-origin frames are covered;&lt;/li&gt;
&lt;li&gt;developers can override ambiguous discoveries with simple HTML metadata.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Integrate the runtime once, and compatible agents can immediately understand what your website allows them to do.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why this matters for people using agents
&lt;/h2&gt;

&lt;p&gt;Agents spend a surprising amount of context simply understanding webpages.&lt;/p&gt;

&lt;p&gt;In our public live benchmark, collecting the same 25 offers required:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Representation&lt;/th&gt;
&lt;th&gt;Tokens&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Relevant HTML&lt;/td&gt;
&lt;td&gt;245,375&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Targeted ARIA snapshot&lt;/td&gt;
&lt;td&gt;10,187&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Selected WebMCP tool, input, and result&lt;/td&gt;
&lt;td&gt;1,332&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;WebMCP result with a cached catalog&lt;/td&gt;
&lt;td&gt;1,041&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The selected WebMCP path used:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;99.5% fewer tokens&lt;/strong&gt; than the relevant HTML;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;86.9% fewer tokens&lt;/strong&gt; than the ARIA snapshot.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;More importantly, the agent did not have to rediscover how the page worked.&lt;/p&gt;

&lt;p&gt;It received a structured tool, invoked it, and got structured data back.&lt;/p&gt;

&lt;p&gt;That means less browsing, fewer screenshots, fewer broken selectors, and fewer reasoning steps.&lt;/p&gt;

&lt;h2&gt;
  
  
  Is automatic discovery safe?
&lt;/h2&gt;

&lt;p&gt;A useful agent interface should not expose every clickable element without context.&lt;/p&gt;

&lt;p&gt;Universal WebMCP includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;deterministic semantic identities;&lt;/li&gt;
&lt;li&gt;confidence thresholds;&lt;/li&gt;
&lt;li&gt;catalog limits;&lt;/li&gt;
&lt;li&gt;risk classification;&lt;/li&gt;
&lt;li&gt;confirmation policies;&lt;/li&gt;
&lt;li&gt;allowlists;&lt;/li&gt;
&lt;li&gt;filtering of hidden and sensitive controls;&lt;/li&gt;
&lt;li&gt;stronger classification for destructive actions.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Actions still go through the visible interface, existing browser session, and application validation.&lt;/p&gt;

&lt;p&gt;The runtime does not read cookies, bypass authentication, defeat CAPTCHAs, or reverse-engineer private APIs.&lt;/p&gt;

&lt;h2&gt;
  
  
  The honest limitation
&lt;/h2&gt;

&lt;p&gt;Sending the complete tool catalog on every request is not always cheaper than sending a small accessibility snapshot.&lt;/p&gt;

&lt;p&gt;The advantage comes from selecting the relevant tool and caching the catalog. In our benchmarks, WebMCP became cheaper than repeated ARIA inspection from the second task.&lt;/p&gt;

&lt;p&gt;This is not magic compression. It is a better operating model for agents.&lt;/p&gt;

&lt;h2&gt;
  
  
  The web already has interfaces for humans. Now it needs interfaces for agents.
&lt;/h2&gt;

&lt;p&gt;Websites use HTML and ARIA to explain their structure to browsers and assistive technologies.&lt;/p&gt;

&lt;p&gt;WebMCP can become the corresponding capability layer for AI agents.&lt;/p&gt;

&lt;p&gt;Universal WebMCP makes that transition practical for existing websites:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Existing website
       ↓
Universal WebMCP Runtime
       ↓
Structured WebMCP tools
       ↓
Any compatible AI agent
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Website owners should not have to rebuild their applications for every new agent.&lt;/p&gt;

&lt;p&gt;Agents should not have to reverse-engineer every website they visit.&lt;/p&gt;

&lt;p&gt;They should meet in the middle through a small, structured, and safe tool layer.&lt;/p&gt;

&lt;p&gt;That is what Universal WebMCP Runtime provides.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Stop making agents reverse-engineer websites. Give them tools.&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/gr3p1p3/universal_webmcp" rel="noopener noreferrer"&gt;GitHub repository&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.npmjs.com/package/@gr3p/universal-webmcp" rel="noopener noreferrer"&gt;npm package&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ai</category>
      <category>webdev</category>
      <category>opensource</category>
      <category>agents</category>
    </item>
  </channel>
</rss>
