Skip to content

chore(server): track ext-apps migration to MCP v2 server SDK #2371

Description

@bokelley

Context

AdCP uses @modelcontextprotocol/server@2.0.0-beta.4 for its modern per-request MCP adapter, while the canonical @modelcontextprotocol/ext-apps server helpers still target @modelcontextprotocol/sdk v1.29.

Upstream tracking issue: modelcontextprotocol/ext-apps#702

This matters because registerAppTool and registerAppResource provide the canonical MCP Apps types and compatibility behavior, including:

  • normalization between _meta.ui.resourceUri and the legacy _meta["ui/resourceUri"] key
  • the text/html;profile=mcp-app resource MIME default
  • typed tool visibility and resource _meta.ui fields

Relationship to #2368

This does not block shipping the typed custom-tool _meta seam or the follow-on AdCP resource-registration surface. The MCP v2 server already exposes public registerTool and registerResource APIs; AdCP can register resources on each reconstructed per-request server.

The dependency becomes relevant when we want to replace local compatibility types and normalization with the canonical ext-apps implementation.

Follow-up when upstream #702 lands

  • Evaluate the released ext-apps v2 server helpers against AdCPs modern adapter.
  • Adopt or re-export canonical MCP Apps tool/resource metadata types where compatible.
  • Replace redundant local normalization and MIME defaults with canonical helpers.
  • Verify nested and legacy resource-URI metadata compatibility.
  • Verify app-only tool visibility and resource _meta.ui behavior through tools/list, resources/list, and resources/read.
  • Remove any temporary compatibility code or dependencies that are no longer needed.

Refs #2368.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions