Mode 01
From your terminal
An agent outside the browser, like Claude Code or any other MCP client, searches the registry, publishes what's missing, and pins an install. The extension delivers that exact version into the page.
You
Your terminal
Agent
LLM + MCP client
any MCP client
Package
Cafe MCP server
webmcp-cafe-mcp · stdio
Your browser
Extension
background worker
Registry
REST API
/api/packages/*
Registry
Neon Postgres
packages · versions · installs
Target
The site
your logged-in session
Step 1 / 6
You ask for something on a site your agent can't operate
It can load the page, but it has no tools for it. Only markup to guess at, one rename away from breaking.
- You ask for something on a site your agent can't operate. It can load the page, but it has no tools for it. Only markup to guess at, one rename away from breaking.
- The agent checks the registry before improvising.
@robertn702/webmcp-cafe-mcpruns over stdio beside the agent and exposeslookup_package,list_packages,publish_packageandinstall_package. - Which is a thin client over the public REST API.
GET /api/packages/lookup?url=…is the same endpoint the extension calls. Writes carry anAuthorization: BearerAPI key you create in settings. - Newest version, most specific pattern first. Postgres serves each package's latest version, ranked by URL-pattern specificity. Nothing there yet? The agent writes one and calls
publish_package. It gets zod-validated and stored as version 1. - Installing pins you to one exact version.
install_packagewrites aninstallsrow on your webmcp.cafe account and returns a handoff link. Opening that link drives the install bridge into the extension: the body is fetched,apiContentHashis re-verified, and it lands atomically inchrome.storage.local. A new upstream version never arrives on its own — moving the pin is a fresh click. - And the tools appear on the page. The extension registers each pinned tool with
document.modelContext.registerTool(). Your agent now callsreddit_commentinstead of hunting for a textarea.