') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ', 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ', 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ', 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); })(); chore: release v0.13.0 by alexhancock · Pull Request #620 · modelcontextprotocol/rust-sdk · GitHub
Skip to content

chore: release v0.13.0 - #620

Merged
alexhancock merged 1 commit into
mainfrom
release-plz-2026-01-14T19-36-03Z
Jan 15, 2026
Merged

chore: release v0.13.0#620
alexhancock merged 1 commit into
mainfrom
release-plz-2026-01-14T19-36-03Z

Conversation

@alexhancock

@alexhancockalexhancock commented Jan 14, 2026

Copy link
Copy Markdown
Contributor

🤖 New release

  • rmcp-macros: 0.12.0 -> 0.13.0
  • rmcp: 0.12.0 -> 0.13.0 (⚠ API breaking changes)

rmcp breaking changes

--- failure constructible_struct_adds_field: externally-constructible struct adds field ---
Description:
A pub struct constructible with a struct literal has a new pub field. Existing struct literals must be updated to include the new field.
ref: https://doc.rust-lang.org/reference/expressions/struct-expr.html
impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.45.0/src/lints/constructible_struct_adds_field.ron
Failed in:
field StreamableHttpServerConfig.sse_retry in /tmp/.tmp4gVt2S/rust-sdk/crates/rmcp/src/transport/streamable_http_server/tower.rs:36
field StreamableHttpServerConfig.sse_retry in /tmp/.tmp4gVt2S/rust-sdk/crates/rmcp/src/transport/streamable_http_server/tower.rs:36
field StreamableHttpServerConfig.sse_retry in /tmp/.tmp4gVt2S/rust-sdk/crates/rmcp/src/transport/streamable_http_server/tower.rs:36
field ClientCapabilitiesBuilder.tasks in /tmp/.tmp4gVt2S/rust-sdk/crates/rmcp/src/model/capabilities.rs:294
field RawResourceTemplate.icons in /tmp/.tmp4gVt2S/rust-sdk/crates/rmcp/src/model/resource.rs:53
field CallToolRequestParam.task in /tmp/.tmp4gVt2S/rust-sdk/crates/rmcp/src/model.rs:1711
field ServerSseMessage.retry in /tmp/.tmp4gVt2S/rust-sdk/crates/rmcp/src/transport/common/server_side_http.rs:70
field ClientCapabilities.tasks in /tmp/.tmp4gVt2S/rust-sdk/crates/rmcp/src/model/capabilities.rs:101
field ServerCapabilitiesBuilder.tasks in /tmp/.tmp4gVt2S/rust-sdk/crates/rmcp/src/model/capabilities.rs:242
field ToolCallContext.task in /tmp/.tmp4gVt2S/rust-sdk/crates/rmcp/src/handler/server/tool.rs:36
field ServerCapabilities.tasks in /tmp/.tmp4gVt2S/rust-sdk/crates/rmcp/src/model/capabilities.rs:134
--- failure enum_variant_added: enum variant added on exhaustive enum ---
Description:
A publicly-visible enum without #[non_exhaustive] has a new variant.
ref: https://doc.rust-lang.org/cargo/reference/semver.html#enum-variant-new
impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.45.0/src/lints/enum_variant_added.ron
Failed in:
variant SessionEvent:CloseSseStream in /tmp/.tmp4gVt2S/rust-sdk/crates/rmcp/src/transport/streamable_http_server/session/local.rs:616
variant ClientRequest:GetTaskInfoRequest in /tmp/.tmp4gVt2S/rust-sdk/crates/rmcp/src/model.rs:1857
variant ClientRequest:ListTasksRequest in /tmp/.tmp4gVt2S/rust-sdk/crates/rmcp/src/model.rs:1857
variant ClientRequest:GetTaskResultRequest in /tmp/.tmp4gVt2S/rust-sdk/crates/rmcp/src/model.rs:1857
variant ClientRequest:CancelTaskRequest in /tmp/.tmp4gVt2S/rust-sdk/crates/rmcp/src/model.rs:1857
variant RmcpError:TaskError in /tmp/.tmp4gVt2S/rust-sdk/crates/rmcp/src/error.rs:48
variant ClientInitializeError:JsonRpcError in /tmp/.tmp4gVt2S/rust-sdk/crates/rmcp/src/service/client.rs:48
variant ServerResult:CreateTaskResult in /tmp/.tmp4gVt2S/rust-sdk/crates/rmcp/src/model.rs:1951
variant ServerResult:ListTasksResult in /tmp/.tmp4gVt2S/rust-sdk/crates/rmcp/src/model.rs:1951
variant ServerResult:GetTaskInfoResult in /tmp/.tmp4gVt2S/rust-sdk/crates/rmcp/src/model.rs:1951
variant ServerResult:TaskResult in /tmp/.tmp4gVt2S/rust-sdk/crates/rmcp/src/model.rs:1951
--- failure feature_missing: package feature removed or renamed ---
Description:
A feature has been removed from this package's Cargo.toml. This will break downstream crates which enable that feature.
ref: https://doc.rust-lang.org/cargo/reference/semver.html#cargo-feature-remove
impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.45.0/src/lints/feature_missing.ron
Failed in:
feature axum in the package's Cargo.toml
--- failure inherent_method_missing: pub method removed or renamed ---
Description:
A publicly-visible method or associated fn is no longer available under its prior name. It may have been renamed or removed entirely.
ref: https://doc.rust-lang.org/cargo/reference/semver.html#item-remove
impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.45.0/src/lints/inherent_method_missing.ron
Failed in:
EnumSchema::new, previously in file /tmp/.tmpKum4Ce/rmcp/src/model/elicitation_schema.rs:498
EnumSchema::enum_names, previously in file /tmp/.tmpKum4Ce/rmcp/src/model/elicitation_schema.rs:509
EnumSchema::title, previously in file /tmp/.tmpKum4Ce/rmcp/src/model/elicitation_schema.rs:515
EnumSchema::description, previously in file /tmp/.tmpKum4Ce/rmcp/src/model/elicitation_schema.rs:521
--- failure struct_with_pub_fields_changed_type: struct with pub fields became an enum or union ---
Description:
A struct with pub fields became an enum or union, breaking accesses to its public fields.
ref: https://github.com/obi1kenobi/cargo-semver-checks/issues/297#issuecomment-1399099659
impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.45.0/src/lints/struct_with_pub_fields_changed_type.ron
Failed in:
struct rmcp::model::EnumSchema became enum in file /tmp/.tmp4gVt2S/rust-sdk/crates/rmcp/src/model/elicitation_schema.rs:629
Changelog

rmcp-macros

0.13.0 - 2026-01-15

Added

  • (task) add task support (SEP-1686) (#536)

Fixed

  • (docs) add spreadsheet-mcp to Built with rmcp (#582)

Other

  • update README external links (#603)
  • clarity and formatting (#602)

rmcp

0.13.0 - 2026-01-15

Added

  • provide blanket implementations for ClientHandler and ServerHandler traits (#609)
  • (service) add close() method for graceful connection shutdown (#588)
  • (auth) add StateStore trait for pluggable OAuth state storage (#614)
  • (elicitation) implement SEP-1330 Elicitation Enum Schema Improvements (#539)
  • (task) add task support (SEP-1686) (#536)

Fixed

  • use the json rpc error from the initialize response and bubble it up to the client (#569)
  • (build) fix build of the project when no features are selected (#606)
  • use Semaphore instead of Notify in OneshotTransport to prevent race condition (#611)
  • add OpenID Connect discovery support per spec-2025-11-25 4.3 (#598)
  • only try to refresh access tokens if we have a refresh token or an expiry time (#594)
  • (docs) add spreadsheet-mcp to Built with rmcp (#582)

Other

  • (elicitation) improve enum schema builder, small changes of elicitation builder (#608)
  • add pre-commit hook for conventional commit verification (#619)
  • clean up optional dependencies (#546)
  • re-export ServerSseMessage from session module (#612)
  • Implement SEP-1699: Support SSE Polling via Server-Side Disconnect (#604)
  • update README external links (#603)
  • clarity and formatting (#602)
  • Add optional icons field to RawResourceTemplate (#589)


This PR was generated with release-plz.

@github-actionsgithub-actionsBot added T-documentation Documentation improvements T-dependencies Dependencies related changes T-config Configuration file changes T-macros Macro changes labels Jan 14, 2026
@alexhancockalexhancock changed the title chore: release v0.12.1chore: release v0.13.0Jan 14, 2026
@alexhancock
alexhancockforce-pushed the release-plz-2026-01-14T19-36-03Z branch from 768cc0a to 9272239CompareJanuary 14, 2026 19:39
jamadeo
jamadeo previously approved these changes Jan 14, 2026
@github-actions
github-actionsBotforce-pushed the release-plz-2026-01-14T19-36-03Z branch from 0d21b71 to b0ece48CompareJanuary 15, 2026 01:56
@alexhancock

Copy link
Copy Markdown
ContributorAuthor

@jokemanfire@jamadeo@4t145 can anyone stamp this? I had to make it manually as the action stopped working. Therefor I cannot be the approver

@alexhancock
alexhancock merged commit 48e989b into mainJan 15, 2026
ra0x3 pushed a commit to ra0x3/mcpkit-rs that referenced this pull request Jan 15, 2026
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
takumi-earth pushed a commit to earthlings-dev/rmcp that referenced this pull request Jan 27, 2026
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

T-configConfiguration file changesT-dependenciesDependencies related changesT-documentationDocumentation improvementsT-macrosMacro changes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@alexhancock@jamadeo