Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

[Bug]: preview_evaluate forbids WebMCP write tools even when the user explicitly asks for the change

オープン 初心者向け
#26,471 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

@shivamhwp がすでに取り組んでいます。

2026年10月28日 から。

  • #26570 @shivamhwp による — オープン

評価

難易度
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 の本文から書いたものです。

説明

bug needs-triage
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
  1. Open a page that exposes WebMCP tools via navigator.modelContext in a preview tab owned by the agent (e.g. a notes app that registers list_notes, create_note, delete_note).
  2. Ask the agent to list the page's tools: it calls navigator.modelContext.getTools() through preview_evaluate and lists them correctly.
  3. 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

環境構築

Codespaces で開く

このプロジェクトの開発コンテナを、あなたの GitHub アカウントでブラウザ上に起動します。

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

pingdotgg/t3code のほかの issue

pingdotgg/t3code の issue をすべて見る

似ている issue

TypeScript の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。