# ChatGPT supports WebMCP now · Stacktree

Source: https://stacktr.ee/blog/chatgpt-webmcp

[Skip to content](#main) [Stacktree](/)[Developers](/developers)[Agents](/agents)[Docs](/docs)[Use cases](/use-cases)[Pricing](/pricing)[Blog](/blog)[Dashboard](https://app.stacktr.ee)[Sign in →](https://app.stacktr.ee)      By [ Steve Smith ](/about) · Founder, Stacktree  ·  Last updated August 25, 2026          Blog

#  ChatGPT supports WebMCP now

   OpenAI shipped WebMCP in the ChatGPT desktop browser, Work, and Codex, with no origin trial token. Here is what the API actually is, and the one annotation detail that decides whether a tool runs or interrupts the user.

  [ Get started free ](https://app.stacktr.ee/?join=1&from=seo_blog_chatgpt_webmcp)   install npx stacktree-install
Copy
     No card · 3 pages free · about a minute

##  Does ChatGPT support WebMCP?

On 25 August 2026 OpenAI announced WebMCP support in the ChatGPT desktop app's
    built-in browser and in ChatGPT Sites, so an agent visiting a compatible site can
    call the tools that site registers. Sites implement it with
`document.modelContext.registerTool`, and unlike Chrome's origin trial,
    OpenAI requires no token or registration.

## On this page

  -   01  [ What was announced ](#announced)
-   02  [ What WebMCP actually is ](#what-it-is)
-   03  [ The detail that matters: no token ](#no-token)
-   04  [ Annotations decide whether you interrupt the user ](#annotations)
-   05  [ Tools in a page are not tools on a server ](#page-vs-server)
-   06  [ The part about publishing ](#publishing)
-   07  [ What to watch ](#what-to-watch)

## What was announced

 On the evening of 25 August 2026, OpenAI's developer account said it is adding WebMCP support to the ChatGPT desktop app's built-in browser and to ChatGPT Sites, so that visiting a compatible website lets ChatGPT or Codex use that site to complete a task. The suggested demo is to ask Codex to build a WebMCP-enabled app and deploy it to Sites.

 Two things are worth separating, because the announcement and the documentation do not say quite the same thing. The announcement names the desktop browser and Sites. The developer documentation lists the supported surfaces as the ChatGPT desktop app built-in browser, ChatGPT Work, and Codex, and adds two limits people will hit: site tools are unavailable in Enterprise and Edu workspaces, and they require the GPT-5.6 Sol or Terra models. If you test this and see nothing, check the model before you check your code.

## What WebMCP actually is

 WebMCP lets a web page hand an AI agent a set of callable functions instead of making it guess at your interface. The page registers tools; an agent driving the browser discovers them and calls them directly. It is the same idea as an MCP server, except the tools are implemented in client-side JavaScript and live only as long as the agent is on the page.

 The API is `document.modelContext`, and registering a tool looks like this:

```
`if (typeof document.modelContext?.registerTool === "function") {
  await document.modelContext.registerTool({
    name: "get_page_title",
    description: "Read the title of the current page.",
    inputSchema: { type: "object", properties: {}, additionalProperties: false },
    annotations: { readOnlyHint: true },
    execute: async () => ({ title: document.title }),
  });
}`
```

 Five parts: a name, a description an agent reads to decide whether to call it, a JSON Schema for the inputs, annotations describing what the tool does to the world, and an async function that does the work. The feature-detect matters, because in a browser without the API the whole thing should be a no-op rather than an error.

## The detail that matters: no token

 The headline is not that another client can call tools. It is that OpenAI's documentation says no origin trial token or registration is required.

 Until now, shipping WebMCP to real visitors has meant Chrome's origin trial: you request a token for your origin, embed it in a header or a meta tag, and it expires on a date Google picks. That is a perfectly reasonable way to run an experiment, and it is also a leash. It caps who can adopt the API, it does not survive a customer putting your page on their own domain, and every origin has a countdown attached.

 A second independent implementation, with no gatekeeping, changes what the API is. One vendor shipping something behind a trial is an experiment. Two vendors shipping the same interface, one of them without a token, is a thing you can build against. That is the actual news, and it is why the shape of the announcement matters more than the demo in it.

## Annotations decide whether you interrupt the user

 Here is the part that will bite people, and it bit us. We have had WebMCP tools on this site since June, registered against Chrome's origin trial. Reading OpenAI's documentation, the tools were missing `annotations`, so we added them the same day.

 It matters because of how the client treats a call. Each invocation gets a safety review before it runs, and the browser asks the user to confirm anything consequential: sending a message, making a purchase, deleting data, changing permissions. Annotations are how a tool declares which kind it is. Mark a genuine read with `readOnlyHint: true` and it can run without stopping to ask. Leave it undeclared and a harmless lookup gets the same treatment as a delete, which means your agent integration works but nags.

 The vocabulary is the same one MCP servers use, and the discipline is the same: describe the side effects honestly, keep inputs narrow, and let your existing authentication and validation do their job rather than building a tool that steps around them. It is worth reading tool definitions and their results as untrusted content, because that is exactly how the client treats them. A tool named `get_weather` does not prove anything about what the function does.

## Tools in a page are not tools on a server

 If you already run a remote MCP server, WebMCP is not a replacement for it, and the two want different tools.

 A remote server is added once and follows the user everywhere. It is the right home for the durable verbs of your product, and it can hold credentials, rate limits, and audit trails on your infrastructure. A page's tools are ambient and temporary: they exist while the agent is on that page, they can see what is on screen, and they vanish on navigation. The right tools for a page are the things that only make sense there. Filling in the form in front of you. Acting on the record being displayed. Publishing the thing you just generated.

 Ours are on both. The remote server at `api.stacktr.ee/mcp` exposes the product. [The tools on this site](/webmcp) exist so a browsing agent can publish a page without leaving the page it is on, and the same catalog drives the command palette for humans, so the two cannot drift apart.

## The part about publishing

 Full disclosure: we build Stacktree, so treat this as us describing where we sit rather than neutral advice.

 The demo in the announcement is "build a WebMCP app and deploy it to Sites", and it is a good demo. It is also worth noticing what deploying to a vendor's own surface does and does not give you. It renders for the people who can reach that surface. It is a different question from whether the page has an address you can send to a client, whether the link keeps working when you revise the page, and who is allowed to open it.

 That gap is the one we care about. An agent that can build a page should be able to give it a real URL, private by default, that a person outside the tool can open with no account. That is what [publishing over MCP](/mcp-publish-html) does, and what the WebMCP tool on this site does from inside the browser. The interesting version of today's news is not that agents can drive apps. It is that the pages you hand to other people can start carrying their own verbs: ask for the current version, leave a comment, export it. A page on a link can do that anywhere it lands.

## What to watch

 This is hours old at the time of writing, so hold it loosely. Three things would change the picture:

  - Whether the model gate loosens. Site tools currently require GPT-5.6 Sol or Terra and are off in Enterprise and Edu workspaces. That is a large slice of exactly the audience that builds internal tools.
 - Whether it escapes the built-in browser. Support in the desktop app's own browser is not the same as support wherever the user browses. Chrome's extension route and OpenAI's in-app browser reaching parity would matter more than the initial launch.
 - How the injection surface is handled. A page that can offer tools to an agent is a page that can try to steer one. The client treating tool definitions as untrusted is the right instinct; the interesting question is what happens the first time a site abuses it.
  The short version: WebMCP now has two implementations and one of them needs no permission slip. If you have been waiting to see whether this API was real before spending an afternoon on it, that wait is over.

     Fix it now

You've read why the public link is a problem. Paste the artifact here and get a
        private one, no account, and a passcode if you want it.

Paste HTMLDrop a fileno account · 24 h linkHTML to publishAdd a passwordPublish private link   Agent built the page. Give it an address.

 Publishing to a vendor's surface renders it for that surface. A private, unguessable link opens anywhere, with no account, and keeps showing the current version after you revise it.

  [ Publish a page free →
](https://app.stacktr.ee/?from=blog_cta_chatgpt_webmcp&join=1) Free to try: 3 pages, each live for 7 days. Own domain from $19/mo.
FAQ

## Frequent questions

     Does ChatGPT support WebMCP? +  Yes, as of 25 August 2026. OpenAI announced WebMCP support for the ChatGPT desktop app built-in browser and ChatGPT Sites. The developer documentation lists the supported surfaces as the desktop app browser, ChatGPT Work, and Codex. Site tools are unavailable in Enterprise and Edu workspaces, and require the GPT-5.6 Sol or Terra models.   Do I need an origin trial token for WebMCP in ChatGPT? +  No. OpenAI’s documentation states that no origin trial token or registration is required: a site registers tools directly. This is the significant difference from Chrome, where WebMCP has run behind an origin trial token that each origin has to request and embed, with an expiry date attached.   What is document.modelContext? +  It is the browser API behind WebMCP. A page calls document.modelContext.registerTool with a name, a description, a JSON Schema for its inputs, annotations describing its side effects, and an async execute function. An agent driving the browser can then discover and call that function. In effect the page acts as an MCP server whose tools run in client-side JavaScript rather than on a backend.   What are WebMCP annotations and why do they matter? +  Annotations are hints such as readOnlyHint and destructiveHint that tell the client what a tool does. They matter because ChatGPT runs a safety review before each invocation and asks the user to confirm consequential actions such as sending messages, making purchases, or deleting data. A tool that does not declare itself gets treated cautiously, so an unannotated read is likely to interrupt the user for no reason.   Is WebMCP the same as an MCP server? +  They solve the same problem from opposite ends. A remote MCP server runs on your infrastructure, is added once, and works wherever the user is. WebMCP tools live in the page, appear only while the agent is on that page, and disappear when it navigates away. A site can offer both, and the tools usually differ: a server exposes your product, a page exposes what you can do on that page.   Does WebMCP work in Chrome as well? +  Chrome has had a WebMCP implementation behind an origin trial, which is how most sites shipping it today reach real visitors. The trial is time-limited and per origin. With OpenAI implementing the same API without a token, WebMCP now has a second independent client, which is the point at which a browser API stops being one vendor’s experiment.
Keep reading

## Related guides

   -  [ WebMCP on this site The tools we register, including publishing a page from the browser with no sign-in. ](/webmcp)
-  [ WebMCP in production How the dashboard exposes its actions as WebMCP tools behind one palette. ](/blog/dashboard-speaks-webmcp)
-  [ An agent publishes from the browser What it looks like when a browsing agent ships a live page without an account. ](/blog/agent-publishes-from-the-browser)
-  [ Publish HTML over MCP The remote-server side: one publish verb that works from any MCP client. ](/mcp-publish-html)
-  [ What is ChatGPT Sites The surface in the announcement, and what it does with the pages you make. ](/blog/what-is-chatgpt-sites)
-  [ Developer docs REST, MCP, and the agent-facing surfaces in one place. ](/developers)

References

## Sources and further reading

   -  [ ChatGPT docs, WebMCP ↗ OpenAI's reference for site tools: the document.modelContext.registerTool shape, the supported surfaces, the model and workspace limits, and the statement that no origin trial token or registration is required. ](https://learn.chatgpt.com/docs/webmcp)
-  [ @OpenAIDevs announcement on X ↗ The 25 August 2026 post announcing WebMCP support in the ChatGPT desktop app browser and ChatGPT Sites. ](https://x.com/OpenAIDevs/status/2092344959248761263)
-  [ Model Context Protocol ↗ The open protocol WebMCP mirrors in the browser, and the one behind remote MCP servers. ](https://modelcontextprotocol.io)
-  [ Chrome origin trials ↗ How the token-gated route works, for contrast with OpenAI requiring no registration. ](https://developer.chrome.com/docs/web-platform/origin-trials)

##  Tools in the page are ambient. A link is permanent.

 Stacktree turns HTML into a private, unguessable URL anyone can open without an account, and revising the page keeps the link you already sent. Free tier, no card.

 [ Sign up free → ](https://app.stacktr.ee/?join=1&from=cta_blog_chatgpt_webmcp)   install npx stacktree-install
Copy
       Private hosting for the HTML your agents make.

[](https://betalist.com/startups/stacktree?utm_campaign=badge-stacktree&utm_medium=badge&utm_source=badge-featured)[Featured on](https://devhunt.org/tool/stacktree)[](https://buildlist.io)[Get started free](https://app.stacktr.ee/?join=1)

## Product

- [Templates](/templates)
- [Example deliverables](/examples)
- [Custom domains](/custom-domains)
- [Client feedback](/client-feedback-loop)
- [One-time links](/one-time-view-links)
- [See how pages get read](/page-engagement)
- [Made with Stacktree](/made-with)
- [Security](/security)
- [Watch the demo](/demo)

## Agents

- [All integrations](/agents)
- [Claude Code](/claude-code)
- [OpenAI Codex](/codex)
- [Cursor](/cursor)
- [Claude.ai connector](/claude-ai-connector)
- [MCP server](/mcp-publish-html)
- [Deploy from Claude Code](/deploy-html-from-claude-code)
- [Skills](/skills)
- [Slack app](/slack)
- [n8n node](/n8n)
- [Agent payments (x402)](/x402)

## Alternatives

- [All comparisons](/alternatives)
- [Head-to-head comparisons](/compare)
- [Tiiny Host](/tiiny-host-alternative)
- [GitHub Pages (private)](/github-pages-private-alternative)
- [Vercel](/vercel-alternative-for-agents)
- [ngrok](/ngrok-alternative-for-html)
- [Display.dev](/display-dev-alternative)
- [Static.app](/static-app-alternative)
- [OpenAI Codex Sites](/openai-codex-sites-alternative)
- [here.now](/here-now-alternative)
- [Shippage](/shippage-ai-alternative)
- [Best private hosting](/best-private-html-hosting)

## Use cases

- [All use cases](/use-cases)
- [Share with clients](/share-with-clients)
- [Send a file to a client](/share-html-file-with-client)
- [Share Claude artifacts](/share-claude-artifacts)
- [Share Jupyter notebooks](/share-jupyter-notebook-html)
- [Host Storybook privately](/host-storybook-privately)
- [Architecture diagrams](/share-architecture-diagrams)
- [AI-generated reports](/host-ai-reports)
- [Internal HTML tools](/internal-tool-hosting)
- [Private HTML hosting](/private-html-hosting)
- [Vibe-coded page hosting](/vibe-coding-hosting)
- [Leave a website builder](/website-builder-migration)

## Learn

- [Blog](/blog)
- [Glossary](/glossary)
- [FAQ](/faq)
- [Agent-loop hosting](/agent-loop-hosting)
- [Why agents need a publish primitive](/blog/why-agents-need-a-publish-primitive)
- [MCP servers explained](/blog/mcp-servers-explained-for-developers)
- [What changed in the 2026-07 MCP spec](/blog/mcp-2026-spec-changes)
- [Sites in Codex explained](/blog/sites-in-codex-explained)
- [Private-by-default hosting](/blog/private-by-default-html-hosting)
- [An agent paid us $1 (x402)](/blog/agent-paid-to-provision-itself)
- [When a loop hits a paywall](/blog/loop-engineering-paywall)
- [Pricing](/pricing)
- [Self-host (new)](/self-host)
- [Changelog](/changelog)
- [Docs](https://stacktr.ee/docs)
- [About](/about)
© 2026 Stacktree · stacktr.ee

[Privacy](/privacy)[Terms](/terms)[Security](/security)[Dashboard](https://app.stacktr.ee)[npm](https://www.npmjs.com/package/stacktree-mcp)[Sitemap](/sitemap.xml)[llms.txt](/llms.txt)[API spec](/openapi.json)

---
Full markdown summary of the Stacktree marketing surface: https://stacktr.ee/llms-full.txt
