webmcp-mcp-bridge
Integrate WebMCP client-side tools with backend MCP servers and UCP endpoints — bridge browser-based agent interactions with server-to-server protocols. Use when connecting front-end WebMCP to existing backend API infrastructure.
Best use case
webmcp-mcp-bridge is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Integrate WebMCP client-side tools with backend MCP servers and UCP endpoints — bridge browser-based agent interactions with server-to-server protocols. Use when connecting front-end WebMCP to existing backend API infrastructure.
Teams using webmcp-mcp-bridge should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/webmcp-mcp-bridge/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How webmcp-mcp-bridge Compares
| Feature / Agent | webmcp-mcp-bridge | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Integrate WebMCP client-side tools with backend MCP servers and UCP endpoints — bridge browser-based agent interactions with server-to-server protocols. Use when connecting front-end WebMCP to existing backend API infrastructure.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# WebMCP + Backend Protocol Bridge
## Before writing code
**Fetch live docs**:
1. Fetch `https://webmachinelearning.github.io/webmcp/` for WebMCP client-side specification
2. Web-search `webmcp backend MCP integration bridge` for bridge architecture patterns
3. Web-search `site:github.com mcp-b backend MCP bridge` for MCP-B polyfill's backend translation features
4. Web-search `webmcp UCP Universal Commerce Protocol integration` for UCP bridge patterns
## Conceptual Architecture
### Why Bridge WebMCP and Backend Protocols
WebMCP and backend protocols serve different scenarios:
| Scenario | Protocol |
|----------|----------|
| User in browser, agent assisting | **WebMCP** (client-side) |
| Headless agent, no UI | **MCP** (server-to-server) |
| Agent-to-agent delegation | **A2A** (agent-to-agent) |
| Structured product discovery | **UCP** (commerce-specific) |
| Payment authorization | **AP2** (cryptographic payments) |
A business often needs both: WebMCP for browser-present users and MCP/UCP for headless scenarios. The bridge ensures both paths use the same backend logic.
### Architecture Patterns
#### Pattern 1: WebMCP Tool → Existing REST API → Same Backend as MCP
```
Browser Agent Headless Agent
| |
WebMCP Tool MCP Tool Call
| |
fetch("/api/products") JSON-RPC to MCP Server
| |
+--------→ Same Backend API ←------+
```
Both WebMCP tools and MCP tools call the same backend services. WebMCP tools use the user's session; MCP tools use API credentials.
#### Pattern 2: WebMCP Tool → UCP Endpoint
```
Browser Agent
|
WebMCP searchProducts tool
|
fetch("https://merchant.com/.well-known/ucp/products")
|
UCP-formatted response → parsed → returned to agent
```
WebMCP tools can call UCP endpoints directly, translating between the browser tool interface and UCP's JSON/REST API.
#### Pattern 3: MCP-B Polyfill Translation
The MCP-B polyfill can translate between WebMCP client-side tools and backend MCP services:
```
Browser Agent ←→ MCP-B Polyfill ←→ Backend MCP Server
```
This enables a single tool definition to work in both browser and server contexts.
### Implementation: WebMCP Tool Calling REST API
```js
navigator.modelContext.registerTool({
name: "searchProducts",
description: "Search the product catalog",
inputSchema: {
type: "object",
properties: {
query: { type: "string" },
maxPrice: { type: "number" }
},
required: ["query"]
},
annotations: { readOnlyHint: true },
async execute(input) {
// Call the same API that the MCP server would call
const params = new URLSearchParams({
q: input.query,
...(input.maxPrice && { max_price: input.maxPrice })
});
const res = await fetch(`/api/products/search?${params}`, {
credentials: "same-origin" // Uses user's session cookies
});
return await res.json();
}
});
```
### Implementation: WebMCP Tool Calling UCP
```js
navigator.modelContext.registerTool({
name: "searchProducts",
description: "Search products via Universal Commerce Protocol",
inputSchema: { /* ... */ },
async execute(input) {
// Call UCP product discovery endpoint
const res = await fetch("/api/ucp/products", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
query: input.query,
filters: input.filters
}),
credentials: "same-origin"
});
return await res.json();
}
});
```
### Shared Tool Definition Strategy
Define tool schemas once, use in both WebMCP and MCP:
```js
// shared/tool-definitions.js
export const searchProductsTool = {
name: "searchProducts",
description: "Search the product catalog",
inputSchema: { /* ... */ }
};
// webmcp/tools.js — browser-side
import { searchProductsTool } from "../shared/tool-definitions.js";
navigator.modelContext.registerTool({
...searchProductsTool,
async execute(input) {
return await fetch(`/api/search?q=${input.query}`).then(r => r.json());
}
});
// mcp/server.js — server-side
import { searchProductsTool } from "../shared/tool-definitions.js";
mcpServer.registerTool({
...searchProductsTool,
handler: async (input) => {
return await productService.search(input.query);
}
});
```
### Best Practices
- Share tool schemas between WebMCP and MCP to ensure consistency
- WebMCP tools use session cookies; MCP tools use API keys — same backend, different auth
- Test both paths (browser and headless) against the same backend
- Consider caching at the API layer to handle both WebMCP and MCP traffic
- Document which tools are available via WebMCP vs MCP vs both
Fetch the latest MCP-B bridge documentation and UCP integration patterns before implementing cross-protocol bridges.Related Skills
webmcp-user-interaction
Implement human-in-the-loop flows with requestUserInteraction() — confirmation dialogs, approval workflows, and user prompts during tool execution. Use when building tools that require user consent before performing actions.
webmcp-tool-schemas
Design JSON Schemas for WebMCP tool inputs and outputs — proper types, constraints, nested objects, and agent-friendly documentation. Use when defining or refining tool schemas for agent consumption.
webmcp-tool-annotations
Implement WebMCP tool annotations — readOnlyHint, destructiveHint, idempotentHint safety hints that inform browser permission prompts and agent behavior. Use when marking tools with appropriate safety metadata.
webmcp-testing
Test WebMCP tools with AI agents — Chrome DevTools integration, agent testing workflows, tool discovery verification, and end-to-end commerce flow testing. Use when validating that tools work correctly with real AI agents.
webmcp-setup
Set up a WebMCP project — enable Chrome flags, install MCP-B polyfill, scaffold tool registration, and configure development environment. Use when starting a new WebMCP-enabled website from scratch.
webmcp-security
Implement WebMCP security best practices — permission model, data minimization, honest descriptions, input validation, fingerprinting prevention, and fraud mitigation. Use when auditing or hardening WebMCP tool implementations.
webmcp-register-tool
Implement the WebMCP Imperative API — register tools via navigator.modelContext.registerTool() with proper schemas, execute callbacks, and lifecycle management. Use when building dynamic tool registration in JavaScript.
webmcp-polyfill
Set up and use the MCP-B polyfill — vanilla JS and React packages that implement navigator.modelContext for browsers without native WebMCP. Use when developing for browsers that don't yet support WebMCP natively.
webmcp-context-provider
Implement the WebMCP provideContext API — bulk tool registration, contextual metadata, page state sharing, and dynamic context updates. Use when providing rich context and multiple tools to agents simultaneously.
webmcp-commerce-tools
Implement commerce-specific WebMCP tools — product search, cart management, checkout, returns, subscriptions, and support. Use when building agentic shopping experiences on e-commerce websites.
webmcp-authentication
Implement WebMCP authentication patterns — browser session inheritance, cookie-based auth, role-gated tool registration, and conditional tool exposure. Use when managing which tools are available based on user authentication state.
a2a-mcp-bridge
Build bridges between A2A and MCP — wrap A2A agents as MCP tools, use MCP tools from A2A agents, and architect hybrid multi-agent systems. Use when integrating A2A agent-to-agent communication with MCP tool access.