Clarify caller lifecycle for non-autosubmit declarative tools
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 35/100
- Issue type
- Feature
- Clarity
- Mostly clear
- Activity status
- Quiet
- Tech stack
- javascript
- Domain
- api, backend-api-design
Research direction
Read the related discussions #21, #139, #165, and #196, then trace how declarative form population and submission are represented to browser-to-agent callers. The issue does not identify source files or tests, so first locate the tool invocation and response lifecycle entry points. Done means callers can identify the populated, awaiting-submission state while the final tool result still reflects submission or cancellation.
Written by the indexing model from the issue text.
Description
I may be missing part of the intended browser-to-agent integration here.
When a declarative form does not have toolautosubmit, Chrome populates its fields and leaves the invocation active until the form is later submitted or canceled. That makes sense for a browser-native, human-in-the-loop flow.
Through a conventional MCP client, however, the tool call remains pending with no indication that field population succeeded or that submission is now awaited. From the caller’s perspective, this is indistinguishable from a tool that is stuck or whose promise never resolves.
Reproduction
I reproduced this against Stripe’s public test checkout using only published tooling:
- Chromium
151.0.7922.169 [email protected]@modelcontextprotocol/[email protected]- Stripe test checkout: https://buy.stripe.com/test_fZuaEW5UndC54Sy5gN6J200
Chromium was launched with:
--enable-features=WebMCP,WebMCPTesting,DevToolsWebMCPSupport
--remote-debugging-port=9222
Chrome DevTools MCP was attached with:
--browserUrl http://127.0.0.1:9222
--categoryExperimentalWebmcp
I then used Inspector CLI to:
- Navigate to the checkout.
- Invoke
select_payment_methodwithcard. - Discover the resulting
fill_payment_formtool. - Invoke it with Stripe test card and billing data.
- Bound the raw
tools/callexternally at 15 seconds.
The fill invocation was equivalent to:
gnutimeout 15s ./node_modules/.bin/mcp-inspector \
--cli \
--config inspector.json \
--server chrome \
--format json \
--method tools/call \
--tool-name execute_webmcp_tool \
--tool-args-json "$FILL_ARGS"
The MCP command:
- exited
124because of the external GNU timeout - produced exactly zero bytes on stdout
- did not return an MCP result or timeout error
- received no
WebMCP.toolRespondedevent during the observation window
The form had no toolautosubmit attribute.
Question
Is the intended browser-to-agent contract that external callers keep the tool call open until someone eventually submits or cancels the form?
If so, how should a caller distinguish this expected state from an arbitrary unresolved tool execution?
A terminal Completed result at the field-population boundary does not seem accurate because the form’s action has not completed. Some possible nonterminal approaches might be:
- return a
ToolExecutionhandle immediately and expose the final result separately, as discussed in #196 - surface an explicit lifecycle signal such as
awaiting_submission - require browser-to-agent adapters to translate declarative activation into an elicitation or progress event while preserving the pending final result
I do not have a strong preference among these. The main issue is that the successful transition from “invoked” to “form populated and awaiting submission” is currently invisible to a conventional MCP caller.
Related discussions
- #21 identifies the need for agents to display a waiting state and adjust their timeouts during in-page elicitation.
- #139 discusses the lack of feedback after declarative form population and before submission.
- #165 discusses how user-interaction requests should reach remote and non-browser clients.
- #196 proposes returning an execution object immediately, with progress events and a separately awaited result.
- 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 ·