WebMCP

(github.com)

114 points by sanj18 hours ago

14 comments

  • jasonjmcghee17 hours ago
    Surprised to see this on HN front-page.<p>A lot has happened since I proposed &#x2F; built this.<p>WebMCP is being incubated in W3C &#x2F; webmachinelearning, so highly recommend checking that out as it&#x27;s what will turn into WebMCP being in your browser.<p><a href="https:&#x2F;&#x2F;github.com&#x2F;webmachinelearning&#x2F;webmcp" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;webmachinelearning&#x2F;webmcp</a>
    • koolala16 hours ago
      How much of this can or can&#x27;t be done by a Extension or Bookmarklet running JS in a page? What is your biggest dream from standardizing this?
      • jasonjmcghee15 hours ago
        If there&#x27;s a standard instead of needing to download the Jira mcp server, you just visit their website and all the tools are described and usable from there.<p>Or put differently, as a company &#x2F; group &#x2F; individual, instead of needing to build and distribute an mcp server and public API, you can just support WebMCP.<p>Another alternative is LLMs &#x2F; agents operating playwright or the equivalent which will likely be less reliable and consume more tokens. (By a fair margin)
      • nsonha15 hours ago
        it seems like a cleaner approach to declare a handful of tools that users can approve&#x2F;ask for granularily, than just say &quot;my website can run any wacky script, here is some bookmarklet, nerds&quot; or the very generic permission model of browser extensions
        • koolala14 hours ago
          Couldn&#x27;t that be solved with a simple bookmarklet permission model? The script would request the same pop-up features as a website?
          • miguelspizza14 hours ago
            It&#x27;s more providing permission granularity on the action level rather than the sandbox level. Your script might not be able to make external api calls, but there is no way to gate the ability to take destructive action within the webpage.<p>With something like WebMCP you get elicitation and the ability to disable tools from the client.
            • koolala13 hours ago
              What kind of destructive action do you mean that is so critical?
              • miguelspizza13 hours ago
                WebMCP essentially turns your website into an MCP server. Which means it is kind of like building a UI for the LLM that lives alongside the human UI.<p>It&#x27;s also a contract for how LLM&#x27;s interact with a website, they can do no more than the tools allow them to do. When you are running javascript on the page, the entire website is an attack surface.<p>Let&#x27;s take gmail, for example. There is no way to protect your webpage from an agent running a script that sends an email by triggering the send email button. But with WebMCP, you can explicitly disable the &quot;send_email&quot; tool when the agent interacts with gmail.
                • koolala13 hours ago
                  That sounds nice. That makes the WebMCP both capabilities and permissions.
    • huflungdung10 hours ago
      [dead]
  • socketcluster2 hours ago
    My understanding is that this is essentially a hub for MCP servers?<p>The current and potential benefits are:<p>- Consistent authentication mechanism for all tools.<p>- Ease of tool registration&#x2F;deregistration.<p>- Tool discovery.<p>Main drawbacks are:<p>- Trusting WebMCP npm package to run on your users&#x27; computers.<p>- Trusting WebMCP with access to your site or platform&#x27;s functionality. Kind of like OAuth?<p>Does this sound right? Any other pros and cons versus integrating MCP server directly with specific LLMs?
    • jasonjmcghee2 hours ago
      That&#x27;s not how I&#x27;d describe it- it&#x27;s not meant to centralize servers, it&#x27;s the idea: maybe you don&#x27;t need to build and distribute a separate downloadable thing for users to interact with your service&#x2F;product&#x2F;whatever via agent, and instead they continue to use your website via an appropriate interface for agents.<p>(Here&#x27;s another comment with an explanation <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=45623782">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=45623782</a>)<p>The npm package is only there as the browser doesn&#x27;t natively support the behavior (yet). Similarly MCP clients don&#x27;t have built in support. So it&#x27;s a bridge&#x2F;proxy to demonstrate what could be done.
      • socketcluster1 hour ago
        I think the centralization aspect sounds potentially very useful so I didn&#x27;t mean it like a deal-breaker. I&#x27;ve been thinking it&#x27;s a matter of time before someone figures out a good way to centralize MCP tools. This kind of thing could be huge; like the Google of MCP tools.
  • miguelspizza14 hours ago
    Hey glad to see Jason getting the credit he deserves! He was grokking WebMCP long before anyone else.<p>If anyone wants to test out WebMCP, you can go to: <a href="https:&#x2F;&#x2F;webmcp.sh&#x2F;" rel="nofollow">https:&#x2F;&#x2F;webmcp.sh&#x2F;</a> (this is a WebMCP server)<p>With the MCP-B chrome extension (this is a WebMCP client): <a href="https:&#x2F;&#x2F;chromewebstore.google.com&#x2F;detail&#x2F;mcp-b-extension&#x2F;daohopfhkdelnpemnhlekblhnikhdhfa" rel="nofollow">https:&#x2F;&#x2F;chromewebstore.google.com&#x2F;detail&#x2F;mcp-b-extension&#x2F;dao...</a><p>and use it to call WebMCP tools
  • ngc66775 hours ago
    Also an other take here <a href="https:&#x2F;&#x2F;gitlab.com&#x2F;sctlib&#x2F;bmcp" rel="nofollow">https:&#x2F;&#x2F;gitlab.com&#x2F;sctlib&#x2F;bmcp</a>
  • mrasong11 hours ago
    Tried Claude’s Chrome control feature before, it totally blew my mind.<p>Didn’t expect WebMCP to let you build custom MCP clients too. That’s actually way more flexible!
  • tobyjsullivan17 hours ago
    I had to skim through this a couple times before I realized that I still need to run an MCP server locally. This is basically a proxy between an LLM and the proposed protocol.<p>It’s a nice proof of concept.<p>And makes sense that the goal would be for LLM clients to adopt and support the standard natively. Then the proxy won’t be necessary.
    • koolala16 hours ago
      ChatGPT couldn&#x27;t websocket connect to it directly in your browser?
  • dogma113813 hours ago
    Sitemap.xml is back.
    • pjmlp10 hours ago
      Never went away, we always have to deliver it somehow on our projects.
  • saberience6 hours ago
    This seems like a security nightmare, a way to inject insecure content onto everyone&#x27;s PC which can then automate actions executed with full user&#x2F;admin privileges?<p>Why on Earth would I want this?
    • jasonjmcghee1 hour ago
      Entirely executing within the browser sandbox is one way to mitigate this. And that is the current scope of the official w3c proposal for this.<p><a href="https:&#x2F;&#x2F;github.com&#x2F;webmachinelearning&#x2F;webmcp" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;webmachinelearning&#x2F;webmcp</a><p>I attempted to acknowledge the security implications and am not trying to push this as a product&#x2F;service - this was just a proposal.<p>Despite it being a proposal, I added token based authentication to mitigate potential abuse by forcing users to intentionally authenticate with a website before it can be used.
  • westurner17 hours ago
    W3C specs are written with respec: ReSpec docs: <a href="https:&#x2F;&#x2F;respec.org&#x2F;docs&#x2F;#w3c-documents" rel="nofollow">https:&#x2F;&#x2F;respec.org&#x2F;docs&#x2F;#w3c-documents</a><p>W3C Process document &gt; 3.4. Chartered Groups: Working Groups and Interest Groups: <a href="https:&#x2F;&#x2F;www.w3.org&#x2F;policies&#x2F;process&#x2F;#GAGeneral" rel="nofollow">https:&#x2F;&#x2F;www.w3.org&#x2F;policies&#x2F;process&#x2F;#GAGeneral</a><p>There&#x27;s WebGPU, WebNN, window.ai, Prompt API, Summarizer API, Writer API, Rewriter API, Language Detector API, Translator API ; and now WebMCP<p>WebNN: <a href="https:&#x2F;&#x2F;www.w3.org&#x2F;TR&#x2F;webnn&#x2F;" rel="nofollow">https:&#x2F;&#x2F;www.w3.org&#x2F;TR&#x2F;webnn&#x2F;</a><p>webmachinelearning&#x2F;prompt-api &gt; &quot;Explainer for the Prompt API&quot;: <a href="https:&#x2F;&#x2F;github.com&#x2F;webmachinelearning&#x2F;prompt-api" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;webmachinelearning&#x2F;prompt-api</a><p><a href="https:&#x2F;&#x2F;developer.chrome.com&#x2F;docs&#x2F;ai&#x2F;built-in" rel="nofollow">https:&#x2F;&#x2F;developer.chrome.com&#x2F;docs&#x2F;ai&#x2F;built-in</a> :<p>&gt; Standardization effort: <i>We&#x27;re working to standardize all of these APIs for cross-browser compatibility.</i><p>&gt; <i>The Language Detector API and Translator API have been adopted by the W3C WebML Working Group. We&#x27;ve asked Mozilla and WebKit for their standards positions.</i><p>&gt; <i>The Summarizer API, Writer API, and Rewriter API have also been adopted by the W3C WebML Working Group. We&#x27;ve asked asked Mozilla and WebKit for their standards positions.</i><p>webmachinelearning&#x2F;webmcp: <a href="https:&#x2F;&#x2F;github.com&#x2F;webmachinelearning&#x2F;webmcp" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;webmachinelearning&#x2F;webmcp</a><p>jasonjmcghee&#x2F;WebMCP: <a href="https:&#x2F;&#x2F;github.com&#x2F;jasonjmcghee&#x2F;WebMCP" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;jasonjmcghee&#x2F;WebMCP</a><p>Having worked on at least one web app with a name that started with &quot;Web&quot;, I&#x27;m not surprised.<p>&#x2F;? mcp chrome: <a href="https:&#x2F;&#x2F;hn.algolia.com&#x2F;?dateRange=all&amp;page=0&amp;prefix=false&amp;query=mcp%20chrome&amp;sort=byDate&amp;type=story" rel="nofollow">https:&#x2F;&#x2F;hn.algolia.com&#x2F;?dateRange=all&amp;page=0&amp;prefix=false&amp;qu...</a> :<p>- &quot;Show HN: We packaged an MCP server inside Chromium&quot; (today) <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=45618536">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=45618536</a> re: browseros-mcp: <a href="https:&#x2F;&#x2F;github.com&#x2F;browseros-ai&#x2F;BrowserOS&#x2F;blob&#x2F;main&#x2F;docs&#x2F;browseros-mcp&#x2F;how-to-guide.mdx" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;browseros-ai&#x2F;BrowserOS&#x2F;blob&#x2F;main&#x2F;docs&#x2F;bro...</a><p>- &quot;Chrome DevTools (MCP) for your AI agent&quot; <a href="https:&#x2F;&#x2F;developer.chrome.com&#x2F;blog&#x2F;chrome-devtools-mcp" rel="nofollow">https:&#x2F;&#x2F;developer.chrome.com&#x2F;blog&#x2F;chrome-devtools-mcp</a> .. <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=45412734">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=45412734</a> (September 2025) .. :<p>&gt; <i>We&#x27;re launching today a public preview for the new Chrome DevTools Model Context Protocol (MCP) server, bringing the power of Chrome DevTools to AI coding assistants.</i><p>&gt; <i>Coding agents face a fundamental problem: they are not able to see what the code they generate actually does when it runs in the browser. They&#x27;re effectively programming with a blindfold on.</i><p>&gt; <i>The Chrome DevTools MCP server changes this. AI coding assistants are able to debug web pages directly in Chrome, and benefit from DevTools debugging capabilities and performance insights. This improves their accuracy when identifying and fixing issues.</i><p>How could the Chrome DevTools MCP be integrated with the Gemini Computer Use model?<p>From <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=45543923">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=45543923</a> :<p>&gt; Competency Story: <i>The customer and product owner can write BDD tests in order to validate the app against the requirements</i><p>&gt; Prompt: <i>Write playwright tests for #token_reference, that run a named factored-out login sequence, and then test as human user would that: when you click on Home that it navigates to &#x2F; (given browser MCP and recently the</i> Gemini 2.5 Computer Operator model<i>)</i><p>&quot;Introducing the Gemini 2.5 Computer Use model&quot; (October 2025) <a href="https:&#x2F;&#x2F;blog.google&#x2F;technology&#x2F;google-deepmind&#x2F;gemini-computer-use-model&#x2F;" rel="nofollow">https:&#x2F;&#x2F;blog.google&#x2F;technology&#x2F;google-deepmind&#x2F;gemini-comput...</a><p>Could this help with accessibility reviews?<p>&quot;Lighthouse accessibility score&quot; <a href="https:&#x2F;&#x2F;developer.chrome.com&#x2F;docs&#x2F;lighthouse&#x2F;accessibility&#x2F;scoring" rel="nofollow">https:&#x2F;&#x2F;developer.chrome.com&#x2F;docs&#x2F;lighthouse&#x2F;accessibility&#x2F;s...</a><p>awesome-a11y &gt; Tools: <a href="https:&#x2F;&#x2F;github.com&#x2F;brunopulis&#x2F;awesome-a11y&#x2F;blob&#x2F;main&#x2F;topics&#x2F;tools.md" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;brunopulis&#x2F;awesome-a11y&#x2F;blob&#x2F;main&#x2F;topics&#x2F;...</a>
    • ocdtrekkie14 hours ago
      This explains all the new random GPO settings I had to go disable at the office this week! (A lot of users are reporting performance issues with browsers, seems like all the browsers are adding AI things... seems like a good place to start.)
      • westurner4 hours ago
        This is as bad or worse than agreeing to voice search with them.<p>Hadn&#x27;t realized we&#x27;ve all been opted-in.<p>My voice assistant used to be able to create a reminder without siphoning everything out to &quot;must be reviewed because it&#x27;s AI&quot; remote AI.<p>Is it possible to use non-AI voice search on YouTube (with GoogleTV) without signing one&#x27;s life away?<p>Try voice searching for &quot;weather in [city]&quot; with YT on GTV: it launches another (Google) app instead of just adding text to the search field.<p>When they asked for suggestions for OpenAI&#x27;s fork of Chromium, I suggested adding fuzzy and regex search in a drawer and sending it upstream; like vimgrep for Chromium. That would help solve for <i>Search</i>, like the original mission of the company.
  • hhthrowaway12308 hours ago
    Good work! Needed this today
  • sublinear15 hours ago
    From <a href="https:&#x2F;&#x2F;modelcontextprotocol.io&#x2F;docs&#x2F;getting-started&#x2F;intro" rel="nofollow">https:&#x2F;&#x2F;modelcontextprotocol.io&#x2F;docs&#x2F;getting-started&#x2F;intro</a><p>&gt; What can MCP enable? 1) Agents can access your Google Calendar and Notion, acting as a more personalized AI assistant. 2) Claude Code can generate an entire web app using a Figma design. 3) Enterprise chatbots can connect to multiple databases across an organization, empowering users to analyze data using chat. 4) AI models can create 3D designs on Blender and print them out using a 3D printer.<p>Sure 1 and 3 make sense if they mean &quot;summarize&quot; and not &quot;analyze&quot;, 4 maybe, but 2... Oh I don&#x27;t know where to begin other than to say that even really smart humans have a very hard time dealing with that task based on a figma doc. Wouldn&#x27;t it make more sense to generate the figma doc if they&#x27;re already that awful to begin with?
  • brazukadev6 hours ago
    Why would I use that in place of asking the model to use an API? &#x2F;s
  • meindnoch17 hours ago
    [flagged]