Commit Graph

82 Commits

Author SHA1 Message Date
Max Isbey 8900f2527c Add mcp-codemod, an automated v1 to v2 migration tool
A new `mcp-codemod` workspace package (`uvx mcp-codemod v1-to-v2 ./src`)
that rewrites every v1 -> v2 change whose meaning is unambiguous from the
file alone, and inserts a `# mcp-codemod:` comment above every site it
recognized but would not guess at. Built on libCST.

Names are resolved through each file's imports, never matched as text, so
an aliased import or an unrelated symbol that shares a name with an SDK
one is never touched. The camelCase to snake_case rename is restricted to
the field names v1's `mcp.types` actually declared. Anything whose correct
rewrite depends on information that is not in the file -- the lowlevel
decorator to `on_*` relocation, the transport keywords on the `MCPServer`
constructor -- is left exactly as written and marked instead, so the
remaining work is one grep. Re-running on the output is a no-op.

The mapping tables are pinned against the installed v2 package by ratchet
tests so they cannot silently drift: every rename target must resolve,
every removed API must be provably absent, and no flagged constructor
keyword may survive on `MCPServer.__init__`. Measured against the example
files that exist on both `v1.x` and `main` (whose diff is the hand-written
migration), the codemod fully reproduces 13 of the 51 with a real
migration diff, improves 35 more, and makes none worse.

Also adds an "Automated migration" section to docs/migration.md, a mention
of the tool in README.v2.md, and the package to the publish workflow's
build step (the PyPI project and its trusted publisher must exist before a
release is tagged with this in it).
2026-07-01 12:08:22 +00:00
Den Delimarsky 985652491a Add Cloudflare Pages docs preview with /preview-docs slash command (#3028) 2026-06-30 16:47:21 +01:00
Max 0b200ef03b Surface skipped conformance scenarios as baselined known failures (#3030) 2026-06-30 13:07:05 +01:00
Max f2e63c979a Promote the v2 README to README.md ahead of the first v2 beta (#3014) 2026-06-29 12:01:54 +01:00
Max 3caa445c6c Pin conformance harness by commit SHA (ed314a73) instead of PR number (#3000) 2026-06-26 17:01:42 +02:00
Marcelo Trylesinski 5b2713d40c Mirror x-mcp-header tool arguments into Mcp-Param-* request headers (SEP-2243) (#2990) 2026-06-26 14:36:56 +02:00
Max 3a8da8c0c3 Fix docs/release follow-ups from the mcp-types package split (#2977) 2026-06-26 13:16:09 +02:00
Max 411a6d3980 Rebuild the docs around tested examples; shrink README.v2.md to a pitch (#2978) 2026-06-26 12:49:19 +02:00
Max 4caa41f6d5 Add story-style examples suite (27 stories + harness + CI) (#2957) 2026-06-26 12:02:27 +02:00
Marcelo Trylesinski e9cd1692b0 Remove comment-on-release workflow (#2985) 2026-06-26 09:00:51 +00:00
Max 587340279e Conformance burn-down: server-side InputRequiredResult, Mcp-Method/Name validation, x-mcp-header filter (14 scenarios → green) (#2974)
CI / checks (push) Failing after 0s
CI / all-green (push) Has been cancelled
2026-06-26 09:51:59 +02:00
Marcelo Trylesinski 0ee7f1b293 Split protocol types into a standalone mcp-types package (#2973) 2026-06-25 19:18:38 +02:00
Max f5fe42f5a4 ci(conformance): bump harness to 0.2.0-alpha.5 preview (#2927) 2026-06-20 16:54:50 +01:00
Marcelo Trylesinski 0fa03ec69f Add uv ecosystem to dependabot and drop weekly lockfile workflow (#2919) 2026-06-20 15:13:17 +01:00
Max 9e6d00318c ci(conformance): add 2026-07-28 carried-forward leg + bump harness to 0.2.0-alpha.4 (#2911) 2026-06-19 14:48:21 +01:00
Max 65be5a7147 Protocol types for 2026-07-28: superset monolith, committed per-version packages, and wire-method maps (#2849) 2026-06-16 17:40:14 +01:00
dependabot[bot] 2693fb95ae chore(deps): bump the github-actions group across 1 directory with 9 updates (#2636)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Marcelo Trylesinski <marcelotryle@gmail.com>
2026-06-16 09:45:21 +01:00
Max 255650dcd1 ci(conformance): run server --suite draft and baseline the 2026-07-28 scenarios (#2878) 2026-06-15 16:45:29 +01:00
Max a3689ab493 ci(conformance): pin harness to 0.2.0-alpha.3 with expected-failures baseline (#2877) 2026-06-15 15:40:42 +01:00
Max 1e21814ed5 Update the v2 status banner and pin spawned environments to the running SDK version (#2834)
CI / checks (push) Failing after 0s
CI / all-green (push) Has been cancelled
2026-06-11 09:41:19 +01:00
Max e196857bc9 Prepare release machinery for v2 pre-releases (#2831) 2026-06-11 09:03:27 +01:00
Max 5d826490b6 [v2] Dispatcher/ServerRunner receive-path swap — replaces BaseSession (#2710) 2026-06-09 12:58:47 +01:00
Marcelo Trylesinski e8e6484278 ci: add zizmor for GitHub Actions security analysis (#2648) 2026-05-20 17:06:57 +02:00
Max f4753440da ci: deploy docs to py.sdk.modelcontextprotocol.io via Pages artifact (v1 at /, v2 at /v2/) (#2634) 2026-05-18 15:28:13 +01:00
Max Isbey fb2276b95f ci: remove claude-code-review workflow (#2359) 2026-03-27 14:02:41 +00:00
Felix Weinberger 7ba4fb881d ci: skip claude.yml when comment is '@claude review' (#2337) 2026-03-24 20:36:36 +00:00
Max Isbey 7ba41dcfae fix: make local coverage runs reliable (#2236) 2026-03-06 17:24:18 +00:00
Max Isbey 62575edabd ci: sign weekly lockfile commits as github-actions[bot] (#2148) 2026-02-26 15:36:46 +00:00
Jonathan Hefner 0fe16dd5fd fix: silence mkdocs social plugin warnings in strict mode (#2109) 2026-02-19 23:12:51 +01:00
Max Isbey 43d709c976 ci: pin all GitHub Actions to commit SHAs (#2088) 2026-02-18 19:42:00 +00:00
Max Isbey 29a14ab9e5 fix: skip readme-v1-frozen in CI and add diff-based README.md check (#2048) 2026-02-13 10:30:30 +00:00
Felix Weinberger 239d682b6f fix: pass conformance auth scenarios, add RFC 8707 resource validation (#2010) 2026-02-09 11:41:03 +00:00
Marcelo Trylesinski 4598ad9361 ci: disable conformance tests (#2007) 2026-02-07 14:12:19 +01:00
dependabot[bot] 6f8b791faf chore(deps): bump the github-actions group with 5 updates (#1981)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-01 17:37:01 +01:00
Max Isbey 2137c8fbdb fix: revert README to v1.x documentation on main (#1971)
Co-authored-by: Marcelo Trylesinski <marcelotryle@gmail.com>
2026-01-29 20:03:01 +00:00
Max Isbey b38716e5e3 ci: skip Claude code review for Dependabot PRs (#1963) 2026-01-27 13:04:36 +00:00
Max Isbey 4a2d83a0cb ci: skip claude code review for fork PRs (#1952) 2026-01-24 19:22:24 +00:00
Max Isbey a7ddfdae07 ci: add strict-no-cover to detect unnecessary coverage pragmas (#1897) 2026-01-23 21:00:20 +01:00
Max Isbey 5301298225 Add claude GitHub action (#1922) 2026-01-22 18:43:42 +00:00
Max Isbey 213cf993ca Add conformance testing CI pipeline (#1915) 2026-01-21 16:04:35 +00:00
Marcelo Trylesinski bcb07c2b25 refactor: flatten the methods in Client (#1914) 2026-01-20 13:12:07 +01:00
Marcelo Trylesinski 2b4c7ebc61 ci: add alls-green action for single required check (#1882) 2026-01-16 12:14:50 +01:00
Max Isbey 2cf7784a48 ci: replace highest resolution with locked in test matrix (#1869)
Co-authored-by: Marcelo Trylesinski <marcelotryle@gmail.com>
2026-01-16 11:09:25 +01:00
dependabot[bot] b63776b14f chore(deps): bump the github-actions group with 7 updates (#1878)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-16 10:00:49 +01:00
Max Isbey c9e98e53a7 ci: pin all GitHub Actions to commit SHAs (#1875) 2026-01-16 08:52:42 +00:00
Max Isbey fc5cb6ab48 ci: add weekly lockfile update workflow (#1874) 2026-01-16 09:47:06 +01:00
Max Isbey 72a8631f0a fix(ci): use bash shell for pytest step to ensure consistent error handling (#1868) 2026-01-15 17:32:22 +01:00
Marcelo Trylesinski 3ffe142e9a Support Python 3.14 (#1834) 2026-01-07 16:28:23 +00:00
Yugan 4807eb5a80 Add workflow to comment on PRs when released (#1772) 2025-12-19 11:17:13 +00:00
Max Isbey ef96a31671 ci: add v1.x branch to main-checks workflow (#1802)
Main branch checks / checks (push) Failing after 0s
2025-12-18 16:59:30 +00:00