modelcontextprotocol / modelcontextprotocol/servers

Decompose PR #4452 (v2 TypeScript SDK migration) into scoped issues with a tracking issue

Open
#4,475 0 comments 0 reactions 1 assignee View on GitHub

@cliffhall is already working on this.

Since Jul 5, 2026.

v2
Dominant language
TypeScript
Stars
90.5k
Forks
11.7k
Avg merge
2d 2h
Merged PRs (30d)
5

Description

Goal

Decompose PR #4452 (feat: MCP v2 (draft) — migrates the TypeScript servers to the v2 MCP TypeScript SDK; 52 files, +295/−802, explicitly do-not-merge) into scoped, individually-testable issues on the V2 board, under a single tracking issue — then re-implement each one deliberately as its own PR, using #4452's diff as the reference implementation.

This follows the pattern we used successfully on the inspector for a similarly-oversized PR: see modelcontextprotocol/inspector#1579 ("decomposing it into scoped issues and re-implementing each one deliberately, using the PR's diff as the reference implementation"). #4452 stays open as the reference while the work proceeds, and is ultimately closed in favor of the rewrite — none of its commits merge directly.

Branch discipline (differs from normal work)

  • All of this work happens on the v2/main branch — every sub-issue must state explicitly that its PR targets v2/main, not main.
  • ⚠️ Because v2/main is not the default branch, Closes #N in those PR bodies is only a cross-reference — it will not auto-close the issue on merge (the same caveat inspector documents for its v2/main). On merge: manually close the issue and move its card to Done. Keep the Closes #N line anyway so issues close if/when v2/main merges to main.
  • Prerequisite: push the v2/main branch to the repo (it exists locally) and confirm CI runs against it (typescript.yml/python.yml trigger on all pushes, so it will).

What the decomposition should produce

  1. One tracking issue (modeled on inspector#1579): background, link to #4452 as reference (pin the head SHA so the reference is stable), the sub-issue list grouped into waves — independent issues first so they can be worked in parallel, dependent ones after.
  2. Scoped sub-issues, each with: a clearly-defined scope of what it changes, pointers to the relevant files/symbols in #4452's diff, its own test expectations, the v2 label, a card on board 43, and the targets-v2/main note.
Starting sketch of the axes (to be refined during decomposition)

The PR's own file distribution suggests the grouping:

Area Files in #4452 Notes
src/everything 41 (+106/−578) The bulk — likely splits further (SDK server/registration API migration, transports, tools, resources/prompts, tests)
src/filesystem 5 (+51/−54) Probably one issue
src/memory 3 (+49/−50) Probably one issue
src/sequentialthinking 2 (+8/−8) Small — maybe folds into a shared-mechanics issue
Root package-lock.json / SDK version 1 SDK dependency bump — likely the wave-1 foundation issue everything else builds on
// @mcp-codemod-error comments across diff The PR's own roadmap flags these for review — each is a decision point the rewrite must resolve deliberately

Also fold in #4452's roadmap realities: the SDK is moving (alpha → beta → stable), so sub-issues should pin which SDK version they target, and the tracking issue should note the beta/stable re-sync points.

Tasks

  • Push v2/main and verify CI runs there
  • Study #4452's full diff; refine the axes above into the final sub-issue list (grouped into waves by dependency)
  • Create the tracking issue + sub-issues (all: v2 label, board 43, Status set, targets-v2/main note, file/symbol pointers into #4452)
  • Comment on #4452 explaining the plan, thanking the author, and linking the tracking issue — the PR stays open as reference until the rewrite lands, then closes
  • Close this issue once the tracking issue + sub-issues exist (this issue's deliverable is the decomposition, not the migration itself)

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.