cd /news/ai-agents/native-webmcp-on-a-live-mcp-registry · home › topics › ai-agents › article
[ARTICLE · art-160726] src=dev.to ↗ pub= topic=ai-agents verified=true sentiment=· neutral

Native WebMCP on a live MCP registry

AgentShare added native WebMCP support to its live MCP registry at agentshare.dev/registry, registering a single read-only search_listings tool whenever Chrome exposes document.modelContext, while keeping the same directory reachable by non-browser agents through remote MCP at agentshare.dev/mcp. The tool is clamped to 1–5 results, returns schema agentshare.catalog.v1 with a server-generated catalog_as_of timestamp, and is dropped on pagehide when the tab closes; the company's Agent Readiness 0.6.0 extension also detects native tools on the active tab and flags missing untrustedContentHint as a warning.

by read3 min views1 publishedOct 30, 2026

https://agentshare.dev/registry registers one native WebMCP tool, search_listings, when Chrome exposes document.modelContext. The same directory stays available to agents that never open a browser, through remote MCP at https://agentshare.dev/mcp.

WebMCP is the browser API. A page calls document.modelContext.registerTool. An agent in that Chrome tab calls the tool and gets JSON back. The tool lives only while the tab is open. Closing the tab drops it.

Remote MCP Native WebMCP
Where https://agentshare.dev/mcp https://agentshare.dev/registry , tab open
Call style Streamable HTTP. API key or x402 document.modelContext in Chrome
Lifetime The server stays up Ends when the tab closes
Payload The MCP tool list, including paid Objective Trust search_listings only. Public fields. At most 5 matches

Remote MCP is the path for an agent that is not sitting on the page. WebMCP is the path for an agent that already has the registry tab open in Chrome and can call getTools / executeTool.

The script is https://agentshare.dev/static/js/webmcp-registry.js. It returns immediately when document.modelContext.registerTool is missing. It does not install a polyfill.

The tool is read-only. readOnlyHint is true. untrustedContentHint is true because listing descriptions are written by the people who submitted them. The hint tells the agent to treat that text as data.

execute calls GET /api/v1/registry/entries on the same origin. limit is clamped to 1–5. sort is new or popular. Featured rows still sort first. Featured does not change health_status and is not a trust rank.

The page aborts the registration on pagehide.

Every successful call returns schema set to agentshare.catalog.v1.

{
  "schema": "agentshare.catalog.v1",
  "catalog_as_of": "2026-10-30T03:15:00Z",
  "listed": 147,
  "sort": "featured_then_newest",
  "sort_note": "Featured listings sort first. Featured does not change health_status and is not a trust rank.",
  "returned": 1,
  "matches": [
    {
      "id": 0,
      "name": "Example listing",
      "description_excerpt": "Short public description, clipped to 160 characters.",
      "health_status": "responding",
      "reviewed": true,
      "category": "agent_tools",
      "opens": 0,
      "featured": false,
      "mcp_url": "https://example.com/mcp"
    }
  ],
  "next": "For a rank that ignores featured and sponsored, call Objective Trust at https://agentshare.dev/mcp/objective-trust"
}

catalog_as_of and listed in that sample are the shape, not a frozen snapshot. On a live call, catalog_as_of is generated_at from that entries response: the server clock when the catalog was built for the tool call. It is not Date.now() in the browser. listed is total_listed on the same response, the count of publicly listed MCPs at that moment.

reviewed: true means the row status is verified. health_status is the stored probe label, such as responding, needs_sign_in, unreachable, not_remote, or unknown. description_excerpt is clipped. The Objective Trust score is not in this object. The next field points at the paid ranker, which ignores featured and sponsored.

A model that quotes this payload can cite three stable facts: the schema name agentshare.catalog.v1, the page https://agentshare.dev/registry, and a server timestamp for that response.

AgentShare Agent Readiness 0.6.0 reads native document.modelContext on the active tab when you open the popup. It lists each tool name and whether the tool is read-only, consequential, or marked untrusted content.

The score gains 4 points when the tab has at least one native tool. No native API means no point change. A missing untrustedContentHint is a warning, not a penalty. A polyfill that only sets document.modelContext inside the page is invisible to the extension. The reference score for agentshare.dev stays 92.

The scan stays in the browser. Tool names are not uploaded.

── more in #ai-agents 4 stories · sorted by recency
── more on @agentshare 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
→ Live at https://your-agent.zahid.host ✓
Get free account → Pricing
from €0/mo · no card required
LIVE [news/native-webmcp-on-a-l…] indexed:0 read:3min 2026-10-30 · —