[Bug]: preview_evaluate forbids WebMCP write tools even when the user explicitly asks for the change
メンテナーはふだん 1 日以内に返信
評価
- 難易度
- 2/5
- 見積もり時間
- 1〜3時間
- 初心者へのやさしさ
- 74/100
- issue の種類
- バグ
- 明瞭さ
- 明確に書かれている
- 活発さ
- 活発
- 技術スタック
- typescript
調査の方向性
まず preview_evaluate の説明文字列を apps/server/src/mcp/toolkits/preview/tools.ts で読み、レポートで示されたファイルについて、兄弟の preview_act の説明と比較してください。次に eval ケース webmcp-charts-saved-to-site-not-inline を evals/mcp-tool-use/cases/visual-preview.ndjson で読み、既存の文言がどの振る舞いを守っているかを確認してください。完了とは、説明が引き続きページツールを使って結果を表示することを禁じつつ、ユーザーが明示的に求めた書き込みを許可しており、関連する eval ケースが引き続き通ることを意味します。
索引モデルが issue の本文から書いたものです。
説明
Before submitting
- I searched existing issues and did not find a duplicate.
- I included enough detail to reproduce or investigate the problem.
Area
apps/server
Steps to reproduce
- Open a page that exposes WebMCP tools via
navigator.modelContextin a preview tab owned by the agent (e.g. a notes app that registerslist_notes,create_note,delete_note). - Ask the agent to list the page's tools: it calls
navigator.modelContext.getTools()throughpreview_evaluateand lists them correctly. - Explicitly ask the agent to use one of the write tools (e.g. "create a note titled Groceries").
Expected behavior
When the user explicitly asks for a change, the agent can call the page's write tools through preview_evaluate, the same way it can already drive the same change by clicking through the page UI with preview_act. Pages can already mark their read-only tools with annotations.readOnlyHint, so the agent can tell read tools from write tools.
Actual behavior
The agent refuses. The preview_evaluate description says:
Page tools reached here: read data only, never create, save, or display.
The agent takes this as an absolute rule, so the write tools are unusable even when the user asks for the change directly. The only remaining path is to reproduce the same change by clicking through the UI with preview_act, which is slower and more fragile than calling the tool the page exposes for that purpose.
The sentence was added in #24850 (apps/server/src/mcp/toolkits/preview/[tools.ts](https://github.com/tmp/apps/server/src/mcp/toolkits/preview/tools.ts)). The related eval case webmcp-charts-saved-to-site-not-inline (evals/mcp-tool-use/cases/[visual-preview.ndjson](https://github.com/tmp/evals/mcp-tool-use/cases/visual-preview.ndjson)) covers a narrower failure: the agent saved charts to the site's dashboard when the user wanted inline visuals in T3 Code. "display" covers that case. "create, save" also blocks writes the user explicitly requested.
A possible narrower wording: page tools are for reading unless the user asked for that change on the site; never use them to show results.
Impact
Major degradation or frequent failure
Version or commit
0.1.4-nightly.20261028.3822
Environment
macOS 27.0.1, T3 Code desktop (Nightly), Claude provider (claude-opus-5-5).
Logs or stack traces
Screenshots, recordings, or supporting files
No response
Workaround
Ask the agent to make the change through the page UI with preview_act (click and type, confirming before save).
- 主要言語
- TypeScript
- スター
- 24.8k
- フォーク
- 6.4k
- 平均マージ
- 2時間 54分
- マージ済み PR(30日)
- 350
環境構築
このプロジェクトの開発コンテナを、あなたの GitHub アカウントでブラウザ上に起動します。
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートあり
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
pingdotgg/t3code のほかの issue
-
[Bug]: Pen taps on sidebar rows start a drag and lose their click対応中かも @makhnatkin が今日担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 62/100
メンテナーはふだん 1 日以内に返信
-
[Bug]: Guest messages near the 4,000-char limit fail with 400 "The request was not valid." because multipart turns \n into \r\n対応中かも @juliusmarminge が今日担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 74/100
pingdotgg/t3code#26523 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 74/100
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 60/100
pingdotgg/t3code#26340 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
pingdotgg/t3code の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
gnosis/gnosis_vpn#661 ·
メンテナーはふだん 1 日以内に返信
-
content-freshness: staleOwnedContent doc comments still say 'complete receipt' (follow-up to #7912)オープンtriage:bug-verified
難易度 1/5 1時間未満 初心者へのやさしさ 92/100
メンテナーはふだん 1 日以内に返信
-
fix: reject sourceStorage/packagedStorage bucket that differs from the stack default (fail loud)オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
Eyevinn/open-videocore#1300 ·
メンテナーはふだん 1 日以内に返信
-
nextjs-tracking
難易度 2/5 1〜3時間 初心者へのやさしさ 67/100
cloudflare/vinext#4390 ·
メンテナーはふだん 1 日以内に返信
-
kind/bug
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
kubernetes-sigs/headlamp#8175 ·
メンテナーはふだん 2 日以内に返信