Allow pages to send messages to agents
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 25/100
- Issue type
- Feature
- Clarity
- Mostly clear
- Activity status
- Active
- Tech stack
- javascript
- Domain
- api, backend-api-design
Research direction
Read the related proposals in #31, #151, and #312, then compare their scope with the task-scoped message channel described here. The issue asks whether existing proposals can cover this interaction and raises protocol and security requirements, but names no files or tests. Done would mean deciding how the proposal fits and specifying the channel behavior and boundaries.
Written by the indexing model from the issue text.
Description
Could we add a standard way for a page to send messages to the visiting agent, without waiting for another tool call?
Example
A concrete example is PostHog's ask_max tool. Currently, sending a question opens the assistant UI on the page, but the assistant's answer isn't sent back to the visiting agent through the tool. The conversation continues in the page UI.
This could be a smoother experience if the visiting agent could talk directly to the site's assistant through WebMCP, receive answers and follow-up questions, and continue the conversation without having to operate the assistant's UI.
@Kulikowski explored a similar interaction in The three homes of the Agentic Web and When agents talk, with a working demo comparing WebMCP tool calls with A2A. We also discussed the missing feedback channel in Bring your own agent, coauthored with @Kulikowski and @andreban.
Strawman
- The visiting agent opts into messages for a specific task.
- The browser gives the page a channel scoped to that task.
- The page can send structured messages through the channel:
{
"taskId": "analysis-123",
"type": "question",
"message": "Should I look at the last 7 or 30 days?"
}
The visiting agent decides whether to respond through the tool, ask the user or ignore the message. Either side can close the channel. Many websites have an in-page assistant whose logic runs on the backend. In this setup, the page relays messages between the visiting agent and the site's assistant.
Displaying messages
If the visiting agent displays a message directly, without processing it through its own LLM, the UI should clearly identify it as an unchanged message from the site's assistant. The user should be able to distinguish a relayed message from the visiting agent's own response.
Security
- Treat messages as untrusted site content, with the same trust level as tool results.
- Receiving a message should not grant new permissions or automatically trigger an action.
- Replies should not expose unrelated private context.
- The browser should enforce origin and task boundaries, rate and size limits, and close the channel when the task ends or the user leaves the page.
Relationship to A2A
A2A's task and messaging concepts could inform this without requiring sites to implement the full protocol.
Is this something the existing proposals could cover? @Kulikowski @andreban, curious how you see this fitting with those experiments.
Prior discussions
- #31: Support agent-to-agent interaction - Exposing a site's agent through a WebMCP tool so the browser agent can delegate tasks to it.
- #151: Reactive state streaming via resource subscriptions - Letting pages notify subscribed agents when state changes, without repeated polling.
- #312: Keeping the agent in sync with the page's context - Giving agents updated page context, including changes caused by users or events outside tool calls.
- Dominant language
- Bikeshed
- Stars
- 4.7k
- Forks
- 328
- Avg merge
- 1d 21h
- Merged PRs (30d)
- 15
Getting set up
This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from webmachinelearning/webmcp
-
Say how an agent should weigh annotations that the page wrote about itselfPossibly taken A pull request linked to this issue is open or already merged. Open
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
webmachinelearning/webmcp#353 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 67/100
webmachinelearning/webmcp#343 · 1 reaction ·
Maintainers usually reply within 1 day
-
Agenda+ i18n-tracker
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
webmachinelearning/webmcp#273 · 3 comments ·
Maintainers usually reply within 1 day
-
a11y-tracker Agenda+
Difficulty 2/5 1-3 hours Newbie friendliness 67/100
webmachinelearning/webmcp#272 · 4 comments · 2 reactions ·
Maintainers usually reply within 1 day
-
enhancement
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
webmachinelearning/webmcp#234 · 5 comments ·
Maintainers usually reply within 1 day
All issues in webmachinelearning/webmcp
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
ROCm/rocm-libraries#14027 ·
Maintainers usually reply within 2 days
-
Difficulty 2/5 1-3 hours Newbie friendliness 85/100
Maintainers usually reply within 1 day
-
Difficulty 1/5 Under an hour Newbie friendliness 91/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 66/100
GNS3/gns3-server#3017 · 1 comment ·
Maintainers usually reply within 1 day
-
FFMPEG_BIN/FFPROBE_BIN are always overridden, so a working system ffmpeg cannot be usedPossibly taken @Bilker1422 claimed this today. Open
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
Stremio/stremio-service#116 · 1 comment ·