-
Notifications
You must be signed in to change notification settings - Fork 2
docs: add WebMCP research note #49
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
3 commits
Select commit
Hold shift + click to select a range
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,25 @@ | ||
| # WebMCP Research Note Implementation Plan | ||
|
|
||
| > **For agentic workers:** Execute inline with validation checkpoints. | ||
|
|
||
| **Goal:** Add a sourced WebMCP research note and assess its Cloud Foundry relevance. | ||
|
|
||
| **Architecture:** Describe WebMCP as a browser-local tool exposure layer in which a page declares imperative JavaScript or declarative form tools, the browser mediates agent access, and the web application retains its current UI/session context. | ||
|
|
||
| **Tech Stack:** Markdown, YAML frontmatter, Devbox, Git, GitHub CLI. | ||
|
|
||
| --- | ||
|
|
||
| ### Task 1: Write `research/webmcp.md` | ||
|
|
||
| - [ ] Add valid frontmatter with WebMCP sources, tags `[inter-agent-comms, ecosystem-survey, governance]`, and `cf_areas: [capi, uaa]`. | ||
| - [ ] Explain WebMCP's motivation, browser-local tool model, imperative API, declarative form API, and fallback to ordinary browser automation. | ||
| - [ ] Cover shared browser state/authentication, tool descriptions/schemas, implementation status, and security-minded design. | ||
| - [ ] Assess CF relevance for applications exposing agent actions through existing browser sessions, while distinguishing WebMCP from server-side MCP gateways. | ||
| - [ ] Add questions about browser support, user consent, session identity, tool authorization, CSRF/security boundaries, and CF application guidance. | ||
|
|
||
| ### Task 2: Validate and publish | ||
|
|
||
| - [ ] Run `devbox run validate`, `devbox run test`, and `git diff --check`. | ||
| - [ ] Stage only the note and approved spec/plan, commit `docs: add WebMCP research note`, push `research/webmcp`, and open a checklist-complete PR targeting `main`. | ||
| - [ ] Verify the PR metadata and CI status with `gh pr view`. | ||
26 changes: 26 additions & 0 deletions
26
docs/superpowers/specs/2026-09-17-webmcp-research-note-design.md
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,26 @@ | ||
| # WebMCP Research Note Design | ||
|
|
||
| ## Goal | ||
|
|
||
| Capture a sourced research note on WebMCP as a browser-native way for web applications to | ||
| expose page functionality as agent tools. | ||
|
|
||
| ## Scope | ||
|
|
||
| Cover WebMCP's imperative JavaScript and declarative HTML form APIs, the browser as the | ||
| execution and identity context, the distinction from backend MCP integrations, implementation | ||
| status, and security-minded tool design. Assess Cloud Foundry relevance for applications that | ||
| want agents to act through existing authenticated web sessions without duplicating backend | ||
| integrations. | ||
|
|
||
| ## Structure and evidence | ||
|
|
||
| Create `research/webmcp.md` with the required four sections and frontmatter. Use the WebMCP | ||
| repository, README, explainer, implementation status, and security guidance. Distinguish the | ||
| proposal/experimental status from deployed browser behavior and label CF analysis as proposed | ||
| integration. | ||
|
|
||
| ## Validation | ||
|
|
||
| Run Devbox validation and tests, inspect whitespace/staged files, commit the note and plan on | ||
| `research/webmcp`, push, and open a PR targeting `main` without unrelated artifacts. |
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,87 @@ | ||
| --- | ||
| title: "WebMCP: Browser-Native Tools for Agent Interaction" | ||
| author: Ruben Koster (@rkoster) | ||
| date: 2026-09-17 | ||
| tags: [inter-agent-comms, governance, ecosystem-survey] | ||
| cf_areas: [capi, uaa] | ||
| status: draft | ||
| ratings: | ||
| platform-impact: | ||
| value: 70 | ||
| note: "Web applications could expose agent-friendly actions without every platform team building a separate backend integration." | ||
| maturity: | ||
| value: 42 | ||
| note: "WebMCP is an evolving proposal with implementation-status and browser-support questions still visible in the project." | ||
| novelty: | ||
| value: 84 | ||
| note: "It places the tool boundary inside the browser page, preserving user session context instead of requiring a separate server-side integration." | ||
| actionability: | ||
| value: 65 | ||
| note: "CF application teams can evaluate the pattern, but platform guidance depends on browser support, consent, and web security behavior." | ||
| sources: | ||
| - https://github.com/webmachinelearning/webmcp | ||
| - https://raw.githubusercontent.com/webmachinelearning/webmcp/main/README.md | ||
| - https://github.com/webmachinelearning/webmcp/blob/main/declarative-api-explainer.md | ||
| - https://github.com/webmachinelearning/webmcp/blob/main/implementation-status.md | ||
| - https://developer.chrome.com/docs/ai/webmcp/secure-tools | ||
| --- | ||
|
|
||
| ## Summary | ||
|
|
||
| WebMCP is an evolving browser-oriented proposal for exposing web application functionality as | ||
| tools that AI agents can discover and invoke. Pages can define tools imperatively with | ||
| JavaScript or declaratively through HTML forms, allowing the browser, page, user, and agent to | ||
| share the existing UI and session context. This differs from a backend MCP integration, where | ||
| an agent platform calls a separate service and the developer must reproduce application state | ||
| and authentication there. | ||
|
|
||
| ## Key findings | ||
|
|
||
| - **Tools live in the page context.** WebMCP is intended to expose functionality already | ||
| implemented by a web application, including actions that would otherwise require simulated | ||
| clicks, DOM inspection, or screenshots. | ||
| - **The API has imperative and declarative paths.** JavaScript can register richer tools for | ||
| functionality that is not representable as a form, while standard HTML forms can provide a | ||
| declarative counterpart with structured inputs. | ||
| - **Browser context is the main differentiator.** The page can retain its current UI state, | ||
| user session, and application-specific behavior, reducing the need to replicate those | ||
| concerns in a separate agent-facing backend. | ||
| - **WebMCP complements rather than replaces browser automation.** If a page does not expose a | ||
| suitable tool, an agent or assistive technology can still fall back to ordinary browser | ||
| automation techniques. | ||
| - **The tool surface needs security design.** Exposing a JavaScript function as an agent tool | ||
| does not remove authorization, consent, input validation, CSRF, sensitive-action confirmation, | ||
| or output-data concerns. Web developers remain responsible for designing safe tool behavior. | ||
| - **The project is not the same boundary as server-side MCP.** WebMCP is a client-side/browser | ||
| integration, while MCP servers expose capabilities through backend services. A product may | ||
| use both: server-side tools for durable backend operations and WebMCP for actions requiring | ||
| the active browser context. | ||
| - **Implementation maturity matters.** The repository labels WebMCP as experimental/evolving | ||
| and provides implementation-status material. Browser availability and agent support should | ||
| be checked before treating it as a portable production dependency. | ||
|
|
||
| ## CF relevance | ||
|
|
||
| WebMCP could let a CF-hosted web application expose agent actions without asking the platform | ||
| team to deploy a second MCP backend that reconstructs the application's session and auth | ||
| context. A CF application could continue to own its routes, UAA-backed login, CSRF policy, and | ||
| business authorization while exposing a deliberately narrow browser tool surface. | ||
|
|
||
| This is complementary to a CF AI gateway. A gateway can govern model and server-side MCP | ||
| traffic, while WebMCP keeps user-mediated browser interactions local to the application. The | ||
| platform would need guidance for how browser agents identify themselves, how user consent is | ||
| collected, how tools inherit or constrain session authority, and how WebMCP actions appear in | ||
| application audit logs and Loggregator streams. | ||
|
|
||
| ## Open questions | ||
|
|
||
| - Which browsers and agent clients will support WebMCP, and what fallback should applications | ||
| provide when it is unavailable? | ||
| - How should a WebMCP tool distinguish user authority from agent authority within the same | ||
| browser session? | ||
| - Which actions require explicit user confirmation, and how should applications prevent CSRF or | ||
| confused-deputy behavior? | ||
| - Should CF publish secure WebMCP guidance or libraries for UAA sessions, route protection, and | ||
| audit correlation? | ||
| - How should WebMCP actions be correlated with model requests, agent identities, and platform | ||
| logs without leaking sensitive page state? |
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I believe you were going for observability-governance here as most others do.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I had #48 in mind for this - here we could probably go for identity instead - https://github.com/cloudfoundry/agentic-runtime-notes/blob/main/IDEATION.md?plain=1#L90 - unless you prefer to "invent" here specifically