WebMCP
OpenAI v0.1.1
Publisher description
From the marketplace listing
WebMCP helps inspect a site's real journeys, propose a small task-completing tool surface, implement approved tools through existing trusted paths, and verify the result end to end.
Language: English · Automatically detected from descriptions.
Publisher keywords
Search terms declared by the publisher.
Matches for “model-context”
Exact text from the indicated source. A mention alone does not establish support for your task.
Publisher keywords · listing
webmcp model-context website browser-agents skills
Files & skills
File archives
Skill instructions
webmcp-site-author2.91 KB
---
name: webmcp-site-author
description: Implement task-completing imperative WebMCP tools using document.modelContext.registerTool.
---
# WebMCP
WebMCP is a proposed browser standard that lets websites expose their functionality directly to AI agents as structured tools.
It exposes declarative and imperative APIs, and the full specification can be found here https://webmachinelearning.github.io/webmcp/
The ChatGPT implementation only supports the imperative inerface
## API structure
```ts
interface Document {
readonly modelContext?: ModelContext; // Page-scoped registry; feature-detect support.
}
interface ModelContext {
registerTool(
tool: {
name: string; // Unique, stable action identifier.
description: string; // What the tool does and when to use it.
inputSchema: object; // JSON Schema describing accepted input.
execute(input: unknown): unknown | Promise<unknown>; // Validate, act, return result.
title?: string; // Human-readable display label.
annotations?: {
// Behavioral hints, not security boundaries.
readOnlyHint?: boolean; // True only when no state changes.
untrustedContentHint?: boolean; // True for external or user-generated output.
};
},
options?: {
signal?: AbortSignal; // Abort to unregister this tool.
},
): void | Promise<void>; // Register one tool for this page.
}
```
## Example call site
```ts
const context =
typeof document === "undefined" ? undefined : document.modelContext;
if (!context?.registerTool) return;
const lifecycle = new AbortController();
try {
void Promise.resolve(
context.registerTool(
{
name: "create_booking",
title: "Create booking",
description:
"Book the selected slot and update the visible reservation.",
inputSchema: {
type: "object",
properties: { slotId: { type: "string" } },
required: ["slotId"],
additionalProperties: false,
},
annotations: { readOnlyHint: false, untrustedContentHint: false },
async execute(input) {
const booking = await bookSlot(validateInput(input));
return { id: booking.id, status: "confirmed" };
},
},
{ signal: lifecycle.signal },
),
).catch(reportError);
} catch (error) {
reportError(error);
}
return () => lifecycle.abort();
```
## Tool-design rules
- Distinguish **read**, **navigate/start**, **stage/configure**, and **complete** in names and descriptions. `create_event` means an event is created; `start_event_creation` only opens or prepares a flow. Never conceal side effects in an ambiguous verb.
- Prefer batched APIs where possible, rather than requiring clients to write loops.
- Return concise JSON-serializable results only after the action and visible state finish updating.
- Register once client-side, clean up with `AbortSignal`, and handle unsupported browsers and registration failures.
Referenced files: 1
Package details
Publisher declarations from the archived package. These are separate from our research and the live service's terms.
- Package license
- Proprietary
- Package author
- OpenAI
- Keywords
- See publisher keywords
Declared capabilities
- Interactive
- Read
- Write
Package observed Oct 3, 2026.
Technical details
- First seen
- Sep 30, 2026 · 22:02 UTC
- Last seen
- Oct 3, 2026 · 06:00 UTC
- Collection status
- Collected
Plugin_671d912bf3d88191a88bc76fe741e84b
Download plugin data (JSON)Before you connect WebMCP
How do I connect it?
Open the publisher's marketplace listing to check current availability and follow its connection instructions. This directory does not install plugins. Check the requested access and any account requirements before connecting.
Check marketplace availability ↗
Does it require paid access?
We have not established the pricing or subscription requirements for this plugin. An absent price does not mean free access.
How can I evaluate it?
Check the declared skills and available files, then try a small task whose result you can verify. Our archived descriptions and instructions establish publisher claims, not tested runtime quality. Review sources and coverage limits.