← Plugin catalog
Developer Tools

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

Plugin package5 files · 2.62 KBBrowse files →
Skill instructions
webmcp-site-author2.91 KB

View saved version →

---
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.