Skip to content

feat: adopt MCP 2026-07-28 capabilities and audit deprecated Roots Sampling Logging #1012

Description

@Lykhoyda

Summary

The MCP specification revision 2026-07-28 (the first since 2025-11-25) adds several capabilities that map directly onto problems seen while dogfooding rn-dev-agent across Claude Code, Codex and Cursor.
This issue collects them so they can be planned and prioritized; it proposes no implementation yet.

Observed problems this could address

  1. Stale server pinned to a long-lived chat. Every harness launches the MCP server once per chat from the plugin copy on disk and never reloads it.
    On one machine we found a Cursor chat still running rn-dev-agent 0.74.0 a month after release, and the Cursor app host on 1.0.7 while 1.0.8 was installed.
    Nothing tells the user or agent that the running server is out of date.
  2. Startup failure cached by the client (bug: cdp MCP server skipped in fresh sessions after a cached startup failure #1007): a slow startup under host load became a cached "Skipping connection" for 15 minutes.
  3. Long blocking tool calls: managed iOS builds and full QA journeys run for many minutes inside one tool call.
  4. Confirmation and input steps are modeled as custom arguments (for example apply_integration confirmed=true) rather than a protocol-level request for input.
  5. Tool-list token cost: the server exposes about 80 tools on every chat.

Relevant 2026-07-28 changes

Change Why it matters here
Stateless core: no initialize handshake; every request carries protocol version and client capabilities in _meta; servers SHOULD stamp io.modelcontextprotocol/serverInfo in every result Makes swapping the worker behind the existing supervisor between calls protocol-clean (nothing to renegotiate); every result can carry the running version, so staleness is visible (problem 1)
subscriptions/listen with opt-in toolsListChanged After a hot swap or upgrade, the server can tell the client the tool list changed (problem 1)
server/discover RPC (servers MUST implement) Up-front version/capability probe, also a backward-compatibility probe on stdio; removes the handshake a slow start could fail (problem 2)
Tasks moved to an official extension (io.modelcontextprotocol/tasks) with polling via tasks/get and tasks/update Long builds and journeys can return a task handle instead of blocking one call (problem 3)
Multi Round-Trip Requests (resultType: "input_required", inputRequests / inputResponses) Standard way to ask the client for confirmation or input and resume the same request (problem 4)
CacheableResult (ttlMs, cacheScope) on list results; tools SHOULD be returned in deterministic order Client-side caching and better prompt-cache hit rates for the large tool list (problem 5)
OpenTelemetry trace context conventions in _meta (traceparent, tracestate, baggage) End-to-end tracing from an orchestrator's worker into rn-dev-agent calls
Error-code allocation and renumbering; resource-not-found now -32602 Needs a compatibility check in error handling

Deprecations to audit

The revision deprecates Roots, Sampling and Logging (minimum 12-month window), plus HTTP+SSE transport and Dynamic Client Registration.
Check whether rn-dev-agent relies on Roots (for example project-root discovery) or notifications/message logging; the suggested migrations are tool parameters or server configuration instead of Roots, and stderr or OpenTelemetry instead of Logging.

Suggested next step

A source-backed plan covering: current SDK version and what upgrading requires; which of Claude Code, Codex and Cursor already speak 2026-07-28 (gains depend on client adoption; older stdio clients keep working via server/discover); a prioritized list.
A cheap first slice independent of client adoption: a stale-server notice in tool results when the running version is older than the newest installed copy.

References

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions