From 1f65b2cce10b9065ebd7f24f640f5c39693ae4f2 Mon Sep 17 00:00:00 2001 From: Anssi Kostiainen Date: Wed, 21 Jan 2026 17:43:02 +0200 Subject: [PATCH 1/2] Add initial spec draft and set up CI/CD --- .github/dependabot.yml | 12 +++++ .github/workflows/auto-publish.yml | 17 +++++++ .gitignore | 1 + .pr-preview.json | 7 +++ index.bs | 71 ++++++++++++++++++++++++++++++ 5 files changed, 108 insertions(+) create mode 100644 .github/dependabot.yml create mode 100644 .github/workflows/auto-publish.yml create mode 100644 .gitignore create mode 100644 .pr-preview.json create mode 100644 index.bs diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..4cea374 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,12 @@ +# See the documentation at +# https://docs.github.com/en/code-security/reference/supply-chain-security/dependabot-options-reference +version: 2 +updates: + # Update actions used by .github/workflows in this repository. + - package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: "weekly" + groups: + actions-org: # Groups all Github-authored actions into a single PR. + patterns: ["actions/*"] \ No newline at end of file diff --git a/.github/workflows/auto-publish.yml b/.github/workflows/auto-publish.yml new file mode 100644 index 0000000..ace0191 --- /dev/null +++ b/.github/workflows/auto-publish.yml @@ -0,0 +1,17 @@ +name: CI +on: + pull_request: {} + push: + branches: [main] +jobs: + main: + name: Build, Validate and Deploy + runs-on: ubuntu-latest + permissions: + contents: write + steps: + - uses: actions/checkout@v6 + - uses: w3c/spec-prod@v2 + with: + GH_PAGES_BRANCH: gh-pages + BUILD_FAIL_ON: warning \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..64233a9 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +index.html \ No newline at end of file diff --git a/.pr-preview.json b/.pr-preview.json new file mode 100644 index 0000000..e7f0095 --- /dev/null +++ b/.pr-preview.json @@ -0,0 +1,7 @@ +{ + "src_file": "index.bs", + "type": "bikeshed", + "params": { + "force": 1 + } +} \ No newline at end of file diff --git a/index.bs b/index.bs new file mode 100644 index 0000000..5ffd522 --- /dev/null +++ b/index.bs @@ -0,0 +1,71 @@ +
+Title: WebMCP
+Shortname: webmcp
+Level: None
+Status: CG-DRAFT
+Group: webml
+Repository: webmachinelearning/webmcp
+URL: https://webmachinelearning.github.io/webmcp
+Editor:
+Abstract: The WebMCP API enables web applications to provide JavaScript-based tools to AI agents.
+Markup Shorthands: markdown yes, css no
+Complain About: accidental-2119 yes, missing-example-ids yes
+Assume Explicit For: yes
+Default Biblio Status: current
+Boilerplate: omit conformance
+Indent: 2
+Die On: warning
+
+ +

Introduction

+ +WebMCP API is a new JavaScript interface that allows web developers to expose their web application functionality as “tools” - JavaScript functions with natural language descriptions and structured schemas that can be invoked by [=agents=], [=browser's agents=], and [=assistive technologies=]. Web pages that use WebMCP can be thought of as Model Context Protocol [[!MCP]] servers that implement tools in client-side script instead of on the backend. WebMCP enables collaborative workflows where users and agents work together within the same web interface, leveraging existing application logic while maintaining shared context and user control. + +

Terminology

+ + + +An agent is an autonomous assistant that can understand a user’s goals and take actions on the user’s behalf to achieve them. Today, these are typically implemented by large language model (LLM) based [=AI platforms=], interacting with users via text-based chat interfaces. + +A browser’s agent is an [=agent=] provided by or through the browser that could be built directly into the browser or hosted by it, for example, via an extension or plug-in. + +An AI platform is a provider of agentic assistants such as OpenAI’s ChatGPT, Anthropic’s Claude, or Google’s Gemini. + +

Security and privacy considerations

+ + + +

Accessibility considerations

+ +

API

+ + + + +partial interface Navigator { + [SecureContext, SameObject] readonly attribute ModelContextContainer modelContext; +}; + +[Exposed=Window, SecureContext] +interface ModelContextContainer { +}; + + +
+{
+  "mcp": {
+    "href": "https://modelcontextprotocol.io/specification/latest",
+    "title": "Model Context Protocol (MCP) Specification",
+    "publisher": "The Linux Foundation"
+  }
+}
+
\ No newline at end of file From 65044aaa33f368d5ab03ac96fab8e2a8fb1aabc8 Mon Sep 17 00:00:00 2001 From: Anssi Kostiainen Date: Fri, 23 Jan 2026 12:44:55 +0200 Subject: [PATCH 2/2] Add initial editors --- index.bs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/index.bs b/index.bs index 5ffd522..2b780e7 100644 --- a/index.bs +++ b/index.bs @@ -6,7 +6,8 @@ Status: CG-DRAFT Group: webml Repository: webmachinelearning/webmcp URL: https://webmachinelearning.github.io/webmcp -Editor: +Editor: Brandon Walderman, Microsoft https://www.microsoft.com, brwalder@microsoft.com, w3cid 115877 +Editor: Dominic Farolino, Google https://www.google.com, domfarolino@google.com, w3cid 102763 Abstract: The WebMCP API enables web applications to provide JavaScript-based tools to AI agents. Markup Shorthands: markdown yes, css no Complain About: accidental-2119 yes, missing-example-ids yes