Trim the migration guide to genuine v1-to-v2 breaking changes - #3183

Open
maxisbey wants to merge 1 commit into
mainfrom
migration-doc-cleanup
Open

Trim the migration guide to genuine v1-to-v2 breaking changes#3183
maxisbey wants to merge 1 commit into
mainfrom
migration-doc-cleanup

Conversation

@maxisbey

@maxisbeymaxisbey commented Jul 26, 2026

Copy link
Copy Markdown
Contributor

Cuts docs/migration.md down to what it is for: someone with working v1.x code that breaks (or silently changes behavior) on v2, and needs to know what to write instead. Only that file changes.

Motivation and Context

The guide had drifted into a changelog. It carried new-in-v2 feature notes, spec-adoption commentary, deprecations of APIs that still work, and internal fixes with nothing for a migrator to change, alongside genuinely stale before/after code and a fair amount of history narration ("this was X, then Y"). A porter or an agent pointed at the file had to sieve for the parts that actually apply.

What changed:

  • Removed non-migration entries (91 → 73 sections, 14 → 12 groups): the whole "Deprecations" and "Notes for 2026-era connections" groups, plus the mcp dev/mcp install pinning note, the 4 MiB body limit (also shipped on v1.x; kept as a one-clause note next to max_request_body_size), the resolver capability gate, the stdio_client shutdown rework, SEP-2352 credential binding, SEP-2350 scope unioning, lowlevel-handler registration through private attributes, the subscribe-capability advertisement fix, and the unknown-method -32601 change.
  • Corrected code and claims: e.g. the McpError section wrongly presented the top-level MCPError export as new (v1 already exported McpError from mcp) and hid that e.error still works; several after-blocks used APIs that current main has since moved past; the raise_exceptions and missing-resource sections misstated v1 behavior. Every remaining before/after block was re-run — v1 blocks against v1.x, v2 blocks against main.
  • Folded near-duplicate entries: dependency requirements, default server identity (name + version), calling MCPServer.call_tool()/get_prompt()/read_resource() directly, and the in-memory testing helper with the Client(server) mode notes.
  • Tightened prose everywhere: history lessons, hedges, and restated-code sentences removed; the "Find your changes" index and suggested migration order regenerated to match; import style standardized on from mcp.server import MCPServer.

How Has This Been Tested?

Each surviving before/after example was executed or import-checked against the corresponding tree (v1.x for "Before", main for "After"), and every intra-document anchor and relative docs link was checked. markdownlint passes.

Breaking Changes

None — documentation only.

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)
  • Documentation update

Checklist

  • I have read the MCP Documentation
  • My code follows the repository's style guidelines
  • New and existing tests pass locally
  • I have added appropriate error handling
  • I have added or updated documentation as needed

Additional context

Also touches docs/whats-new.md, but only to drop two links whose target sections this removes (the mcp dev/mcp install pinning note and the Mcp-Param-* header section) — the strict docs build aborts on missing anchors. Every other heading that another page links to was left intact.

AI Disclaimer

@cubic-dev-aicubic-dev-aiBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No issues found across 1 file

Not reviewed (too large): docs/migration.md (~2,117 lines) - if these are generated or fixture files, add them to ignored paths to exclude them from future reviews.

Tip: cubic can generate docs of your entire codebase and keep them up to date. Try it here.

Re-trigger cubic

@github-actions

github-actionsBot commented Jul 26, 2026

Copy link
Copy Markdown
Contributor

📚 Documentation preview

Previewhttps://pr-3183.mcp-python-docs.pages.dev
Deploymenthttps://9c737045.mcp-python-docs.pages.dev
Commitd0dc9bd
Triggered by@maxisbey
Updated2026-07-28 18:18:56 UTC

Comment threaddocs/migration.md Outdated

@claudeclaudeBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for fixing the two dangling whats-new.md anchors from my earlier comment — commit 426de27 resolves that, and I found no new issues this run. Still deferring to a human for a final pass, since this is a large editorial rewrite of the migration guide whose behavioral claims (which v1 examples run, what was cut as non-migration content) can't be fully verified mechanically.

What was reviewed:

  • Every cross-page link to migration.md#... anchors (7 remaining) resolves against the trimmed headings; no other page links to a deleted section.
  • Every intra-document anchor in migration.md (the "Find your changes" tables, suggested order, and inline cross-references) matches an existing heading slug.
  • Relative doc links check out; the two api/ targets are generated at build time per mkdocs.yml.
Extended reasoning...

Overview

This PR is documentation-only: it trims docs/migration.md from 91 to 73 sections, removing entries that were changelog/deprecation notes rather than genuine v1-to-v2 breaking changes, correcting several before/after code blocks, and folding near-duplicate entries. It also drops two links from docs/whats-new.md whose target sections the trim removes — the exact issue a prior run of this review flagged, now resolved by commit 426de27.

Security risks

None. No code, configuration, or CI changes — only Markdown under docs/. The removed sections include some security-adjacent content (SEP-2243 header validation, credential binding), but removing documentation of shipped behavior does not change the behavior itself.

Level of scrutiny

Docs-only changes warrant moderate scrutiny: the failure mode is misleading migration guidance, not broken software. I mechanically verified everything verifiable — all cross-page and intra-document anchors resolve, no other docs page links to a deleted section, and relative links point at real (or build-generated) files. What cannot be verified mechanically is the content accuracy of the rewritten prose and code examples: the author states every surviving before/after block was executed against v1.x and main respectively, but I cannot reproduce that here, and the judgment calls about which entries count as "genuine migration content" (e.g. dropping the SEP-2352/SEP-2350 notes and the "Notes for 2026-era connections" group entirely) are editorial decisions a maintainer should sign off on.

Other factors

The prior review cycle worked as intended: the one concrete defect (dangling anchors) was reported inline and fixed in a follow-up commit before this run. The bug hunting system found nothing further. Given the size of the rewrite (~700 changed lines in migration.md) and the repository's own AGENTS.md emphasis on migration-guide accuracy for the v2 line, a human skim of the removed and rewritten sections is the remaining review work — hence deferral rather than approval.

The guide had accumulated entries that are not v1-to-v2 migration
items: new v2 feature notes, "what did not change" reassurance
sections, spec-adoption commentary, deprecations of APIs that still
work, and internal fixes with nothing for a migrator to change. Remove
those, including the whole Deprecations group; the two deprecation
consequences a migrator does act on (warnings-as-errors test runs, and
client calls that die on the default 2026-era connection) fold into
the testing section.
Correct code that was wrong for v1.x or stale for current main --
including the `mcp.types` alias now being permanent -- and verify every
remaining before/after example against the v1.x and main trees. Reframe
the 2026-era notes as behavior changes migrated code sees on v2's
default connection, fold closely related entries together, standardize
on the documented `from mcp.server import MCPServer` and `mcp.types`
imports, regenerate the index and suggested-order blocks, and cut
history and over-explanation throughout.
Also drop two whats-new.md links whose target sections this removes
(the strict docs build aborts on missing anchors).
No-Verification-Needed: documentation-only change
@maxisbey
maxisbeyforce-pushed the migration-doc-cleanup branch from 426de27 to d0dc9bdCompareJuly 28, 2026 18:17

@claudeclaudeBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Warning

This review may be incomplete: some analysis steps could not run due to a temporary API capacity limit.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@maxisbey
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Trim the migration guide to genuine v1-to-v2 breaking changes - #3183

Open
maxisbey wants to merge 1 commit into
mainfrom
migration-doc-cleanup
Open

Trim the migration guide to genuine v1-to-v2 breaking changes#3183
maxisbey wants to merge 1 commit into
mainfrom
migration-doc-cleanup

Conversation

@maxisbey

@maxisbeymaxisbey commented Jul 26, 2026

Copy link
Copy Markdown
Contributor

Cuts docs/migration.md down to what it is for: someone with working v1.x code that breaks (or silently changes behavior) on v2, and needs to know what to write instead. Only that file changes.

Motivation and Context

The guide had drifted into a changelog. It carried new-in-v2 feature notes, spec-adoption commentary, deprecations of APIs that still work, and internal fixes with nothing for a migrator to change, alongside genuinely stale before/after code and a fair amount of history narration ("this was X, then Y"). A porter or an agent pointed at the file had to sieve for the parts that actually apply.

What changed:

  • Removed non-migration entries (91 → 73 sections, 14 → 12 groups): the whole "Deprecations" and "Notes for 2026-era connections" groups, plus the mcp dev/mcp install pinning note, the 4 MiB body limit (also shipped on v1.x; kept as a one-clause note next to max_request_body_size), the resolver capability gate, the stdio_client shutdown rework, SEP-2352 credential binding, SEP-2350 scope unioning, lowlevel-handler registration through private attributes, the subscribe-capability advertisement fix, and the unknown-method -32601 change.
  • Corrected code and claims: e.g. the McpError section wrongly presented the top-level MCPError export as new (v1 already exported McpError from mcp) and hid that e.error still works; several after-blocks used APIs that current main has since moved past; the raise_exceptions and missing-resource sections misstated v1 behavior. Every remaining before/after block was re-run — v1 blocks against v1.x, v2 blocks against main.
  • Folded near-duplicate entries: dependency requirements, default server identity (name + version), calling MCPServer.call_tool()/get_prompt()/read_resource() directly, and the in-memory testing helper with the Client(server) mode notes.
  • Tightened prose everywhere: history lessons, hedges, and restated-code sentences removed; the "Find your changes" index and suggested migration order regenerated to match; import style standardized on from mcp.server import MCPServer.

How Has This Been Tested?

Each surviving before/after example was executed or import-checked against the corresponding tree (v1.x for "Before", main for "After"), and every intra-document anchor and relative docs link was checked. markdownlint passes.

Breaking Changes

None — documentation only.

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)
  • Documentation update

Checklist

  • I have read the MCP Documentation
  • My code follows the repository's style guidelines
  • New and existing tests pass locally
  • I have added appropriate error handling
  • I have added or updated documentation as needed

Additional context

Also touches docs/whats-new.md, but only to drop two links whose target sections this removes (the mcp dev/mcp install pinning note and the Mcp-Param-* header section) — the strict docs build aborts on missing anchors. Every other heading that another page links to was left intact.

AI Disclaimer

@cubic-dev-aicubic-dev-aiBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No issues found across 1 file

Not reviewed (too large): docs/migration.md (~2,117 lines) - if these are generated or fixture files, add them to ignored paths to exclude them from future reviews.

Tip: cubic can generate docs of your entire codebase and keep them up to date. Try it here.

Re-trigger cubic

@github-actions

github-actionsBot commented Jul 26, 2026

Copy link
Copy Markdown
Contributor

📚 Documentation preview

Previewhttps://pr-3183.mcp-python-docs.pages.dev
Deploymenthttps://9c737045.mcp-python-docs.pages.dev
Commitd0dc9bd
Triggered by@maxisbey
Updated2026-07-28 18:18:56 UTC

Comment threaddocs/migration.md Outdated

@claudeclaudeBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for fixing the two dangling whats-new.md anchors from my earlier comment — commit 426de27 resolves that, and I found no new issues this run. Still deferring to a human for a final pass, since this is a large editorial rewrite of the migration guide whose behavioral claims (which v1 examples run, what was cut as non-migration content) can't be fully verified mechanically.

What was reviewed:

  • Every cross-page link to migration.md#... anchors (7 remaining) resolves against the trimmed headings; no other page links to a deleted section.
  • Every intra-document anchor in migration.md (the "Find your changes" tables, suggested order, and inline cross-references) matches an existing heading slug.
  • Relative doc links check out; the two api/ targets are generated at build time per mkdocs.yml.
Extended reasoning...

Overview

This PR is documentation-only: it trims docs/migration.md from 91 to 73 sections, removing entries that were changelog/deprecation notes rather than genuine v1-to-v2 breaking changes, correcting several before/after code blocks, and folding near-duplicate entries. It also drops two links from docs/whats-new.md whose target sections the trim removes — the exact issue a prior run of this review flagged, now resolved by commit 426de27.

Security risks

None. No code, configuration, or CI changes — only Markdown under docs/. The removed sections include some security-adjacent content (SEP-2243 header validation, credential binding), but removing documentation of shipped behavior does not change the behavior itself.

Level of scrutiny

Docs-only changes warrant moderate scrutiny: the failure mode is misleading migration guidance, not broken software. I mechanically verified everything verifiable — all cross-page and intra-document anchors resolve, no other docs page links to a deleted section, and relative links point at real (or build-generated) files. What cannot be verified mechanically is the content accuracy of the rewritten prose and code examples: the author states every surviving before/after block was executed against v1.x and main respectively, but I cannot reproduce that here, and the judgment calls about which entries count as "genuine migration content" (e.g. dropping the SEP-2352/SEP-2350 notes and the "Notes for 2026-era connections" group entirely) are editorial decisions a maintainer should sign off on.

Other factors

The prior review cycle worked as intended: the one concrete defect (dangling anchors) was reported inline and fixed in a follow-up commit before this run. The bug hunting system found nothing further. Given the size of the rewrite (~700 changed lines in migration.md) and the repository's own AGENTS.md emphasis on migration-guide accuracy for the v2 line, a human skim of the removed and rewritten sections is the remaining review work — hence deferral rather than approval.

The guide had accumulated entries that are not v1-to-v2 migration
items: new v2 feature notes, "what did not change" reassurance
sections, spec-adoption commentary, deprecations of APIs that still
work, and internal fixes with nothing for a migrator to change. Remove
those, including the whole Deprecations group; the two deprecation
consequences a migrator does act on (warnings-as-errors test runs, and
client calls that die on the default 2026-era connection) fold into
the testing section.
Correct code that was wrong for v1.x or stale for current main --
including the `mcp.types` alias now being permanent -- and verify every
remaining before/after example against the v1.x and main trees. Reframe
the 2026-era notes as behavior changes migrated code sees on v2's
default connection, fold closely related entries together, standardize
on the documented `from mcp.server import MCPServer` and `mcp.types`
imports, regenerate the index and suggested-order blocks, and cut
history and over-explanation throughout.
Also drop two whats-new.md links whose target sections this removes
(the strict docs build aborts on missing anchors).
No-Verification-Needed: documentation-only change
@maxisbey
maxisbeyforce-pushed the migration-doc-cleanup branch from 426de27 to d0dc9bdCompareJuly 28, 2026 18:17

@claudeclaudeBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Warning

This review may be incomplete: some analysis steps could not run due to a temporary API capacity limit.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@maxisbey
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Trim the migration guide to genuine v1-to-v2 breaking changes - #3183

Open
maxisbey wants to merge 1 commit into
mainfrom
migration-doc-cleanup
Open

Trim the migration guide to genuine v1-to-v2 breaking changes#3183
maxisbey wants to merge 1 commit into
mainfrom
migration-doc-cleanup

Conversation

@maxisbey

@maxisbeymaxisbey commented Jul 26, 2026

Copy link
Copy Markdown
Contributor

Cuts docs/migration.md down to what it is for: someone with working v1.x code that breaks (or silently changes behavior) on v2, and needs to know what to write instead. Only that file changes.

Motivation and Context

The guide had drifted into a changelog. It carried new-in-v2 feature notes, spec-adoption commentary, deprecations of APIs that still work, and internal fixes with nothing for a migrator to change, alongside genuinely stale before/after code and a fair amount of history narration ("this was X, then Y"). A porter or an agent pointed at the file had to sieve for the parts that actually apply.

What changed:

  • Removed non-migration entries (91 → 73 sections, 14 → 12 groups): the whole "Deprecations" and "Notes for 2026-era connections" groups, plus the mcp dev/mcp install pinning note, the 4 MiB body limit (also shipped on v1.x; kept as a one-clause note next to max_request_body_size), the resolver capability gate, the stdio_client shutdown rework, SEP-2352 credential binding, SEP-2350 scope unioning, lowlevel-handler registration through private attributes, the subscribe-capability advertisement fix, and the unknown-method -32601 change.
  • Corrected code and claims: e.g. the McpError section wrongly presented the top-level MCPError export as new (v1 already exported McpError from mcp) and hid that e.error still works; several after-blocks used APIs that current main has since moved past; the raise_exceptions and missing-resource sections misstated v1 behavior. Every remaining before/after block was re-run — v1 blocks against v1.x, v2 blocks against main.
  • Folded near-duplicate entries: dependency requirements, default server identity (name + version), calling MCPServer.call_tool()/get_prompt()/read_resource() directly, and the in-memory testing helper with the Client(server) mode notes.
  • Tightened prose everywhere: history lessons, hedges, and restated-code sentences removed; the "Find your changes" index and suggested migration order regenerated to match; import style standardized on from mcp.server import MCPServer.

How Has This Been Tested?

Each surviving before/after example was executed or import-checked against the corresponding tree (v1.x for "Before", main for "After"), and every intra-document anchor and relative docs link was checked. markdownlint passes.

Breaking Changes

None — documentation only.

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)
  • Documentation update

Checklist

  • I have read the MCP Documentation
  • My code follows the repository's style guidelines
  • New and existing tests pass locally
  • I have added appropriate error handling
  • I have added or updated documentation as needed

Additional context

Also touches docs/whats-new.md, but only to drop two links whose target sections this removes (the mcp dev/mcp install pinning note and the Mcp-Param-* header section) — the strict docs build aborts on missing anchors. Every other heading that another page links to was left intact.

AI Disclaimer

@cubic-dev-aicubic-dev-aiBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No issues found across 1 file

Not reviewed (too large): docs/migration.md (~2,117 lines) - if these are generated or fixture files, add them to ignored paths to exclude them from future reviews.

Tip: cubic can generate docs of your entire codebase and keep them up to date. Try it here.

Re-trigger cubic

@github-actions

github-actionsBot commented Jul 26, 2026

Copy link
Copy Markdown
Contributor

📚 Documentation preview

Previewhttps://pr-3183.mcp-python-docs.pages.dev
Deploymenthttps://9c737045.mcp-python-docs.pages.dev
Commitd0dc9bd
Triggered by@maxisbey
Updated2026-07-28 18:18:56 UTC

Comment threaddocs/migration.md Outdated

@claudeclaudeBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for fixing the two dangling whats-new.md anchors from my earlier comment — commit 426de27 resolves that, and I found no new issues this run. Still deferring to a human for a final pass, since this is a large editorial rewrite of the migration guide whose behavioral claims (which v1 examples run, what was cut as non-migration content) can't be fully verified mechanically.

What was reviewed:

  • Every cross-page link to migration.md#... anchors (7 remaining) resolves against the trimmed headings; no other page links to a deleted section.
  • Every intra-document anchor in migration.md (the "Find your changes" tables, suggested order, and inline cross-references) matches an existing heading slug.
  • Relative doc links check out; the two api/ targets are generated at build time per mkdocs.yml.
Extended reasoning...

Overview

This PR is documentation-only: it trims docs/migration.md from 91 to 73 sections, removing entries that were changelog/deprecation notes rather than genuine v1-to-v2 breaking changes, correcting several before/after code blocks, and folding near-duplicate entries. It also drops two links from docs/whats-new.md whose target sections the trim removes — the exact issue a prior run of this review flagged, now resolved by commit 426de27.

Security risks

None. No code, configuration, or CI changes — only Markdown under docs/. The removed sections include some security-adjacent content (SEP-2243 header validation, credential binding), but removing documentation of shipped behavior does not change the behavior itself.

Level of scrutiny

Docs-only changes warrant moderate scrutiny: the failure mode is misleading migration guidance, not broken software. I mechanically verified everything verifiable — all cross-page and intra-document anchors resolve, no other docs page links to a deleted section, and relative links point at real (or build-generated) files. What cannot be verified mechanically is the content accuracy of the rewritten prose and code examples: the author states every surviving before/after block was executed against v1.x and main respectively, but I cannot reproduce that here, and the judgment calls about which entries count as "genuine migration content" (e.g. dropping the SEP-2352/SEP-2350 notes and the "Notes for 2026-era connections" group entirely) are editorial decisions a maintainer should sign off on.

Other factors

The prior review cycle worked as intended: the one concrete defect (dangling anchors) was reported inline and fixed in a follow-up commit before this run. The bug hunting system found nothing further. Given the size of the rewrite (~700 changed lines in migration.md) and the repository's own AGENTS.md emphasis on migration-guide accuracy for the v2 line, a human skim of the removed and rewritten sections is the remaining review work — hence deferral rather than approval.

The guide had accumulated entries that are not v1-to-v2 migration
items: new v2 feature notes, "what did not change" reassurance
sections, spec-adoption commentary, deprecations of APIs that still
work, and internal fixes with nothing for a migrator to change. Remove
those, including the whole Deprecations group; the two deprecation
consequences a migrator does act on (warnings-as-errors test runs, and
client calls that die on the default 2026-era connection) fold into
the testing section.
Correct code that was wrong for v1.x or stale for current main --
including the `mcp.types` alias now being permanent -- and verify every
remaining before/after example against the v1.x and main trees. Reframe
the 2026-era notes as behavior changes migrated code sees on v2's
default connection, fold closely related entries together, standardize
on the documented `from mcp.server import MCPServer` and `mcp.types`
imports, regenerate the index and suggested-order blocks, and cut
history and over-explanation throughout.
Also drop two whats-new.md links whose target sections this removes
(the strict docs build aborts on missing anchors).
No-Verification-Needed: documentation-only change
@maxisbey
maxisbeyforce-pushed the migration-doc-cleanup branch from 426de27 to d0dc9bdCompareJuly 28, 2026 18:17

@claudeclaudeBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Warning

This review may be incomplete: some analysis steps could not run due to a temporary API capacity limit.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@maxisbey
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Trim the migration guide to genuine v1-to-v2 breaking changes - #3183

Open
maxisbey wants to merge 1 commit into
mainfrom
migration-doc-cleanup
Open

Trim the migration guide to genuine v1-to-v2 breaking changes#3183
maxisbey wants to merge 1 commit into
mainfrom
migration-doc-cleanup

Conversation

@maxisbey

@maxisbeymaxisbey commented Jul 26, 2026

Copy link
Copy Markdown
Contributor

Cuts docs/migration.md down to what it is for: someone with working v1.x code that breaks (or silently changes behavior) on v2, and needs to know what to write instead. Only that file changes.

Motivation and Context

The guide had drifted into a changelog. It carried new-in-v2 feature notes, spec-adoption commentary, deprecations of APIs that still work, and internal fixes with nothing for a migrator to change, alongside genuinely stale before/after code and a fair amount of history narration ("this was X, then Y"). A porter or an agent pointed at the file had to sieve for the parts that actually apply.

What changed:

  • Removed non-migration entries (91 → 73 sections, 14 → 12 groups): the whole "Deprecations" and "Notes for 2026-era connections" groups, plus the mcp dev/mcp install pinning note, the 4 MiB body limit (also shipped on v1.x; kept as a one-clause note next to max_request_body_size), the resolver capability gate, the stdio_client shutdown rework, SEP-2352 credential binding, SEP-2350 scope unioning, lowlevel-handler registration through private attributes, the subscribe-capability advertisement fix, and the unknown-method -32601 change.
  • Corrected code and claims: e.g. the McpError section wrongly presented the top-level MCPError export as new (v1 already exported McpError from mcp) and hid that e.error still works; several after-blocks used APIs that current main has since moved past; the raise_exceptions and missing-resource sections misstated v1 behavior. Every remaining before/after block was re-run — v1 blocks against v1.x, v2 blocks against main.
  • Folded near-duplicate entries: dependency requirements, default server identity (name + version), calling MCPServer.call_tool()/get_prompt()/read_resource() directly, and the in-memory testing helper with the Client(server) mode notes.
  • Tightened prose everywhere: history lessons, hedges, and restated-code sentences removed; the "Find your changes" index and suggested migration order regenerated to match; import style standardized on from mcp.server import MCPServer.

How Has This Been Tested?

Each surviving before/after example was executed or import-checked against the corresponding tree (v1.x for "Before", main for "After"), and every intra-document anchor and relative docs link was checked. markdownlint passes.

Breaking Changes

None — documentation only.

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)
  • Documentation update

Checklist

  • I have read the MCP Documentation
  • My code follows the repository's style guidelines
  • New and existing tests pass locally
  • I have added appropriate error handling
  • I have added or updated documentation as needed

Additional context

Also touches docs/whats-new.md, but only to drop two links whose target sections this removes (the mcp dev/mcp install pinning note and the Mcp-Param-* header section) — the strict docs build aborts on missing anchors. Every other heading that another page links to was left intact.

AI Disclaimer

@cubic-dev-aicubic-dev-aiBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No issues found across 1 file

Not reviewed (too large): docs/migration.md (~2,117 lines) - if these are generated or fixture files, add them to ignored paths to exclude them from future reviews.

Tip: cubic can generate docs of your entire codebase and keep them up to date. Try it here.

Re-trigger cubic

@github-actions

github-actionsBot commented Jul 26, 2026

Copy link
Copy Markdown
Contributor

📚 Documentation preview

Previewhttps://pr-3183.mcp-python-docs.pages.dev
Deploymenthttps://9c737045.mcp-python-docs.pages.dev
Commitd0dc9bd
Triggered by@maxisbey
Updated2026-07-28 18:18:56 UTC

Comment threaddocs/migration.md Outdated

@claudeclaudeBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for fixing the two dangling whats-new.md anchors from my earlier comment — commit 426de27 resolves that, and I found no new issues this run. Still deferring to a human for a final pass, since this is a large editorial rewrite of the migration guide whose behavioral claims (which v1 examples run, what was cut as non-migration content) can't be fully verified mechanically.

What was reviewed:

  • Every cross-page link to migration.md#... anchors (7 remaining) resolves against the trimmed headings; no other page links to a deleted section.
  • Every intra-document anchor in migration.md (the "Find your changes" tables, suggested order, and inline cross-references) matches an existing heading slug.
  • Relative doc links check out; the two api/ targets are generated at build time per mkdocs.yml.
Extended reasoning...

Overview

This PR is documentation-only: it trims docs/migration.md from 91 to 73 sections, removing entries that were changelog/deprecation notes rather than genuine v1-to-v2 breaking changes, correcting several before/after code blocks, and folding near-duplicate entries. It also drops two links from docs/whats-new.md whose target sections the trim removes — the exact issue a prior run of this review flagged, now resolved by commit 426de27.

Security risks

None. No code, configuration, or CI changes — only Markdown under docs/. The removed sections include some security-adjacent content (SEP-2243 header validation, credential binding), but removing documentation of shipped behavior does not change the behavior itself.

Level of scrutiny

Docs-only changes warrant moderate scrutiny: the failure mode is misleading migration guidance, not broken software. I mechanically verified everything verifiable — all cross-page and intra-document anchors resolve, no other docs page links to a deleted section, and relative links point at real (or build-generated) files. What cannot be verified mechanically is the content accuracy of the rewritten prose and code examples: the author states every surviving before/after block was executed against v1.x and main respectively, but I cannot reproduce that here, and the judgment calls about which entries count as "genuine migration content" (e.g. dropping the SEP-2352/SEP-2350 notes and the "Notes for 2026-era connections" group entirely) are editorial decisions a maintainer should sign off on.

Other factors

The prior review cycle worked as intended: the one concrete defect (dangling anchors) was reported inline and fixed in a follow-up commit before this run. The bug hunting system found nothing further. Given the size of the rewrite (~700 changed lines in migration.md) and the repository's own AGENTS.md emphasis on migration-guide accuracy for the v2 line, a human skim of the removed and rewritten sections is the remaining review work — hence deferral rather than approval.

The guide had accumulated entries that are not v1-to-v2 migration
items: new v2 feature notes, "what did not change" reassurance
sections, spec-adoption commentary, deprecations of APIs that still
work, and internal fixes with nothing for a migrator to change. Remove
those, including the whole Deprecations group; the two deprecation
consequences a migrator does act on (warnings-as-errors test runs, and
client calls that die on the default 2026-era connection) fold into
the testing section.
Correct code that was wrong for v1.x or stale for current main --
including the `mcp.types` alias now being permanent -- and verify every
remaining before/after example against the v1.x and main trees. Reframe
the 2026-era notes as behavior changes migrated code sees on v2's
default connection, fold closely related entries together, standardize
on the documented `from mcp.server import MCPServer` and `mcp.types`
imports, regenerate the index and suggested-order blocks, and cut
history and over-explanation throughout.
Also drop two whats-new.md links whose target sections this removes
(the strict docs build aborts on missing anchors).
No-Verification-Needed: documentation-only change
@maxisbey
maxisbeyforce-pushed the migration-doc-cleanup branch from 426de27 to d0dc9bdCompareJuly 28, 2026 18:17

@claudeclaudeBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Warning

This review may be incomplete: some analysis steps could not run due to a temporary API capacity limit.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@maxisbey
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Trim the migration guide to genuine v1-to-v2 breaking changes - #3183

Open
maxisbey wants to merge 1 commit into
mainfrom
migration-doc-cleanup
Open

Trim the migration guide to genuine v1-to-v2 breaking changes#3183
maxisbey wants to merge 1 commit into
mainfrom
migration-doc-cleanup

Conversation

@maxisbey

@maxisbeymaxisbey commented Jul 26, 2026

Copy link
Copy Markdown
Contributor

Cuts docs/migration.md down to what it is for: someone with working v1.x code that breaks (or silently changes behavior) on v2, and needs to know what to write instead. Only that file changes.

Motivation and Context

The guide had drifted into a changelog. It carried new-in-v2 feature notes, spec-adoption commentary, deprecations of APIs that still work, and internal fixes with nothing for a migrator to change, alongside genuinely stale before/after code and a fair amount of history narration ("this was X, then Y"). A porter or an agent pointed at the file had to sieve for the parts that actually apply.

What changed:

  • Removed non-migration entries (91 → 73 sections, 14 → 12 groups): the whole "Deprecations" and "Notes for 2026-era connections" groups, plus the mcp dev/mcp install pinning note, the 4 MiB body limit (also shipped on v1.x; kept as a one-clause note next to max_request_body_size), the resolver capability gate, the stdio_client shutdown rework, SEP-2352 credential binding, SEP-2350 scope unioning, lowlevel-handler registration through private attributes, the subscribe-capability advertisement fix, and the unknown-method -32601 change.
  • Corrected code and claims: e.g. the McpError section wrongly presented the top-level MCPError export as new (v1 already exported McpError from mcp) and hid that e.error still works; several after-blocks used APIs that current main has since moved past; the raise_exceptions and missing-resource sections misstated v1 behavior. Every remaining before/after block was re-run — v1 blocks against v1.x, v2 blocks against main.
  • Folded near-duplicate entries: dependency requirements, default server identity (name + version), calling MCPServer.call_tool()/get_prompt()/read_resource() directly, and the in-memory testing helper with the Client(server) mode notes.
  • Tightened prose everywhere: history lessons, hedges, and restated-code sentences removed; the "Find your changes" index and suggested migration order regenerated to match; import style standardized on from mcp.server import MCPServer.

How Has This Been Tested?

Each surviving before/after example was executed or import-checked against the corresponding tree (v1.x for "Before", main for "After"), and every intra-document anchor and relative docs link was checked. markdownlint passes.

Breaking Changes

None — documentation only.

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)
  • Documentation update

Checklist

  • I have read the MCP Documentation
  • My code follows the repository's style guidelines
  • New and existing tests pass locally
  • I have added appropriate error handling
  • I have added or updated documentation as needed

Additional context

Also touches docs/whats-new.md, but only to drop two links whose target sections this removes (the mcp dev/mcp install pinning note and the Mcp-Param-* header section) — the strict docs build aborts on missing anchors. Every other heading that another page links to was left intact.

AI Disclaimer

@cubic-dev-aicubic-dev-aiBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No issues found across 1 file

Not reviewed (too large): docs/migration.md (~2,117 lines) - if these are generated or fixture files, add them to ignored paths to exclude them from future reviews.

Tip: cubic can generate docs of your entire codebase and keep them up to date. Try it here.

Re-trigger cubic

@github-actions

github-actionsBot commented Jul 26, 2026

Copy link
Copy Markdown
Contributor

📚 Documentation preview

Previewhttps://pr-3183.mcp-python-docs.pages.dev
Deploymenthttps://9c737045.mcp-python-docs.pages.dev
Commitd0dc9bd
Triggered by@maxisbey
Updated2026-07-28 18:18:56 UTC

Comment threaddocs/migration.md Outdated

@claudeclaudeBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for fixing the two dangling whats-new.md anchors from my earlier comment — commit 426de27 resolves that, and I found no new issues this run. Still deferring to a human for a final pass, since this is a large editorial rewrite of the migration guide whose behavioral claims (which v1 examples run, what was cut as non-migration content) can't be fully verified mechanically.

What was reviewed:

  • Every cross-page link to migration.md#... anchors (7 remaining) resolves against the trimmed headings; no other page links to a deleted section.
  • Every intra-document anchor in migration.md (the "Find your changes" tables, suggested order, and inline cross-references) matches an existing heading slug.
  • Relative doc links check out; the two api/ targets are generated at build time per mkdocs.yml.
Extended reasoning...

Overview

This PR is documentation-only: it trims docs/migration.md from 91 to 73 sections, removing entries that were changelog/deprecation notes rather than genuine v1-to-v2 breaking changes, correcting several before/after code blocks, and folding near-duplicate entries. It also drops two links from docs/whats-new.md whose target sections the trim removes — the exact issue a prior run of this review flagged, now resolved by commit 426de27.

Security risks

None. No code, configuration, or CI changes — only Markdown under docs/. The removed sections include some security-adjacent content (SEP-2243 header validation, credential binding), but removing documentation of shipped behavior does not change the behavior itself.

Level of scrutiny

Docs-only changes warrant moderate scrutiny: the failure mode is misleading migration guidance, not broken software. I mechanically verified everything verifiable — all cross-page and intra-document anchors resolve, no other docs page links to a deleted section, and relative links point at real (or build-generated) files. What cannot be verified mechanically is the content accuracy of the rewritten prose and code examples: the author states every surviving before/after block was executed against v1.x and main respectively, but I cannot reproduce that here, and the judgment calls about which entries count as "genuine migration content" (e.g. dropping the SEP-2352/SEP-2350 notes and the "Notes for 2026-era connections" group entirely) are editorial decisions a maintainer should sign off on.

Other factors

The prior review cycle worked as intended: the one concrete defect (dangling anchors) was reported inline and fixed in a follow-up commit before this run. The bug hunting system found nothing further. Given the size of the rewrite (~700 changed lines in migration.md) and the repository's own AGENTS.md emphasis on migration-guide accuracy for the v2 line, a human skim of the removed and rewritten sections is the remaining review work — hence deferral rather than approval.

The guide had accumulated entries that are not v1-to-v2 migration
items: new v2 feature notes, "what did not change" reassurance
sections, spec-adoption commentary, deprecations of APIs that still
work, and internal fixes with nothing for a migrator to change. Remove
those, including the whole Deprecations group; the two deprecation
consequences a migrator does act on (warnings-as-errors test runs, and
client calls that die on the default 2026-era connection) fold into
the testing section.
Correct code that was wrong for v1.x or stale for current main --
including the `mcp.types` alias now being permanent -- and verify every
remaining before/after example against the v1.x and main trees. Reframe
the 2026-era notes as behavior changes migrated code sees on v2's
default connection, fold closely related entries together, standardize
on the documented `from mcp.server import MCPServer` and `mcp.types`
imports, regenerate the index and suggested-order blocks, and cut
history and over-explanation throughout.
Also drop two whats-new.md links whose target sections this removes
(the strict docs build aborts on missing anchors).
No-Verification-Needed: documentation-only change
@maxisbey
maxisbeyforce-pushed the migration-doc-cleanup branch from 426de27 to d0dc9bdCompareJuly 28, 2026 18:17

@claudeclaudeBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Warning

This review may be incomplete: some analysis steps could not run due to a temporary API capacity limit.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@maxisbey
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Trim the migration guide to genuine v1-to-v2 breaking changes - #3183

Open
maxisbey wants to merge 1 commit into
mainfrom
migration-doc-cleanup
Open

Trim the migration guide to genuine v1-to-v2 breaking changes#3183
maxisbey wants to merge 1 commit into
mainfrom
migration-doc-cleanup

Conversation

@maxisbey

@maxisbeymaxisbey commented Jul 26, 2026

Copy link
Copy Markdown
Contributor

Cuts docs/migration.md down to what it is for: someone with working v1.x code that breaks (or silently changes behavior) on v2, and needs to know what to write instead. Only that file changes.

Motivation and Context

The guide had drifted into a changelog. It carried new-in-v2 feature notes, spec-adoption commentary, deprecations of APIs that still work, and internal fixes with nothing for a migrator to change, alongside genuinely stale before/after code and a fair amount of history narration ("this was X, then Y"). A porter or an agent pointed at the file had to sieve for the parts that actually apply.

What changed:

  • Removed non-migration entries (91 → 73 sections, 14 → 12 groups): the whole "Deprecations" and "Notes for 2026-era connections" groups, plus the mcp dev/mcp install pinning note, the 4 MiB body limit (also shipped on v1.x; kept as a one-clause note next to max_request_body_size), the resolver capability gate, the stdio_client shutdown rework, SEP-2352 credential binding, SEP-2350 scope unioning, lowlevel-handler registration through private attributes, the subscribe-capability advertisement fix, and the unknown-method -32601 change.
  • Corrected code and claims: e.g. the McpError section wrongly presented the top-level MCPError export as new (v1 already exported McpError from mcp) and hid that e.error still works; several after-blocks used APIs that current main has since moved past; the raise_exceptions and missing-resource sections misstated v1 behavior. Every remaining before/after block was re-run — v1 blocks against v1.x, v2 blocks against main.
  • Folded near-duplicate entries: dependency requirements, default server identity (name + version), calling MCPServer.call_tool()/get_prompt()/read_resource() directly, and the in-memory testing helper with the Client(server) mode notes.
  • Tightened prose everywhere: history lessons, hedges, and restated-code sentences removed; the "Find your changes" index and suggested migration order regenerated to match; import style standardized on from mcp.server import MCPServer.

How Has This Been Tested?

Each surviving before/after example was executed or import-checked against the corresponding tree (v1.x for "Before", main for "After"), and every intra-document anchor and relative docs link was checked. markdownlint passes.

Breaking Changes

None — documentation only.

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)
  • Documentation update

Checklist

  • I have read the MCP Documentation
  • My code follows the repository's style guidelines
  • New and existing tests pass locally
  • I have added appropriate error handling
  • I have added or updated documentation as needed

Additional context

Also touches docs/whats-new.md, but only to drop two links whose target sections this removes (the mcp dev/mcp install pinning note and the Mcp-Param-* header section) — the strict docs build aborts on missing anchors. Every other heading that another page links to was left intact.

AI Disclaimer

@cubic-dev-aicubic-dev-aiBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No issues found across 1 file

Not reviewed (too large): docs/migration.md (~2,117 lines) - if these are generated or fixture files, add them to ignored paths to exclude them from future reviews.

Tip: cubic can generate docs of your entire codebase and keep them up to date. Try it here.

Re-trigger cubic

@github-actions

github-actionsBot commented Jul 26, 2026

Copy link
Copy Markdown
Contributor

📚 Documentation preview

Previewhttps://pr-3183.mcp-python-docs.pages.dev
Deploymenthttps://9c737045.mcp-python-docs.pages.dev
Commitd0dc9bd
Triggered by@maxisbey
Updated2026-07-28 18:18:56 UTC

Comment threaddocs/migration.md Outdated

@claudeclaudeBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for fixing the two dangling whats-new.md anchors from my earlier comment — commit 426de27 resolves that, and I found no new issues this run. Still deferring to a human for a final pass, since this is a large editorial rewrite of the migration guide whose behavioral claims (which v1 examples run, what was cut as non-migration content) can't be fully verified mechanically.

What was reviewed:

  • Every cross-page link to migration.md#... anchors (7 remaining) resolves against the trimmed headings; no other page links to a deleted section.
  • Every intra-document anchor in migration.md (the "Find your changes" tables, suggested order, and inline cross-references) matches an existing heading slug.
  • Relative doc links check out; the two api/ targets are generated at build time per mkdocs.yml.
Extended reasoning...

Overview

This PR is documentation-only: it trims docs/migration.md from 91 to 73 sections, removing entries that were changelog/deprecation notes rather than genuine v1-to-v2 breaking changes, correcting several before/after code blocks, and folding near-duplicate entries. It also drops two links from docs/whats-new.md whose target sections the trim removes — the exact issue a prior run of this review flagged, now resolved by commit 426de27.

Security risks

None. No code, configuration, or CI changes — only Markdown under docs/. The removed sections include some security-adjacent content (SEP-2243 header validation, credential binding), but removing documentation of shipped behavior does not change the behavior itself.

Level of scrutiny

Docs-only changes warrant moderate scrutiny: the failure mode is misleading migration guidance, not broken software. I mechanically verified everything verifiable — all cross-page and intra-document anchors resolve, no other docs page links to a deleted section, and relative links point at real (or build-generated) files. What cannot be verified mechanically is the content accuracy of the rewritten prose and code examples: the author states every surviving before/after block was executed against v1.x and main respectively, but I cannot reproduce that here, and the judgment calls about which entries count as "genuine migration content" (e.g. dropping the SEP-2352/SEP-2350 notes and the "Notes for 2026-era connections" group entirely) are editorial decisions a maintainer should sign off on.

Other factors

The prior review cycle worked as intended: the one concrete defect (dangling anchors) was reported inline and fixed in a follow-up commit before this run. The bug hunting system found nothing further. Given the size of the rewrite (~700 changed lines in migration.md) and the repository's own AGENTS.md emphasis on migration-guide accuracy for the v2 line, a human skim of the removed and rewritten sections is the remaining review work — hence deferral rather than approval.

The guide had accumulated entries that are not v1-to-v2 migration
items: new v2 feature notes, "what did not change" reassurance
sections, spec-adoption commentary, deprecations of APIs that still
work, and internal fixes with nothing for a migrator to change. Remove
those, including the whole Deprecations group; the two deprecation
consequences a migrator does act on (warnings-as-errors test runs, and
client calls that die on the default 2026-era connection) fold into
the testing section.
Correct code that was wrong for v1.x or stale for current main --
including the `mcp.types` alias now being permanent -- and verify every
remaining before/after example against the v1.x and main trees. Reframe
the 2026-era notes as behavior changes migrated code sees on v2's
default connection, fold closely related entries together, standardize
on the documented `from mcp.server import MCPServer` and `mcp.types`
imports, regenerate the index and suggested-order blocks, and cut
history and over-explanation throughout.
Also drop two whats-new.md links whose target sections this removes
(the strict docs build aborts on missing anchors).
No-Verification-Needed: documentation-only change
@maxisbey
maxisbeyforce-pushed the migration-doc-cleanup branch from 426de27 to d0dc9bdCompareJuly 28, 2026 18:17

@claudeclaudeBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Warning

This review may be incomplete: some analysis steps could not run due to a temporary API capacity limit.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@maxisbey
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Trim the migration guide to genuine v1-to-v2 breaking changes - #3183

Open
maxisbey wants to merge 1 commit into
mainfrom
migration-doc-cleanup
Open

Trim the migration guide to genuine v1-to-v2 breaking changes#3183
maxisbey wants to merge 1 commit into
mainfrom
migration-doc-cleanup

Conversation

@maxisbey

@maxisbeymaxisbey commented Jul 26, 2026

Copy link
Copy Markdown
Contributor

Cuts docs/migration.md down to what it is for: someone with working v1.x code that breaks (or silently changes behavior) on v2, and needs to know what to write instead. Only that file changes.

Motivation and Context

The guide had drifted into a changelog. It carried new-in-v2 feature notes, spec-adoption commentary, deprecations of APIs that still work, and internal fixes with nothing for a migrator to change, alongside genuinely stale before/after code and a fair amount of history narration ("this was X, then Y"). A porter or an agent pointed at the file had to sieve for the parts that actually apply.

What changed:

  • Removed non-migration entries (91 → 73 sections, 14 → 12 groups): the whole "Deprecations" and "Notes for 2026-era connections" groups, plus the mcp dev/mcp install pinning note, the 4 MiB body limit (also shipped on v1.x; kept as a one-clause note next to max_request_body_size), the resolver capability gate, the stdio_client shutdown rework, SEP-2352 credential binding, SEP-2350 scope unioning, lowlevel-handler registration through private attributes, the subscribe-capability advertisement fix, and the unknown-method -32601 change.
  • Corrected code and claims: e.g. the McpError section wrongly presented the top-level MCPError export as new (v1 already exported McpError from mcp) and hid that e.error still works; several after-blocks used APIs that current main has since moved past; the raise_exceptions and missing-resource sections misstated v1 behavior. Every remaining before/after block was re-run — v1 blocks against v1.x, v2 blocks against main.
  • Folded near-duplicate entries: dependency requirements, default server identity (name + version), calling MCPServer.call_tool()/get_prompt()/read_resource() directly, and the in-memory testing helper with the Client(server) mode notes.
  • Tightened prose everywhere: history lessons, hedges, and restated-code sentences removed; the "Find your changes" index and suggested migration order regenerated to match; import style standardized on from mcp.server import MCPServer.

How Has This Been Tested?

Each surviving before/after example was executed or import-checked against the corresponding tree (v1.x for "Before", main for "After"), and every intra-document anchor and relative docs link was checked. markdownlint passes.

Breaking Changes

None — documentation only.

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)
  • Documentation update

Checklist

  • I have read the MCP Documentation
  • My code follows the repository's style guidelines
  • New and existing tests pass locally
  • I have added appropriate error handling
  • I have added or updated documentation as needed

Additional context

Also touches docs/whats-new.md, but only to drop two links whose target sections this removes (the mcp dev/mcp install pinning note and the Mcp-Param-* header section) — the strict docs build aborts on missing anchors. Every other heading that another page links to was left intact.

AI Disclaimer

@cubic-dev-aicubic-dev-aiBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No issues found across 1 file

Not reviewed (too large): docs/migration.md (~2,117 lines) - if these are generated or fixture files, add them to ignored paths to exclude them from future reviews.

Tip: cubic can generate docs of your entire codebase and keep them up to date. Try it here.

Re-trigger cubic

@github-actions

github-actionsBot commented Jul 26, 2026

Copy link
Copy Markdown
Contributor

📚 Documentation preview

Previewhttps://pr-3183.mcp-python-docs.pages.dev
Deploymenthttps://9c737045.mcp-python-docs.pages.dev
Commitd0dc9bd
Triggered by@maxisbey
Updated2026-07-28 18:18:56 UTC

Comment threaddocs/migration.md Outdated

@claudeclaudeBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for fixing the two dangling whats-new.md anchors from my earlier comment — commit 426de27 resolves that, and I found no new issues this run. Still deferring to a human for a final pass, since this is a large editorial rewrite of the migration guide whose behavioral claims (which v1 examples run, what was cut as non-migration content) can't be fully verified mechanically.

What was reviewed:

  • Every cross-page link to migration.md#... anchors (7 remaining) resolves against the trimmed headings; no other page links to a deleted section.
  • Every intra-document anchor in migration.md (the "Find your changes" tables, suggested order, and inline cross-references) matches an existing heading slug.
  • Relative doc links check out; the two api/ targets are generated at build time per mkdocs.yml.
Extended reasoning...

Overview

This PR is documentation-only: it trims docs/migration.md from 91 to 73 sections, removing entries that were changelog/deprecation notes rather than genuine v1-to-v2 breaking changes, correcting several before/after code blocks, and folding near-duplicate entries. It also drops two links from docs/whats-new.md whose target sections the trim removes — the exact issue a prior run of this review flagged, now resolved by commit 426de27.

Security risks

None. No code, configuration, or CI changes — only Markdown under docs/. The removed sections include some security-adjacent content (SEP-2243 header validation, credential binding), but removing documentation of shipped behavior does not change the behavior itself.

Level of scrutiny

Docs-only changes warrant moderate scrutiny: the failure mode is misleading migration guidance, not broken software. I mechanically verified everything verifiable — all cross-page and intra-document anchors resolve, no other docs page links to a deleted section, and relative links point at real (or build-generated) files. What cannot be verified mechanically is the content accuracy of the rewritten prose and code examples: the author states every surviving before/after block was executed against v1.x and main respectively, but I cannot reproduce that here, and the judgment calls about which entries count as "genuine migration content" (e.g. dropping the SEP-2352/SEP-2350 notes and the "Notes for 2026-era connections" group entirely) are editorial decisions a maintainer should sign off on.

Other factors

The prior review cycle worked as intended: the one concrete defect (dangling anchors) was reported inline and fixed in a follow-up commit before this run. The bug hunting system found nothing further. Given the size of the rewrite (~700 changed lines in migration.md) and the repository's own AGENTS.md emphasis on migration-guide accuracy for the v2 line, a human skim of the removed and rewritten sections is the remaining review work — hence deferral rather than approval.

The guide had accumulated entries that are not v1-to-v2 migration
items: new v2 feature notes, "what did not change" reassurance
sections, spec-adoption commentary, deprecations of APIs that still
work, and internal fixes with nothing for a migrator to change. Remove
those, including the whole Deprecations group; the two deprecation
consequences a migrator does act on (warnings-as-errors test runs, and
client calls that die on the default 2026-era connection) fold into
the testing section.
Correct code that was wrong for v1.x or stale for current main --
including the `mcp.types` alias now being permanent -- and verify every
remaining before/after example against the v1.x and main trees. Reframe
the 2026-era notes as behavior changes migrated code sees on v2's
default connection, fold closely related entries together, standardize
on the documented `from mcp.server import MCPServer` and `mcp.types`
imports, regenerate the index and suggested-order blocks, and cut
history and over-explanation throughout.
Also drop two whats-new.md links whose target sections this removes
(the strict docs build aborts on missing anchors).
No-Verification-Needed: documentation-only change
@maxisbey
maxisbeyforce-pushed the migration-doc-cleanup branch from 426de27 to d0dc9bdCompareJuly 28, 2026 18:17

@claudeclaudeBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Warning

This review may be incomplete: some analysis steps could not run due to a temporary API capacity limit.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@maxisbey
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Trim the migration guide to genuine v1-to-v2 breaking changes - #3183

Open
maxisbey wants to merge 1 commit into
mainfrom
migration-doc-cleanup
Open

Trim the migration guide to genuine v1-to-v2 breaking changes#3183
maxisbey wants to merge 1 commit into
mainfrom
migration-doc-cleanup

Conversation

@maxisbey

@maxisbeymaxisbey commented Jul 26, 2026

Copy link
Copy Markdown
Contributor

Cuts docs/migration.md down to what it is for: someone with working v1.x code that breaks (or silently changes behavior) on v2, and needs to know what to write instead. Only that file changes.

Motivation and Context

The guide had drifted into a changelog. It carried new-in-v2 feature notes, spec-adoption commentary, deprecations of APIs that still work, and internal fixes with nothing for a migrator to change, alongside genuinely stale before/after code and a fair amount of history narration ("this was X, then Y"). A porter or an agent pointed at the file had to sieve for the parts that actually apply.

What changed:

  • Removed non-migration entries (91 → 73 sections, 14 → 12 groups): the whole "Deprecations" and "Notes for 2026-era connections" groups, plus the mcp dev/mcp install pinning note, the 4 MiB body limit (also shipped on v1.x; kept as a one-clause note next to max_request_body_size), the resolver capability gate, the stdio_client shutdown rework, SEP-2352 credential binding, SEP-2350 scope unioning, lowlevel-handler registration through private attributes, the subscribe-capability advertisement fix, and the unknown-method -32601 change.
  • Corrected code and claims: e.g. the McpError section wrongly presented the top-level MCPError export as new (v1 already exported McpError from mcp) and hid that e.error still works; several after-blocks used APIs that current main has since moved past; the raise_exceptions and missing-resource sections misstated v1 behavior. Every remaining before/after block was re-run — v1 blocks against v1.x, v2 blocks against main.
  • Folded near-duplicate entries: dependency requirements, default server identity (name + version), calling MCPServer.call_tool()/get_prompt()/read_resource() directly, and the in-memory testing helper with the Client(server) mode notes.
  • Tightened prose everywhere: history lessons, hedges, and restated-code sentences removed; the "Find your changes" index and suggested migration order regenerated to match; import style standardized on from mcp.server import MCPServer.

How Has This Been Tested?

Each surviving before/after example was executed or import-checked against the corresponding tree (v1.x for "Before", main for "After"), and every intra-document anchor and relative docs link was checked. markdownlint passes.

Breaking Changes

None — documentation only.

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)
  • Documentation update

Checklist

  • I have read the MCP Documentation
  • My code follows the repository's style guidelines
  • New and existing tests pass locally
  • I have added appropriate error handling
  • I have added or updated documentation as needed

Additional context

Also touches docs/whats-new.md, but only to drop two links whose target sections this removes (the mcp dev/mcp install pinning note and the Mcp-Param-* header section) — the strict docs build aborts on missing anchors. Every other heading that another page links to was left intact.

AI Disclaimer

@cubic-dev-aicubic-dev-aiBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No issues found across 1 file

Not reviewed (too large): docs/migration.md (~2,117 lines) - if these are generated or fixture files, add them to ignored paths to exclude them from future reviews.

Tip: cubic can generate docs of your entire codebase and keep them up to date. Try it here.

Re-trigger cubic

@github-actions

github-actionsBot commented Jul 26, 2026

Copy link
Copy Markdown
Contributor

📚 Documentation preview

Previewhttps://pr-3183.mcp-python-docs.pages.dev
Deploymenthttps://9c737045.mcp-python-docs.pages.dev
Commitd0dc9bd
Triggered by@maxisbey
Updated2026-07-28 18:18:56 UTC

Comment threaddocs/migration.md Outdated

@claudeclaudeBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for fixing the two dangling whats-new.md anchors from my earlier comment — commit 426de27 resolves that, and I found no new issues this run. Still deferring to a human for a final pass, since this is a large editorial rewrite of the migration guide whose behavioral claims (which v1 examples run, what was cut as non-migration content) can't be fully verified mechanically.

What was reviewed:

  • Every cross-page link to migration.md#... anchors (7 remaining) resolves against the trimmed headings; no other page links to a deleted section.
  • Every intra-document anchor in migration.md (the "Find your changes" tables, suggested order, and inline cross-references) matches an existing heading slug.
  • Relative doc links check out; the two api/ targets are generated at build time per mkdocs.yml.
Extended reasoning...

Overview

This PR is documentation-only: it trims docs/migration.md from 91 to 73 sections, removing entries that were changelog/deprecation notes rather than genuine v1-to-v2 breaking changes, correcting several before/after code blocks, and folding near-duplicate entries. It also drops two links from docs/whats-new.md whose target sections the trim removes — the exact issue a prior run of this review flagged, now resolved by commit 426de27.

Security risks

None. No code, configuration, or CI changes — only Markdown under docs/. The removed sections include some security-adjacent content (SEP-2243 header validation, credential binding), but removing documentation of shipped behavior does not change the behavior itself.

Level of scrutiny

Docs-only changes warrant moderate scrutiny: the failure mode is misleading migration guidance, not broken software. I mechanically verified everything verifiable — all cross-page and intra-document anchors resolve, no other docs page links to a deleted section, and relative links point at real (or build-generated) files. What cannot be verified mechanically is the content accuracy of the rewritten prose and code examples: the author states every surviving before/after block was executed against v1.x and main respectively, but I cannot reproduce that here, and the judgment calls about which entries count as "genuine migration content" (e.g. dropping the SEP-2352/SEP-2350 notes and the "Notes for 2026-era connections" group entirely) are editorial decisions a maintainer should sign off on.

Other factors

The prior review cycle worked as intended: the one concrete defect (dangling anchors) was reported inline and fixed in a follow-up commit before this run. The bug hunting system found nothing further. Given the size of the rewrite (~700 changed lines in migration.md) and the repository's own AGENTS.md emphasis on migration-guide accuracy for the v2 line, a human skim of the removed and rewritten sections is the remaining review work — hence deferral rather than approval.

The guide had accumulated entries that are not v1-to-v2 migration
items: new v2 feature notes, "what did not change" reassurance
sections, spec-adoption commentary, deprecations of APIs that still
work, and internal fixes with nothing for a migrator to change. Remove
those, including the whole Deprecations group; the two deprecation
consequences a migrator does act on (warnings-as-errors test runs, and
client calls that die on the default 2026-era connection) fold into
the testing section.
Correct code that was wrong for v1.x or stale for current main --
including the `mcp.types` alias now being permanent -- and verify every
remaining before/after example against the v1.x and main trees. Reframe
the 2026-era notes as behavior changes migrated code sees on v2's
default connection, fold closely related entries together, standardize
on the documented `from mcp.server import MCPServer` and `mcp.types`
imports, regenerate the index and suggested-order blocks, and cut
history and over-explanation throughout.
Also drop two whats-new.md links whose target sections this removes
(the strict docs build aborts on missing anchors).
No-Verification-Needed: documentation-only change
@maxisbey
maxisbeyforce-pushed the migration-doc-cleanup branch from 426de27 to d0dc9bdCompareJuly 28, 2026 18:17

@claudeclaudeBot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Warning

This review may be incomplete: some analysis steps could not run due to a temporary API capacity limit.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@maxisbey