What it is
Corsen Context gives an existing website an owner-controlled WebMCP read layer without replacing the human interface. The page registers explicit tools through document.modelContext.registerTool(...); every call executes against a bounded, same-origin MCP endpoint (protocol 2025-11-25) and returns canonical public URLs and clean Markdown. Four read-only core tools are shared by every integration: search_site, get_page_content, list_content and get_sitemap.
Live flagship: https://webmcp.corsen.ai (WordPress). Source: https://github.com/CorsenAI/corsen-context (MIT). Built by Corsen AI, France.
Why WebMCP fits
Browser agents currently parse interfaces built for people, guess which page is authoritative, and cannot tell what a site allows them to do. With Corsen Context the website itself exposes a small, typed, owner-selected capability layer. The capabilities live with the page instead of being reverse-engineered from the DOM, and the site owner decides what is exposed and can revoke it without touching the human pages.
What people and agents can do together
A person states a goal ("compare the editions, tell me what you may buy for me and what I must do myself"). The agent reads the owner's rules, calls the tools and returns grounded answers with sources. Governance is explicit and per product on the flagship store:
- the ten per-stack editions (9 EUR) carry
agentPurchase: allowed: an agent acting for its user may complete the ordinary checkout; - the production licence (29 EUR, slug
corsen-context) carriesagentPurchase: forbiddenwith the owner's reason, so the agent hands that URL back to the human; - the only write-shaped tool,
request_expert_call, is annotated non-read-only and is refused server-side for every agent call (human_only) before anything is stored or emailed.
The person keeps the decisions; the agent does the reading.
How WebMCP is implemented
- A language-neutral
tools.manifest.jsondeclares tool names, JSON schemas and WebMCP annotations (readOnlyHint,untrustedContentHint). - The generated browser bridge registers each tool with
document.modelContext.registerTool(...)and forwardsexecute()to the same-origin MCP JSON-RPC endpoint; the browser never reimplements a tool and sends no cookies, credentials or API key. - A TypeScript core (npm
@corsenai/corsen-context2.0.1 with Next.js and Astro adapters) and an independent PHP implementation (WordPress plugin 1.5.16 on WordPress.org) are checked against the manifest by parity tests. - Eleven public deployments run the same four-tool core: the WordPress flagship, Express, Next.js, Astro, static HTML, Ghost, Strapi, Directus, Wagtail, MediaWiki and a Netlify template. A public verifier checks the ten stacks against one SHA-256 contract hash (
3786c5d0d401cb9862291c9e3903ff0bd35925326b7dbc9be75f15ded2604ef4). - The WordPress flagship adds five owner-toggled extensions (
get_product,get_sections,get_structured_data,check_agent_access,request_expert_call), a Control Center, an audit log and a per-product agent policy published inllms.txt, on/for-agents/and in everytools/listresponse. - Shopify's own WebMCP, Storefront MCP and UCP surfaces are not reimplemented: a separate read-only verification kit checks them without installing an app.
Integration shapes, stated honestly
WordPress is a native plugin (one checkbox, no code). Next.js and Astro are published adapters with reference apps. Express and static HTML are reference servers. Ghost, Strapi, Directus, Wagtail and MediaWiki are deployable Node bridges over each CMS's public API, not native plugins. Every standalone repository ships install steps, a deployment guide, tests and CI.
How to test it
- Open https://webmcp.corsen.ai in ChatGPT's in-app browser, or in Google Chrome 149+ with
chrome://flags/#enable-webmcp-testingenabled and Chrome restarted. No account is needed. - The page registers nine tools: the four core tools plus the five WordPress extensions (
request_expert_callis non-read-only and human-only). - Ask: "Read this site's rules for agents, list the products with prices, and tell me which editions an agent may buy for me and which one it must hand back to me, with source URLs." Expected: eleven products; the ten 9 EUR editions are
allowed; the 29 EUR production licence isforbiddenwith the owner's reason;request_expert_callis not called. - Optional: open any other live deployment listed on https://webmcp.corsen.ai/integrations/ and press Run live trace; the four core tools answer from that site's own endpoint.
- Optional, repository:
pnpm install --frozen-lockfile && pnpm test && pnpm verify:live(expectsVERIFIED: 10/10).
Existing project and challenge delta
Corsen Context existed before the challenge as an open-source MCP + llms.txt layer (baseline commit 73ecaee, 2026-08-06). Everything WebMCP was built during the submission period, starting at commit 8cedb8c (2026-08-30): the manifest-backed registration bridge, same-origin execution, WordPress owner controls and Control Center, per-product agent policy, the five WordPress extensions, framework handlers, parity and browser tests, the eleven public deployments, the twelve standalone repositories, the live verifier and the demo-store governance.
Tested clients
- ChatGPT in-app browser (shared session: https://chatgpt.com/s/cx_6a99cd8a5ff48191ad323da4ca98a166): discovered the nine flagship tools, listed the eleven products, read the per-product policy and verified
initialize,tools/listand the four-tool live trace on all eleven hosted deployments. That browser host exposed nodocument.modelContext, so the session proves endpoints and bridge definitions rather than native registration. - Native WebMCP registration: verified in Chrome 152 with the WebMCP flags (nine tools registered on the flagship) and in the Codex desktop in-app browser.
What we learned
A governed contract beats a clever scraper: once a site publishes what an agent may read and may do, agents stop guessing, owners stop fearing, and the same four calls work on a WordPress store, a Django CMS and a static folder alike.
About Corsen AI
Corsen Context is built and maintained by Corsen AI, a French company building owner-controlled AI infrastructure for the existing web.
Built With
- astro
- express.js
- mcp
- netlify
- next.js
- node.js
- php
- typescript
- webmcp
- woocommerce
- wordpress
Log in or sign up for Devpost to join the conversation.