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

Fields

No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions