MRTR url-mode: standardize the "still waiting" response (state-only InputRequiredResult) + retry/cancel guidance

オープン
#2,920 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
5/5
見積もり時間
1週間以上
初心者へのやさしさ
35/100
issue の種類
機能追加
明瞭さ
おおむね明確
活発さ
静か
領域
documentation

調査の方向性

まず MRTR url-mode の説明と Server Requirement #6 を確認し、その後 notifications/elicitation/complete に関する既存のガイダンスを見直してください。完了条件は、仕様で state-only InputRequiredResult を「引き続き待機中」であることを示すレスポンスとして明確に定義し、上限付きの retry または backoff に関するガイダンスを示し、out-of-band フローを中止するためのキャンセル経路を規定することです。

索引モデルが issue の本文から書いたものです。

説明

Summary

For url-mode elicitation under MRTR, the spec notes that a round-2 retry "may need to block until the request is fulfilled," but it does not define a bounded, non-blocking idiom for "not done yet," nor a timeout/cancel verb.

Problem

A server that brokers an out-of-band flow (OAuth consent, credential entry, payment, external approval) often should not hold the round-2 request open until the user finishes — that ties up a connection for an unbounded time and doesn't compose with stateless/HTTP deployments. The server needs a sanctioned way to answer a premature retry with "still waiting, try again."

Server Requirement #6 already permits returning an InputRequiredResult with the same requestState and no new inputRequests, which is the natural "still waiting" signal. But it is not named or recommended as the idiom, so:

  • implementers don't know it's the blessed pattern (vs. blocking, vs. an error),
  • there's no guidance on client retry/backoff bounds, so clients either hammer or give up,
  • there's no standard cancel verb for the user abandoning the out-of-band flow.

Request

  1. Explicitly bless the state-only InputRequiredResult (same requestState, empty/absent inputRequests) as the canonical "still waiting" response for an in-progress out-of-band interaction.
  2. Add client guidance on retry cadence / backoff bounds for that response (and clarify whether notifications/elicitation/complete is the preferred wake signal vs. polling).
  3. Specify a cancel/abandon path (verb or inputResponses action) for when the user dismisses the out-of-band flow, so the server can release requestState deterministically rather than relying on TTL.

Context

Implemented the host side of MRTR url-mode and hit exactly this ambiguity: the state-only-refresh response works, but whether it's the intended idiom, how aggressively to retry, and how to signal cancellation are all left to implementer guesswork.

主要言語
TypeScript
スター
9.3k
フォーク
1.8k
平均マージ
1日 12時間
マージ済み PR(30日)
25

コントリビューションガイド

コントリビューションガイドを開く

はじめの一歩

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

modelcontextprotocol/modelcontextprotocol のほかの issue

modelcontextprotocol/modelcontextprotocol の issue をすべて見る

似ている issue

TypeScript の issue をもっと見る

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

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