Skip to content

Primitive lists: raw-request controls — cacheMode (bypass/refresh) + single-page fetch #1721

Description

@cliffhall

Split from #1628 (SDK V2 + New Spec — card 5). #1628 covers the Network tab display/validation (modern headers, new error codes, cancellation-as-abort, mirroring). This issue tracks the optional raw-request controls #1628 deferred, because they are cross-cutting work well beyond the Network tab.

Background

Raw-request passthrough is the only way to exercise page-by-page pagination and cache-bypass behaviors worth surfacing as Inspector features ("fetch single page", "bypass cache", "refresh"). Ref: specification/v2_new_spec_impact.md §9.2.

Current state (from exploration)

  • cursor / nextCursor: fully plumbed (client methods, paged + managed state stores/hooks, fake queues). The live web app uses the managed (auto-aggregate-all-pages) hooks, so there is no single-page control in the UI today.
  • cacheMode ('use' | 'bypass' | 'refresh'): not plumbed at all. Supported by the SDK's RequestOptions.cacheMode (@modelcontextprotocol/client 2.0.0-beta.4) but InspectorClient never sets it. The single choke point to thread it is getRequestOptions() (core/mcp/inspectorClient.ts:650).
  • Generic raw request(method, params, ResultSchema) passthrough: not exposed publicly; nearest internal analog is the private requestWithInputRequired (inspectorClient.ts:1811).

Scope

  • Thread cacheMode through getRequestOptions() → the list/read client methods → ManagedListState/managed hooks.
  • Add per-tab controls to Tools/Resources/Prompts: Refresh (bypass cache) and optionally fetch single page (surface nextCursor, wire the existing paged hooks into the screens).
  • Consider a raw-request panel for arbitrary method+params+ResultSchema (coordinate with the SDK-v2 raw send path from SDK v2 migration mechanics (behavior-neutral, versionNegotiation: 'legacy') #1624).

Acceptance

  • A user can force a cache-bypassing refresh of tools/resources/prompts on modern servers and see the round-trip in the Network tab.
  • npm run ci green.

Metadata

Metadata

Assignees

Labels

v2Issues and PRs for v2

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions