feat: 2025-11-25 phase 1, includes Version, Icon, Progress - #181

Merged
movetz merged 12 commits into
v0.11.xfrom
feat/2025-11-25-phase-1
Feb 13, 2026
Merged

feat: 2025-11-25 phase 1, includes Version, Icon, Progress#181
movetz merged 12 commits into
v0.11.xfrom
feat/2025-11-25-phase-1

Conversation

@yehorsobko-mac

@yehorsobko-macyehorsobko-mac commented Jan 23, 2026

Copy link
Copy Markdown
Contributor

This update brings Icon to be used in Tools, Resources and Prompts. Protocol version is also updated, it doesn't mean this PR has all the features of new protocol, since it is intermediate work in progress it's ok to update it now. Progress is added to the CallToolRequest. Cancellation support.

Motivation and Context

The idea is to bring latest protocol compatibility step by step. This step brings relatively simple changes while maintaining overall codebase structure and style.

How Has This Been Tested?

I tested it locally by creating stdio mcp servers both in TS and Swift.

Breaking Changes

I guess in this part of work there's no any

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

@DePasqualeOrg

Copy link
Copy Markdown

I would just like to point out that the moment something like this gets merged, it becomes much more difficult to pursue a stacked-PR approach based on my fork due to merge conflicts.

@eugenepyvovarov

Copy link
Copy Markdown

I would just like to point out that the moment something like this gets merged, it becomes much more difficult to pursue a stacked-PR approach based on my fork due to merge conflicts.

but you were not going to merge your changes anyway

@DePasqualeOrg

Copy link
Copy Markdown

@eugenepyvovarov, it's still an open question, and there is a discussion about this on the Maintainers Discord server. I just want to point this out for the record, and others can decide on how to proceed.

name: String,
arguments: [String: Value]? = nil,
meta: Metadata? = nil
) throws -> RequestContext<CallTool.Result> {

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.

It looks like a braking change here.

  1. I think it's better to have overloaded or additional versions of the func - to keep them both:
  • RequestContext<CallTool.Result>
  • async -> RequestContext<CallTool.Result>
  • async -> (content: [Tool.Content], isError: Bool?)
  1. The cancellation token is not tool only related, it's request level. Maybe to simplify the current implementation keep it as advanced feature for now and provide it only via using send directly?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

Thanks for a comment. I added an overloaded version of callTool.

* feat: added Logging and Completions
* feat: updated EmbeddedResource for the latest spec
* chore: changed encoding of meta in Prompts to encodeIfPresent
* feat: compliance tests + http server transport (#197)
* feat: http server transport
* feat: added http server transport
* feat: removed unused files
* feat: added conformance tests
* feat: improved conformace testing
* chore: removed redundant files
@movetz
movetz merged commit 35213e0 into v0.11.xFeb 13, 2026
@movetz
movetz deleted the feat/2025-11-25-phase-1 branch February 13, 2026 10:03
yehorsobko-mac added a commit that referenced this pull request Feb 17, 2026
* chore: fixed unit tests
* feat: added icon and progess base structs
* feat: added progress notification and meta to callTool
* feat: added tests
* feat: simplified RequestMeta encoding/decoding
* tests: added unit test to track progress
* chore: rebased v0.11.x
* feat: implemented cancellation
* feat: added overloaded callTool method
* fix: encoding Response _meta fix
* chore: added old version to the versions list
* feat: 2025-11-25 phase 2; added Logging and Completions (#196)
* feat: added Logging and Completions
* feat: updated EmbeddedResource for the latest spec
* chore: changed encoding of meta in Prompts to encodeIfPresent
* feat: compliance tests + http server transport (#197)
* feat: http server transport
* feat: added http server transport
* feat: removed unused files
* feat: added conformance tests
* feat: improved conformace testing
* chore: removed redundant files
yehorsobko-mac added a commit that referenced this pull request Feb 18, 2026
* chore: fixed unit tests
* feat: added icon and progess base structs
* feat: added progress notification and meta to callTool
* feat: added tests
* feat: simplified RequestMeta encoding/decoding
* tests: added unit test to track progress
* chore: rebased v0.11.x
* feat: implemented cancellation
* feat: added overloaded callTool method
* fix: encoding Response _meta fix
* chore: added old version to the versions list
* feat: 2025-11-25 phase 2; added Logging and Completions (#196)
* feat: added Logging and Completions
* feat: updated EmbeddedResource for the latest spec
* chore: changed encoding of meta in Prompts to encodeIfPresent
* feat: compliance tests + http server transport (#197)
* feat: http server transport
* feat: added http server transport
* feat: removed unused files
* feat: added conformance tests
* feat: improved conformace testing
* chore: removed redundant files
movetz added a commit that referenced this pull request Feb 19, 2026
* Support 2025-06-18 Spec (#167)
* Support OpenAI _meta for Tool
* Update init
* Add title and outputSchema
* Concurreny issue
* General fields
* Add Generate Fields to Server elements
* 4 tab spacing
* Update Version
* Elicitation
* Format
* More tests and inits
* Elicitation in README
* Fix orphaned test
* Add title to more structs
* Public init
* Fix meta validation and make tests more generic
* Format and make Result properties public again
* Revert more visibility changes
* feat: 2025-11-25 phase 1, includes Version, Icon, Progress (#181)
* chore: fixed unit tests
* feat: added icon and progess base structs
* feat: added progress notification and meta to callTool
* feat: added tests
* feat: simplified RequestMeta encoding/decoding
* tests: added unit test to track progress
* chore: rebased v0.11.x
* feat: implemented cancellation
* feat: added overloaded callTool method
* fix: encoding Response _meta fix
* chore: added old version to the versions list
* feat: 2025-11-25 phase 2; added Logging and Completions (#196)
* feat: added Logging and Completions
* feat: updated EmbeddedResource for the latest spec
* chore: changed encoding of meta in Prompts to encodeIfPresent
* feat: compliance tests + http server transport (#197)
* feat: http server transport
* feat: added http server transport
* feat: removed unused files
* feat: added conformance tests
* feat: improved conformace testing
* chore: removed redundant files
* feat/2025-11-25: sampling, elicitation, roots (#198)
* feat: Roots implementation
* feat: added unit testing
* feat: improved unit tests and fixed NetworkTransport crash
* feat: implemented sampling and elicitation
* feat: improved sampling tests
* feat: improved elicitation tests
* feat: improved confirmance tests
* feat: improved Prompts unit tests
* feat: removed test code
* feat: updated conformance tests
* chore: removed redundant commas
* chore: removed 6.0.3 swift version from ci
* chore: improved unit tests a little bit
* chore: update README.md
* chore: add server progress tracking example to README.md
* chore: updated README.md
* chore: updated transports table formatting
* chore: updated MockNetworkConnection
---------
Co-authored-by: Austin Evans <austinjevans@me.com>
Co-authored-by: yehorsobko <yehorsobko@macpaw.com>
Velly69 added a commit to MacPaw/mcp-swift-sdk that referenced this pull request Mar 2, 2026
* Enable building with the Swift Linux SDK (modelcontextprotocol#151)
* Update README to document support for Alpine Linux (modelcontextprotocol#153)
* Adopt strict concurrency for project (modelcontextprotocol#157)
* Adopt strict concurrency for project
* Fix one warning related to that
* Add version-specific manifest for Swift 6.0
---------
Co-authored-by: Alexey Ivashko <a_ivashko@apple.com>
Co-authored-by: Mattt Zmuda <mattt@me.com>
* Make `Tool.description` optional (modelcontextprotocol#160)
* Make Tool.description optional
* Make description parameter in Tool initializer optional
* fix: allow description field to be absent from `Tool` (modelcontextprotocol#159)
* fix: allow description field to be absent from `Tool`
* description field is not a requried field of Tool
* Apply suggestions from code review
* Update Tests/MCPTests/ToolTests.swift
---------
Co-authored-by: Mattt <mattt@me.com>
* Add Mac Catalyst to target dependencies for EventSource. (modelcontextprotocol#163)
* chore: update licensing to Apache 2.0 for new contributions (modelcontextprotocol#177)
* Add SECURITY.md with GitHub Security Advisories guidance (modelcontextprotocol#200)
* V0.11.x (modelcontextprotocol#199)
* Support 2025-06-18 Spec (modelcontextprotocol#167)
* Support OpenAI _meta for Tool
* Update init
* Add title and outputSchema
* Concurreny issue
* General fields
* Add Generate Fields to Server elements
* 4 tab spacing
* Update Version
* Elicitation
* Format
* More tests and inits
* Elicitation in README
* Fix orphaned test
* Add title to more structs
* Public init
* Fix meta validation and make tests more generic
* Format and make Result properties public again
* Revert more visibility changes
* feat: 2025-11-25 phase 1, includes Version, Icon, Progress (modelcontextprotocol#181)
* chore: fixed unit tests
* feat: added icon and progess base structs
* feat: added progress notification and meta to callTool
* feat: added tests
* feat: simplified RequestMeta encoding/decoding
* tests: added unit test to track progress
* chore: rebased v0.11.x
* feat: implemented cancellation
* feat: added overloaded callTool method
* fix: encoding Response _meta fix
* chore: added old version to the versions list
* feat: 2025-11-25 phase 2; added Logging and Completions (modelcontextprotocol#196)
* feat: added Logging and Completions
* feat: updated EmbeddedResource for the latest spec
* chore: changed encoding of meta in Prompts to encodeIfPresent
* feat: compliance tests + http server transport (modelcontextprotocol#197)
* feat: http server transport
* feat: added http server transport
* feat: removed unused files
* feat: added conformance tests
* feat: improved conformace testing
* chore: removed redundant files
* feat/2025-11-25: sampling, elicitation, roots (modelcontextprotocol#198)
* feat: Roots implementation
* feat: added unit testing
* feat: improved unit tests and fixed NetworkTransport crash
* feat: implemented sampling and elicitation
* feat: improved sampling tests
* feat: improved elicitation tests
* feat: improved confirmance tests
* feat: improved Prompts unit tests
* feat: removed test code
* feat: updated conformance tests
* chore: removed redundant commas
* chore: removed 6.0.3 swift version from ci
* chore: improved unit tests a little bit
* chore: update README.md
* chore: add server progress tracking example to README.md
* chore: updated README.md
* chore: updated transports table formatting
* chore: updated MockNetworkConnection
---------
Co-authored-by: Austin Evans <austinjevans@me.com>
Co-authored-by: yehorsobko <yehorsobko@macpaw.com>
---------
Co-authored-by: Tobias <t089@users.noreply.github.com>
Co-authored-by: Mattt <mattt@me.com>
Co-authored-by: Alexey Ivashko <mcivashko@gmail.com>
Co-authored-by: Alexey Ivashko <a_ivashko@apple.com>
Co-authored-by: Yifan Liu <liuyf1117@hotmail.com>
Co-authored-by: Semen Kudriavtsev <sam@kudr.me>
Co-authored-by: adam jones <domdomegg+git@gmail.com>
Co-authored-by: Den Delimarsky <53200638+localden@users.noreply.github.com>
Co-authored-by: Maksym Mova <maks.mova@gmail.com>
Co-authored-by: Austin Evans <austinjevans@me.com>
Co-authored-by: yehorsobko <yehorsobko@macpaw.com>
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.

Implement SEP-973: Icons and metadata support Update to latest version of spec (2025-06-XX)

4 participants

@yehorsobko-mac@DePasqualeOrg@eugenepyvovarov@movetz
, '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

feat: 2025-11-25 phase 1, includes Version, Icon, Progress - #181

Merged
movetz merged 12 commits into
v0.11.xfrom
feat/2025-11-25-phase-1
Feb 13, 2026
Merged

feat: 2025-11-25 phase 1, includes Version, Icon, Progress#181
movetz merged 12 commits into
v0.11.xfrom
feat/2025-11-25-phase-1

Conversation

@yehorsobko-mac

@yehorsobko-macyehorsobko-mac commented Jan 23, 2026

Copy link
Copy Markdown
Contributor

This update brings Icon to be used in Tools, Resources and Prompts. Protocol version is also updated, it doesn't mean this PR has all the features of new protocol, since it is intermediate work in progress it's ok to update it now. Progress is added to the CallToolRequest. Cancellation support.

Motivation and Context

The idea is to bring latest protocol compatibility step by step. This step brings relatively simple changes while maintaining overall codebase structure and style.

How Has This Been Tested?

I tested it locally by creating stdio mcp servers both in TS and Swift.

Breaking Changes

I guess in this part of work there's no any

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

@DePasqualeOrg

Copy link
Copy Markdown

I would just like to point out that the moment something like this gets merged, it becomes much more difficult to pursue a stacked-PR approach based on my fork due to merge conflicts.

@eugenepyvovarov

Copy link
Copy Markdown

I would just like to point out that the moment something like this gets merged, it becomes much more difficult to pursue a stacked-PR approach based on my fork due to merge conflicts.

but you were not going to merge your changes anyway

@DePasqualeOrg

Copy link
Copy Markdown

@eugenepyvovarov, it's still an open question, and there is a discussion about this on the Maintainers Discord server. I just want to point this out for the record, and others can decide on how to proceed.

name: String,
arguments: [String: Value]? = nil,
meta: Metadata? = nil
) throws -> RequestContext<CallTool.Result> {

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.

It looks like a braking change here.

  1. I think it's better to have overloaded or additional versions of the func - to keep them both:
  • RequestContext<CallTool.Result>
  • async -> RequestContext<CallTool.Result>
  • async -> (content: [Tool.Content], isError: Bool?)
  1. The cancellation token is not tool only related, it's request level. Maybe to simplify the current implementation keep it as advanced feature for now and provide it only via using send directly?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

Thanks for a comment. I added an overloaded version of callTool.

* feat: added Logging and Completions
* feat: updated EmbeddedResource for the latest spec
* chore: changed encoding of meta in Prompts to encodeIfPresent
* feat: compliance tests + http server transport (#197)
* feat: http server transport
* feat: added http server transport
* feat: removed unused files
* feat: added conformance tests
* feat: improved conformace testing
* chore: removed redundant files
@movetz
movetz merged commit 35213e0 into v0.11.xFeb 13, 2026
@movetz
movetz deleted the feat/2025-11-25-phase-1 branch February 13, 2026 10:03
yehorsobko-mac added a commit that referenced this pull request Feb 17, 2026
* chore: fixed unit tests
* feat: added icon and progess base structs
* feat: added progress notification and meta to callTool
* feat: added tests
* feat: simplified RequestMeta encoding/decoding
* tests: added unit test to track progress
* chore: rebased v0.11.x
* feat: implemented cancellation
* feat: added overloaded callTool method
* fix: encoding Response _meta fix
* chore: added old version to the versions list
* feat: 2025-11-25 phase 2; added Logging and Completions (#196)
* feat: added Logging and Completions
* feat: updated EmbeddedResource for the latest spec
* chore: changed encoding of meta in Prompts to encodeIfPresent
* feat: compliance tests + http server transport (#197)
* feat: http server transport
* feat: added http server transport
* feat: removed unused files
* feat: added conformance tests
* feat: improved conformace testing
* chore: removed redundant files
yehorsobko-mac added a commit that referenced this pull request Feb 18, 2026
* chore: fixed unit tests
* feat: added icon and progess base structs
* feat: added progress notification and meta to callTool
* feat: added tests
* feat: simplified RequestMeta encoding/decoding
* tests: added unit test to track progress
* chore: rebased v0.11.x
* feat: implemented cancellation
* feat: added overloaded callTool method
* fix: encoding Response _meta fix
* chore: added old version to the versions list
* feat: 2025-11-25 phase 2; added Logging and Completions (#196)
* feat: added Logging and Completions
* feat: updated EmbeddedResource for the latest spec
* chore: changed encoding of meta in Prompts to encodeIfPresent
* feat: compliance tests + http server transport (#197)
* feat: http server transport
* feat: added http server transport
* feat: removed unused files
* feat: added conformance tests
* feat: improved conformace testing
* chore: removed redundant files
movetz added a commit that referenced this pull request Feb 19, 2026
* Support 2025-06-18 Spec (#167)
* Support OpenAI _meta for Tool
* Update init
* Add title and outputSchema
* Concurreny issue
* General fields
* Add Generate Fields to Server elements
* 4 tab spacing
* Update Version
* Elicitation
* Format
* More tests and inits
* Elicitation in README
* Fix orphaned test
* Add title to more structs
* Public init
* Fix meta validation and make tests more generic
* Format and make Result properties public again
* Revert more visibility changes
* feat: 2025-11-25 phase 1, includes Version, Icon, Progress (#181)
* chore: fixed unit tests
* feat: added icon and progess base structs
* feat: added progress notification and meta to callTool
* feat: added tests
* feat: simplified RequestMeta encoding/decoding
* tests: added unit test to track progress
* chore: rebased v0.11.x
* feat: implemented cancellation
* feat: added overloaded callTool method
* fix: encoding Response _meta fix
* chore: added old version to the versions list
* feat: 2025-11-25 phase 2; added Logging and Completions (#196)
* feat: added Logging and Completions
* feat: updated EmbeddedResource for the latest spec
* chore: changed encoding of meta in Prompts to encodeIfPresent
* feat: compliance tests + http server transport (#197)
* feat: http server transport
* feat: added http server transport
* feat: removed unused files
* feat: added conformance tests
* feat: improved conformace testing
* chore: removed redundant files
* feat/2025-11-25: sampling, elicitation, roots (#198)
* feat: Roots implementation
* feat: added unit testing
* feat: improved unit tests and fixed NetworkTransport crash
* feat: implemented sampling and elicitation
* feat: improved sampling tests
* feat: improved elicitation tests
* feat: improved confirmance tests
* feat: improved Prompts unit tests
* feat: removed test code
* feat: updated conformance tests
* chore: removed redundant commas
* chore: removed 6.0.3 swift version from ci
* chore: improved unit tests a little bit
* chore: update README.md
* chore: add server progress tracking example to README.md
* chore: updated README.md
* chore: updated transports table formatting
* chore: updated MockNetworkConnection
---------
Co-authored-by: Austin Evans <austinjevans@me.com>
Co-authored-by: yehorsobko <yehorsobko@macpaw.com>
Velly69 added a commit to MacPaw/mcp-swift-sdk that referenced this pull request Mar 2, 2026
* Enable building with the Swift Linux SDK (modelcontextprotocol#151)
* Update README to document support for Alpine Linux (modelcontextprotocol#153)
* Adopt strict concurrency for project (modelcontextprotocol#157)
* Adopt strict concurrency for project
* Fix one warning related to that
* Add version-specific manifest for Swift 6.0
---------
Co-authored-by: Alexey Ivashko <a_ivashko@apple.com>
Co-authored-by: Mattt Zmuda <mattt@me.com>
* Make `Tool.description` optional (modelcontextprotocol#160)
* Make Tool.description optional
* Make description parameter in Tool initializer optional
* fix: allow description field to be absent from `Tool` (modelcontextprotocol#159)
* fix: allow description field to be absent from `Tool`
* description field is not a requried field of Tool
* Apply suggestions from code review
* Update Tests/MCPTests/ToolTests.swift
---------
Co-authored-by: Mattt <mattt@me.com>
* Add Mac Catalyst to target dependencies for EventSource. (modelcontextprotocol#163)
* chore: update licensing to Apache 2.0 for new contributions (modelcontextprotocol#177)
* Add SECURITY.md with GitHub Security Advisories guidance (modelcontextprotocol#200)
* V0.11.x (modelcontextprotocol#199)
* Support 2025-06-18 Spec (modelcontextprotocol#167)
* Support OpenAI _meta for Tool
* Update init
* Add title and outputSchema
* Concurreny issue
* General fields
* Add Generate Fields to Server elements
* 4 tab spacing
* Update Version
* Elicitation
* Format
* More tests and inits
* Elicitation in README
* Fix orphaned test
* Add title to more structs
* Public init
* Fix meta validation and make tests more generic
* Format and make Result properties public again
* Revert more visibility changes
* feat: 2025-11-25 phase 1, includes Version, Icon, Progress (modelcontextprotocol#181)
* chore: fixed unit tests
* feat: added icon and progess base structs
* feat: added progress notification and meta to callTool
* feat: added tests
* feat: simplified RequestMeta encoding/decoding
* tests: added unit test to track progress
* chore: rebased v0.11.x
* feat: implemented cancellation
* feat: added overloaded callTool method
* fix: encoding Response _meta fix
* chore: added old version to the versions list
* feat: 2025-11-25 phase 2; added Logging and Completions (modelcontextprotocol#196)
* feat: added Logging and Completions
* feat: updated EmbeddedResource for the latest spec
* chore: changed encoding of meta in Prompts to encodeIfPresent
* feat: compliance tests + http server transport (modelcontextprotocol#197)
* feat: http server transport
* feat: added http server transport
* feat: removed unused files
* feat: added conformance tests
* feat: improved conformace testing
* chore: removed redundant files
* feat/2025-11-25: sampling, elicitation, roots (modelcontextprotocol#198)
* feat: Roots implementation
* feat: added unit testing
* feat: improved unit tests and fixed NetworkTransport crash
* feat: implemented sampling and elicitation
* feat: improved sampling tests
* feat: improved elicitation tests
* feat: improved confirmance tests
* feat: improved Prompts unit tests
* feat: removed test code
* feat: updated conformance tests
* chore: removed redundant commas
* chore: removed 6.0.3 swift version from ci
* chore: improved unit tests a little bit
* chore: update README.md
* chore: add server progress tracking example to README.md
* chore: updated README.md
* chore: updated transports table formatting
* chore: updated MockNetworkConnection
---------
Co-authored-by: Austin Evans <austinjevans@me.com>
Co-authored-by: yehorsobko <yehorsobko@macpaw.com>
---------
Co-authored-by: Tobias <t089@users.noreply.github.com>
Co-authored-by: Mattt <mattt@me.com>
Co-authored-by: Alexey Ivashko <mcivashko@gmail.com>
Co-authored-by: Alexey Ivashko <a_ivashko@apple.com>
Co-authored-by: Yifan Liu <liuyf1117@hotmail.com>
Co-authored-by: Semen Kudriavtsev <sam@kudr.me>
Co-authored-by: adam jones <domdomegg+git@gmail.com>
Co-authored-by: Den Delimarsky <53200638+localden@users.noreply.github.com>
Co-authored-by: Maksym Mova <maks.mova@gmail.com>
Co-authored-by: Austin Evans <austinjevans@me.com>
Co-authored-by: yehorsobko <yehorsobko@macpaw.com>
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.

Implement SEP-973: Icons and metadata support Update to latest version of spec (2025-06-XX)

4 participants

@yehorsobko-mac@DePasqualeOrg@eugenepyvovarov@movetz
, '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

feat: 2025-11-25 phase 1, includes Version, Icon, Progress - #181

Merged
movetz merged 12 commits into
v0.11.xfrom
feat/2025-11-25-phase-1
Feb 13, 2026
Merged

feat: 2025-11-25 phase 1, includes Version, Icon, Progress#181
movetz merged 12 commits into
v0.11.xfrom
feat/2025-11-25-phase-1

Conversation

@yehorsobko-mac

@yehorsobko-macyehorsobko-mac commented Jan 23, 2026

Copy link
Copy Markdown
Contributor

This update brings Icon to be used in Tools, Resources and Prompts. Protocol version is also updated, it doesn't mean this PR has all the features of new protocol, since it is intermediate work in progress it's ok to update it now. Progress is added to the CallToolRequest. Cancellation support.

Motivation and Context

The idea is to bring latest protocol compatibility step by step. This step brings relatively simple changes while maintaining overall codebase structure and style.

How Has This Been Tested?

I tested it locally by creating stdio mcp servers both in TS and Swift.

Breaking Changes

I guess in this part of work there's no any

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

@DePasqualeOrg

Copy link
Copy Markdown

I would just like to point out that the moment something like this gets merged, it becomes much more difficult to pursue a stacked-PR approach based on my fork due to merge conflicts.

@eugenepyvovarov

Copy link
Copy Markdown

I would just like to point out that the moment something like this gets merged, it becomes much more difficult to pursue a stacked-PR approach based on my fork due to merge conflicts.

but you were not going to merge your changes anyway

@DePasqualeOrg

Copy link
Copy Markdown

@eugenepyvovarov, it's still an open question, and there is a discussion about this on the Maintainers Discord server. I just want to point this out for the record, and others can decide on how to proceed.

name: String,
arguments: [String: Value]? = nil,
meta: Metadata? = nil
) throws -> RequestContext<CallTool.Result> {

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.

It looks like a braking change here.

  1. I think it's better to have overloaded or additional versions of the func - to keep them both:
  • RequestContext<CallTool.Result>
  • async -> RequestContext<CallTool.Result>
  • async -> (content: [Tool.Content], isError: Bool?)
  1. The cancellation token is not tool only related, it's request level. Maybe to simplify the current implementation keep it as advanced feature for now and provide it only via using send directly?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

Thanks for a comment. I added an overloaded version of callTool.

* feat: added Logging and Completions
* feat: updated EmbeddedResource for the latest spec
* chore: changed encoding of meta in Prompts to encodeIfPresent
* feat: compliance tests + http server transport (#197)
* feat: http server transport
* feat: added http server transport
* feat: removed unused files
* feat: added conformance tests
* feat: improved conformace testing
* chore: removed redundant files
@movetz
movetz merged commit 35213e0 into v0.11.xFeb 13, 2026
@movetz
movetz deleted the feat/2025-11-25-phase-1 branch February 13, 2026 10:03
yehorsobko-mac added a commit that referenced this pull request Feb 17, 2026
* chore: fixed unit tests
* feat: added icon and progess base structs
* feat: added progress notification and meta to callTool
* feat: added tests
* feat: simplified RequestMeta encoding/decoding
* tests: added unit test to track progress
* chore: rebased v0.11.x
* feat: implemented cancellation
* feat: added overloaded callTool method
* fix: encoding Response _meta fix
* chore: added old version to the versions list
* feat: 2025-11-25 phase 2; added Logging and Completions (#196)
* feat: added Logging and Completions
* feat: updated EmbeddedResource for the latest spec
* chore: changed encoding of meta in Prompts to encodeIfPresent
* feat: compliance tests + http server transport (#197)
* feat: http server transport
* feat: added http server transport
* feat: removed unused files
* feat: added conformance tests
* feat: improved conformace testing
* chore: removed redundant files
yehorsobko-mac added a commit that referenced this pull request Feb 18, 2026
* chore: fixed unit tests
* feat: added icon and progess base structs
* feat: added progress notification and meta to callTool
* feat: added tests
* feat: simplified RequestMeta encoding/decoding
* tests: added unit test to track progress
* chore: rebased v0.11.x
* feat: implemented cancellation
* feat: added overloaded callTool method
* fix: encoding Response _meta fix
* chore: added old version to the versions list
* feat: 2025-11-25 phase 2; added Logging and Completions (#196)
* feat: added Logging and Completions
* feat: updated EmbeddedResource for the latest spec
* chore: changed encoding of meta in Prompts to encodeIfPresent
* feat: compliance tests + http server transport (#197)
* feat: http server transport
* feat: added http server transport
* feat: removed unused files
* feat: added conformance tests
* feat: improved conformace testing
* chore: removed redundant files
movetz added a commit that referenced this pull request Feb 19, 2026
* Support 2025-06-18 Spec (#167)
* Support OpenAI _meta for Tool
* Update init
* Add title and outputSchema
* Concurreny issue
* General fields
* Add Generate Fields to Server elements
* 4 tab spacing
* Update Version
* Elicitation
* Format
* More tests and inits
* Elicitation in README
* Fix orphaned test
* Add title to more structs
* Public init
* Fix meta validation and make tests more generic
* Format and make Result properties public again
* Revert more visibility changes
* feat: 2025-11-25 phase 1, includes Version, Icon, Progress (#181)
* chore: fixed unit tests
* feat: added icon and progess base structs
* feat: added progress notification and meta to callTool
* feat: added tests
* feat: simplified RequestMeta encoding/decoding
* tests: added unit test to track progress
* chore: rebased v0.11.x
* feat: implemented cancellation
* feat: added overloaded callTool method
* fix: encoding Response _meta fix
* chore: added old version to the versions list
* feat: 2025-11-25 phase 2; added Logging and Completions (#196)
* feat: added Logging and Completions
* feat: updated EmbeddedResource for the latest spec
* chore: changed encoding of meta in Prompts to encodeIfPresent
* feat: compliance tests + http server transport (#197)
* feat: http server transport
* feat: added http server transport
* feat: removed unused files
* feat: added conformance tests
* feat: improved conformace testing
* chore: removed redundant files
* feat/2025-11-25: sampling, elicitation, roots (#198)
* feat: Roots implementation
* feat: added unit testing
* feat: improved unit tests and fixed NetworkTransport crash
* feat: implemented sampling and elicitation
* feat: improved sampling tests
* feat: improved elicitation tests
* feat: improved confirmance tests
* feat: improved Prompts unit tests
* feat: removed test code
* feat: updated conformance tests
* chore: removed redundant commas
* chore: removed 6.0.3 swift version from ci
* chore: improved unit tests a little bit
* chore: update README.md
* chore: add server progress tracking example to README.md
* chore: updated README.md
* chore: updated transports table formatting
* chore: updated MockNetworkConnection
---------
Co-authored-by: Austin Evans <austinjevans@me.com>
Co-authored-by: yehorsobko <yehorsobko@macpaw.com>
Velly69 added a commit to MacPaw/mcp-swift-sdk that referenced this pull request Mar 2, 2026
* Enable building with the Swift Linux SDK (modelcontextprotocol#151)
* Update README to document support for Alpine Linux (modelcontextprotocol#153)
* Adopt strict concurrency for project (modelcontextprotocol#157)
* Adopt strict concurrency for project
* Fix one warning related to that
* Add version-specific manifest for Swift 6.0
---------
Co-authored-by: Alexey Ivashko <a_ivashko@apple.com>
Co-authored-by: Mattt Zmuda <mattt@me.com>
* Make `Tool.description` optional (modelcontextprotocol#160)
* Make Tool.description optional
* Make description parameter in Tool initializer optional
* fix: allow description field to be absent from `Tool` (modelcontextprotocol#159)
* fix: allow description field to be absent from `Tool`
* description field is not a requried field of Tool
* Apply suggestions from code review
* Update Tests/MCPTests/ToolTests.swift
---------
Co-authored-by: Mattt <mattt@me.com>
* Add Mac Catalyst to target dependencies for EventSource. (modelcontextprotocol#163)
* chore: update licensing to Apache 2.0 for new contributions (modelcontextprotocol#177)
* Add SECURITY.md with GitHub Security Advisories guidance (modelcontextprotocol#200)
* V0.11.x (modelcontextprotocol#199)
* Support 2025-06-18 Spec (modelcontextprotocol#167)
* Support OpenAI _meta for Tool
* Update init
* Add title and outputSchema
* Concurreny issue
* General fields
* Add Generate Fields to Server elements
* 4 tab spacing
* Update Version
* Elicitation
* Format
* More tests and inits
* Elicitation in README
* Fix orphaned test
* Add title to more structs
* Public init
* Fix meta validation and make tests more generic
* Format and make Result properties public again
* Revert more visibility changes
* feat: 2025-11-25 phase 1, includes Version, Icon, Progress (modelcontextprotocol#181)
* chore: fixed unit tests
* feat: added icon and progess base structs
* feat: added progress notification and meta to callTool
* feat: added tests
* feat: simplified RequestMeta encoding/decoding
* tests: added unit test to track progress
* chore: rebased v0.11.x
* feat: implemented cancellation
* feat: added overloaded callTool method
* fix: encoding Response _meta fix
* chore: added old version to the versions list
* feat: 2025-11-25 phase 2; added Logging and Completions (modelcontextprotocol#196)
* feat: added Logging and Completions
* feat: updated EmbeddedResource for the latest spec
* chore: changed encoding of meta in Prompts to encodeIfPresent
* feat: compliance tests + http server transport (modelcontextprotocol#197)
* feat: http server transport
* feat: added http server transport
* feat: removed unused files
* feat: added conformance tests
* feat: improved conformace testing
* chore: removed redundant files
* feat/2025-11-25: sampling, elicitation, roots (modelcontextprotocol#198)
* feat: Roots implementation
* feat: added unit testing
* feat: improved unit tests and fixed NetworkTransport crash
* feat: implemented sampling and elicitation
* feat: improved sampling tests
* feat: improved elicitation tests
* feat: improved confirmance tests
* feat: improved Prompts unit tests
* feat: removed test code
* feat: updated conformance tests
* chore: removed redundant commas
* chore: removed 6.0.3 swift version from ci
* chore: improved unit tests a little bit
* chore: update README.md
* chore: add server progress tracking example to README.md
* chore: updated README.md
* chore: updated transports table formatting
* chore: updated MockNetworkConnection
---------
Co-authored-by: Austin Evans <austinjevans@me.com>
Co-authored-by: yehorsobko <yehorsobko@macpaw.com>
---------
Co-authored-by: Tobias <t089@users.noreply.github.com>
Co-authored-by: Mattt <mattt@me.com>
Co-authored-by: Alexey Ivashko <mcivashko@gmail.com>
Co-authored-by: Alexey Ivashko <a_ivashko@apple.com>
Co-authored-by: Yifan Liu <liuyf1117@hotmail.com>
Co-authored-by: Semen Kudriavtsev <sam@kudr.me>
Co-authored-by: adam jones <domdomegg+git@gmail.com>
Co-authored-by: Den Delimarsky <53200638+localden@users.noreply.github.com>
Co-authored-by: Maksym Mova <maks.mova@gmail.com>
Co-authored-by: Austin Evans <austinjevans@me.com>
Co-authored-by: yehorsobko <yehorsobko@macpaw.com>
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.

Implement SEP-973: Icons and metadata support Update to latest version of spec (2025-06-XX)

4 participants

@yehorsobko-mac@DePasqualeOrg@eugenepyvovarov@movetz
, '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

feat: 2025-11-25 phase 1, includes Version, Icon, Progress - #181

Merged
movetz merged 12 commits into
v0.11.xfrom
feat/2025-11-25-phase-1
Feb 13, 2026
Merged

feat: 2025-11-25 phase 1, includes Version, Icon, Progress#181
movetz merged 12 commits into
v0.11.xfrom
feat/2025-11-25-phase-1

Conversation

@yehorsobko-mac

@yehorsobko-macyehorsobko-mac commented Jan 23, 2026

Copy link
Copy Markdown
Contributor

This update brings Icon to be used in Tools, Resources and Prompts. Protocol version is also updated, it doesn't mean this PR has all the features of new protocol, since it is intermediate work in progress it's ok to update it now. Progress is added to the CallToolRequest. Cancellation support.

Motivation and Context

The idea is to bring latest protocol compatibility step by step. This step brings relatively simple changes while maintaining overall codebase structure and style.

How Has This Been Tested?

I tested it locally by creating stdio mcp servers both in TS and Swift.

Breaking Changes

I guess in this part of work there's no any

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

@DePasqualeOrg

Copy link
Copy Markdown

I would just like to point out that the moment something like this gets merged, it becomes much more difficult to pursue a stacked-PR approach based on my fork due to merge conflicts.

@eugenepyvovarov

Copy link
Copy Markdown

I would just like to point out that the moment something like this gets merged, it becomes much more difficult to pursue a stacked-PR approach based on my fork due to merge conflicts.

but you were not going to merge your changes anyway

@DePasqualeOrg

Copy link
Copy Markdown

@eugenepyvovarov, it's still an open question, and there is a discussion about this on the Maintainers Discord server. I just want to point this out for the record, and others can decide on how to proceed.

name: String,
arguments: [String: Value]? = nil,
meta: Metadata? = nil
) throws -> RequestContext<CallTool.Result> {

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.

It looks like a braking change here.

  1. I think it's better to have overloaded or additional versions of the func - to keep them both:
  • RequestContext<CallTool.Result>
  • async -> RequestContext<CallTool.Result>
  • async -> (content: [Tool.Content], isError: Bool?)
  1. The cancellation token is not tool only related, it's request level. Maybe to simplify the current implementation keep it as advanced feature for now and provide it only via using send directly?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

Thanks for a comment. I added an overloaded version of callTool.

* feat: added Logging and Completions
* feat: updated EmbeddedResource for the latest spec
* chore: changed encoding of meta in Prompts to encodeIfPresent
* feat: compliance tests + http server transport (#197)
* feat: http server transport
* feat: added http server transport
* feat: removed unused files
* feat: added conformance tests
* feat: improved conformace testing
* chore: removed redundant files
@movetz
movetz merged commit 35213e0 into v0.11.xFeb 13, 2026
@movetz
movetz deleted the feat/2025-11-25-phase-1 branch February 13, 2026 10:03
yehorsobko-mac added a commit that referenced this pull request Feb 17, 2026
* chore: fixed unit tests
* feat: added icon and progess base structs
* feat: added progress notification and meta to callTool
* feat: added tests
* feat: simplified RequestMeta encoding/decoding
* tests: added unit test to track progress
* chore: rebased v0.11.x
* feat: implemented cancellation
* feat: added overloaded callTool method
* fix: encoding Response _meta fix
* chore: added old version to the versions list
* feat: 2025-11-25 phase 2; added Logging and Completions (#196)
* feat: added Logging and Completions
* feat: updated EmbeddedResource for the latest spec
* chore: changed encoding of meta in Prompts to encodeIfPresent
* feat: compliance tests + http server transport (#197)
* feat: http server transport
* feat: added http server transport
* feat: removed unused files
* feat: added conformance tests
* feat: improved conformace testing
* chore: removed redundant files
yehorsobko-mac added a commit that referenced this pull request Feb 18, 2026
* chore: fixed unit tests
* feat: added icon and progess base structs
* feat: added progress notification and meta to callTool
* feat: added tests
* feat: simplified RequestMeta encoding/decoding
* tests: added unit test to track progress
* chore: rebased v0.11.x
* feat: implemented cancellation
* feat: added overloaded callTool method
* fix: encoding Response _meta fix
* chore: added old version to the versions list
* feat: 2025-11-25 phase 2; added Logging and Completions (#196)
* feat: added Logging and Completions
* feat: updated EmbeddedResource for the latest spec
* chore: changed encoding of meta in Prompts to encodeIfPresent
* feat: compliance tests + http server transport (#197)
* feat: http server transport
* feat: added http server transport
* feat: removed unused files
* feat: added conformance tests
* feat: improved conformace testing
* chore: removed redundant files
movetz added a commit that referenced this pull request Feb 19, 2026
* Support 2025-06-18 Spec (#167)
* Support OpenAI _meta for Tool
* Update init
* Add title and outputSchema
* Concurreny issue
* General fields
* Add Generate Fields to Server elements
* 4 tab spacing
* Update Version
* Elicitation
* Format
* More tests and inits
* Elicitation in README
* Fix orphaned test
* Add title to more structs
* Public init
* Fix meta validation and make tests more generic
* Format and make Result properties public again
* Revert more visibility changes
* feat: 2025-11-25 phase 1, includes Version, Icon, Progress (#181)
* chore: fixed unit tests
* feat: added icon and progess base structs
* feat: added progress notification and meta to callTool
* feat: added tests
* feat: simplified RequestMeta encoding/decoding
* tests: added unit test to track progress
* chore: rebased v0.11.x
* feat: implemented cancellation
* feat: added overloaded callTool method
* fix: encoding Response _meta fix
* chore: added old version to the versions list
* feat: 2025-11-25 phase 2; added Logging and Completions (#196)
* feat: added Logging and Completions
* feat: updated EmbeddedResource for the latest spec
* chore: changed encoding of meta in Prompts to encodeIfPresent
* feat: compliance tests + http server transport (#197)
* feat: http server transport
* feat: added http server transport
* feat: removed unused files
* feat: added conformance tests
* feat: improved conformace testing
* chore: removed redundant files
* feat/2025-11-25: sampling, elicitation, roots (#198)
* feat: Roots implementation
* feat: added unit testing
* feat: improved unit tests and fixed NetworkTransport crash
* feat: implemented sampling and elicitation
* feat: improved sampling tests
* feat: improved elicitation tests
* feat: improved confirmance tests
* feat: improved Prompts unit tests
* feat: removed test code
* feat: updated conformance tests
* chore: removed redundant commas
* chore: removed 6.0.3 swift version from ci
* chore: improved unit tests a little bit
* chore: update README.md
* chore: add server progress tracking example to README.md
* chore: updated README.md
* chore: updated transports table formatting
* chore: updated MockNetworkConnection
---------
Co-authored-by: Austin Evans <austinjevans@me.com>
Co-authored-by: yehorsobko <yehorsobko@macpaw.com>
Velly69 added a commit to MacPaw/mcp-swift-sdk that referenced this pull request Mar 2, 2026
* Enable building with the Swift Linux SDK (modelcontextprotocol#151)
* Update README to document support for Alpine Linux (modelcontextprotocol#153)
* Adopt strict concurrency for project (modelcontextprotocol#157)
* Adopt strict concurrency for project
* Fix one warning related to that
* Add version-specific manifest for Swift 6.0
---------
Co-authored-by: Alexey Ivashko <a_ivashko@apple.com>
Co-authored-by: Mattt Zmuda <mattt@me.com>
* Make `Tool.description` optional (modelcontextprotocol#160)
* Make Tool.description optional
* Make description parameter in Tool initializer optional
* fix: allow description field to be absent from `Tool` (modelcontextprotocol#159)
* fix: allow description field to be absent from `Tool`
* description field is not a requried field of Tool
* Apply suggestions from code review
* Update Tests/MCPTests/ToolTests.swift
---------
Co-authored-by: Mattt <mattt@me.com>
* Add Mac Catalyst to target dependencies for EventSource. (modelcontextprotocol#163)
* chore: update licensing to Apache 2.0 for new contributions (modelcontextprotocol#177)
* Add SECURITY.md with GitHub Security Advisories guidance (modelcontextprotocol#200)
* V0.11.x (modelcontextprotocol#199)
* Support 2025-06-18 Spec (modelcontextprotocol#167)
* Support OpenAI _meta for Tool
* Update init
* Add title and outputSchema
* Concurreny issue
* General fields
* Add Generate Fields to Server elements
* 4 tab spacing
* Update Version
* Elicitation
* Format
* More tests and inits
* Elicitation in README
* Fix orphaned test
* Add title to more structs
* Public init
* Fix meta validation and make tests more generic
* Format and make Result properties public again
* Revert more visibility changes
* feat: 2025-11-25 phase 1, includes Version, Icon, Progress (modelcontextprotocol#181)
* chore: fixed unit tests
* feat: added icon and progess base structs
* feat: added progress notification and meta to callTool
* feat: added tests
* feat: simplified RequestMeta encoding/decoding
* tests: added unit test to track progress
* chore: rebased v0.11.x
* feat: implemented cancellation
* feat: added overloaded callTool method
* fix: encoding Response _meta fix
* chore: added old version to the versions list
* feat: 2025-11-25 phase 2; added Logging and Completions (modelcontextprotocol#196)
* feat: added Logging and Completions
* feat: updated EmbeddedResource for the latest spec
* chore: changed encoding of meta in Prompts to encodeIfPresent
* feat: compliance tests + http server transport (modelcontextprotocol#197)
* feat: http server transport
* feat: added http server transport
* feat: removed unused files
* feat: added conformance tests
* feat: improved conformace testing
* chore: removed redundant files
* feat/2025-11-25: sampling, elicitation, roots (modelcontextprotocol#198)
* feat: Roots implementation
* feat: added unit testing
* feat: improved unit tests and fixed NetworkTransport crash
* feat: implemented sampling and elicitation
* feat: improved sampling tests
* feat: improved elicitation tests
* feat: improved confirmance tests
* feat: improved Prompts unit tests
* feat: removed test code
* feat: updated conformance tests
* chore: removed redundant commas
* chore: removed 6.0.3 swift version from ci
* chore: improved unit tests a little bit
* chore: update README.md
* chore: add server progress tracking example to README.md
* chore: updated README.md
* chore: updated transports table formatting
* chore: updated MockNetworkConnection
---------
Co-authored-by: Austin Evans <austinjevans@me.com>
Co-authored-by: yehorsobko <yehorsobko@macpaw.com>
---------
Co-authored-by: Tobias <t089@users.noreply.github.com>
Co-authored-by: Mattt <mattt@me.com>
Co-authored-by: Alexey Ivashko <mcivashko@gmail.com>
Co-authored-by: Alexey Ivashko <a_ivashko@apple.com>
Co-authored-by: Yifan Liu <liuyf1117@hotmail.com>
Co-authored-by: Semen Kudriavtsev <sam@kudr.me>
Co-authored-by: adam jones <domdomegg+git@gmail.com>
Co-authored-by: Den Delimarsky <53200638+localden@users.noreply.github.com>
Co-authored-by: Maksym Mova <maks.mova@gmail.com>
Co-authored-by: Austin Evans <austinjevans@me.com>
Co-authored-by: yehorsobko <yehorsobko@macpaw.com>
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.

Implement SEP-973: Icons and metadata support Update to latest version of spec (2025-06-XX)

4 participants

@yehorsobko-mac@DePasqualeOrg@eugenepyvovarov@movetz
, '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

feat: 2025-11-25 phase 1, includes Version, Icon, Progress - #181

Merged
movetz merged 12 commits into
v0.11.xfrom
feat/2025-11-25-phase-1
Feb 13, 2026
Merged

feat: 2025-11-25 phase 1, includes Version, Icon, Progress#181
movetz merged 12 commits into
v0.11.xfrom
feat/2025-11-25-phase-1

Conversation

@yehorsobko-mac

@yehorsobko-macyehorsobko-mac commented Jan 23, 2026

Copy link
Copy Markdown
Contributor

This update brings Icon to be used in Tools, Resources and Prompts. Protocol version is also updated, it doesn't mean this PR has all the features of new protocol, since it is intermediate work in progress it's ok to update it now. Progress is added to the CallToolRequest. Cancellation support.

Motivation and Context

The idea is to bring latest protocol compatibility step by step. This step brings relatively simple changes while maintaining overall codebase structure and style.

How Has This Been Tested?

I tested it locally by creating stdio mcp servers both in TS and Swift.

Breaking Changes

I guess in this part of work there's no any

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

@DePasqualeOrg

Copy link
Copy Markdown

I would just like to point out that the moment something like this gets merged, it becomes much more difficult to pursue a stacked-PR approach based on my fork due to merge conflicts.

@eugenepyvovarov

Copy link
Copy Markdown

I would just like to point out that the moment something like this gets merged, it becomes much more difficult to pursue a stacked-PR approach based on my fork due to merge conflicts.

but you were not going to merge your changes anyway

@DePasqualeOrg

Copy link
Copy Markdown

@eugenepyvovarov, it's still an open question, and there is a discussion about this on the Maintainers Discord server. I just want to point this out for the record, and others can decide on how to proceed.

name: String,
arguments: [String: Value]? = nil,
meta: Metadata? = nil
) throws -> RequestContext<CallTool.Result> {

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.

It looks like a braking change here.

  1. I think it's better to have overloaded or additional versions of the func - to keep them both:
  • RequestContext<CallTool.Result>
  • async -> RequestContext<CallTool.Result>
  • async -> (content: [Tool.Content], isError: Bool?)
  1. The cancellation token is not tool only related, it's request level. Maybe to simplify the current implementation keep it as advanced feature for now and provide it only via using send directly?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

Thanks for a comment. I added an overloaded version of callTool.

* feat: added Logging and Completions
* feat: updated EmbeddedResource for the latest spec
* chore: changed encoding of meta in Prompts to encodeIfPresent
* feat: compliance tests + http server transport (#197)
* feat: http server transport
* feat: added http server transport
* feat: removed unused files
* feat: added conformance tests
* feat: improved conformace testing
* chore: removed redundant files
@movetz
movetz merged commit 35213e0 into v0.11.xFeb 13, 2026
@movetz
movetz deleted the feat/2025-11-25-phase-1 branch February 13, 2026 10:03
yehorsobko-mac added a commit that referenced this pull request Feb 17, 2026
* chore: fixed unit tests
* feat: added icon and progess base structs
* feat: added progress notification and meta to callTool
* feat: added tests
* feat: simplified RequestMeta encoding/decoding
* tests: added unit test to track progress
* chore: rebased v0.11.x
* feat: implemented cancellation
* feat: added overloaded callTool method
* fix: encoding Response _meta fix
* chore: added old version to the versions list
* feat: 2025-11-25 phase 2; added Logging and Completions (#196)
* feat: added Logging and Completions
* feat: updated EmbeddedResource for the latest spec
* chore: changed encoding of meta in Prompts to encodeIfPresent
* feat: compliance tests + http server transport (#197)
* feat: http server transport
* feat: added http server transport
* feat: removed unused files
* feat: added conformance tests
* feat: improved conformace testing
* chore: removed redundant files
yehorsobko-mac added a commit that referenced this pull request Feb 18, 2026
* chore: fixed unit tests
* feat: added icon and progess base structs
* feat: added progress notification and meta to callTool
* feat: added tests
* feat: simplified RequestMeta encoding/decoding
* tests: added unit test to track progress
* chore: rebased v0.11.x
* feat: implemented cancellation
* feat: added overloaded callTool method
* fix: encoding Response _meta fix
* chore: added old version to the versions list
* feat: 2025-11-25 phase 2; added Logging and Completions (#196)
* feat: added Logging and Completions
* feat: updated EmbeddedResource for the latest spec
* chore: changed encoding of meta in Prompts to encodeIfPresent
* feat: compliance tests + http server transport (#197)
* feat: http server transport
* feat: added http server transport
* feat: removed unused files
* feat: added conformance tests
* feat: improved conformace testing
* chore: removed redundant files
movetz added a commit that referenced this pull request Feb 19, 2026
* Support 2025-06-18 Spec (#167)
* Support OpenAI _meta for Tool
* Update init
* Add title and outputSchema
* Concurreny issue
* General fields
* Add Generate Fields to Server elements
* 4 tab spacing
* Update Version
* Elicitation
* Format
* More tests and inits
* Elicitation in README
* Fix orphaned test
* Add title to more structs
* Public init
* Fix meta validation and make tests more generic
* Format and make Result properties public again
* Revert more visibility changes
* feat: 2025-11-25 phase 1, includes Version, Icon, Progress (#181)
* chore: fixed unit tests
* feat: added icon and progess base structs
* feat: added progress notification and meta to callTool
* feat: added tests
* feat: simplified RequestMeta encoding/decoding
* tests: added unit test to track progress
* chore: rebased v0.11.x
* feat: implemented cancellation
* feat: added overloaded callTool method
* fix: encoding Response _meta fix
* chore: added old version to the versions list
* feat: 2025-11-25 phase 2; added Logging and Completions (#196)
* feat: added Logging and Completions
* feat: updated EmbeddedResource for the latest spec
* chore: changed encoding of meta in Prompts to encodeIfPresent
* feat: compliance tests + http server transport (#197)
* feat: http server transport
* feat: added http server transport
* feat: removed unused files
* feat: added conformance tests
* feat: improved conformace testing
* chore: removed redundant files
* feat/2025-11-25: sampling, elicitation, roots (#198)
* feat: Roots implementation
* feat: added unit testing
* feat: improved unit tests and fixed NetworkTransport crash
* feat: implemented sampling and elicitation
* feat: improved sampling tests
* feat: improved elicitation tests
* feat: improved confirmance tests
* feat: improved Prompts unit tests
* feat: removed test code
* feat: updated conformance tests
* chore: removed redundant commas
* chore: removed 6.0.3 swift version from ci
* chore: improved unit tests a little bit
* chore: update README.md
* chore: add server progress tracking example to README.md
* chore: updated README.md
* chore: updated transports table formatting
* chore: updated MockNetworkConnection
---------
Co-authored-by: Austin Evans <austinjevans@me.com>
Co-authored-by: yehorsobko <yehorsobko@macpaw.com>
Velly69 added a commit to MacPaw/mcp-swift-sdk that referenced this pull request Mar 2, 2026
* Enable building with the Swift Linux SDK (modelcontextprotocol#151)
* Update README to document support for Alpine Linux (modelcontextprotocol#153)
* Adopt strict concurrency for project (modelcontextprotocol#157)
* Adopt strict concurrency for project
* Fix one warning related to that
* Add version-specific manifest for Swift 6.0
---------
Co-authored-by: Alexey Ivashko <a_ivashko@apple.com>
Co-authored-by: Mattt Zmuda <mattt@me.com>
* Make `Tool.description` optional (modelcontextprotocol#160)
* Make Tool.description optional
* Make description parameter in Tool initializer optional
* fix: allow description field to be absent from `Tool` (modelcontextprotocol#159)
* fix: allow description field to be absent from `Tool`
* description field is not a requried field of Tool
* Apply suggestions from code review
* Update Tests/MCPTests/ToolTests.swift
---------
Co-authored-by: Mattt <mattt@me.com>
* Add Mac Catalyst to target dependencies for EventSource. (modelcontextprotocol#163)
* chore: update licensing to Apache 2.0 for new contributions (modelcontextprotocol#177)
* Add SECURITY.md with GitHub Security Advisories guidance (modelcontextprotocol#200)
* V0.11.x (modelcontextprotocol#199)
* Support 2025-06-18 Spec (modelcontextprotocol#167)
* Support OpenAI _meta for Tool
* Update init
* Add title and outputSchema
* Concurreny issue
* General fields
* Add Generate Fields to Server elements
* 4 tab spacing
* Update Version
* Elicitation
* Format
* More tests and inits
* Elicitation in README
* Fix orphaned test
* Add title to more structs
* Public init
* Fix meta validation and make tests more generic
* Format and make Result properties public again
* Revert more visibility changes
* feat: 2025-11-25 phase 1, includes Version, Icon, Progress (modelcontextprotocol#181)
* chore: fixed unit tests
* feat: added icon and progess base structs
* feat: added progress notification and meta to callTool
* feat: added tests
* feat: simplified RequestMeta encoding/decoding
* tests: added unit test to track progress
* chore: rebased v0.11.x
* feat: implemented cancellation
* feat: added overloaded callTool method
* fix: encoding Response _meta fix
* chore: added old version to the versions list
* feat: 2025-11-25 phase 2; added Logging and Completions (modelcontextprotocol#196)
* feat: added Logging and Completions
* feat: updated EmbeddedResource for the latest spec
* chore: changed encoding of meta in Prompts to encodeIfPresent
* feat: compliance tests + http server transport (modelcontextprotocol#197)
* feat: http server transport
* feat: added http server transport
* feat: removed unused files
* feat: added conformance tests
* feat: improved conformace testing
* chore: removed redundant files
* feat/2025-11-25: sampling, elicitation, roots (modelcontextprotocol#198)
* feat: Roots implementation
* feat: added unit testing
* feat: improved unit tests and fixed NetworkTransport crash
* feat: implemented sampling and elicitation
* feat: improved sampling tests
* feat: improved elicitation tests
* feat: improved confirmance tests
* feat: improved Prompts unit tests
* feat: removed test code
* feat: updated conformance tests
* chore: removed redundant commas
* chore: removed 6.0.3 swift version from ci
* chore: improved unit tests a little bit
* chore: update README.md
* chore: add server progress tracking example to README.md
* chore: updated README.md
* chore: updated transports table formatting
* chore: updated MockNetworkConnection
---------
Co-authored-by: Austin Evans <austinjevans@me.com>
Co-authored-by: yehorsobko <yehorsobko@macpaw.com>
---------
Co-authored-by: Tobias <t089@users.noreply.github.com>
Co-authored-by: Mattt <mattt@me.com>
Co-authored-by: Alexey Ivashko <mcivashko@gmail.com>
Co-authored-by: Alexey Ivashko <a_ivashko@apple.com>
Co-authored-by: Yifan Liu <liuyf1117@hotmail.com>
Co-authored-by: Semen Kudriavtsev <sam@kudr.me>
Co-authored-by: adam jones <domdomegg+git@gmail.com>
Co-authored-by: Den Delimarsky <53200638+localden@users.noreply.github.com>
Co-authored-by: Maksym Mova <maks.mova@gmail.com>
Co-authored-by: Austin Evans <austinjevans@me.com>
Co-authored-by: yehorsobko <yehorsobko@macpaw.com>
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.

Implement SEP-973: Icons and metadata support Update to latest version of spec (2025-06-XX)

4 participants

@yehorsobko-mac@DePasqualeOrg@eugenepyvovarov@movetz
, '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

feat: 2025-11-25 phase 1, includes Version, Icon, Progress - #181

Merged
movetz merged 12 commits into
v0.11.xfrom
feat/2025-11-25-phase-1
Feb 13, 2026
Merged

feat: 2025-11-25 phase 1, includes Version, Icon, Progress#181
movetz merged 12 commits into
v0.11.xfrom
feat/2025-11-25-phase-1

Conversation

@yehorsobko-mac

@yehorsobko-macyehorsobko-mac commented Jan 23, 2026

Copy link
Copy Markdown
Contributor

This update brings Icon to be used in Tools, Resources and Prompts. Protocol version is also updated, it doesn't mean this PR has all the features of new protocol, since it is intermediate work in progress it's ok to update it now. Progress is added to the CallToolRequest. Cancellation support.

Motivation and Context

The idea is to bring latest protocol compatibility step by step. This step brings relatively simple changes while maintaining overall codebase structure and style.

How Has This Been Tested?

I tested it locally by creating stdio mcp servers both in TS and Swift.

Breaking Changes

I guess in this part of work there's no any

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

@DePasqualeOrg

Copy link
Copy Markdown

I would just like to point out that the moment something like this gets merged, it becomes much more difficult to pursue a stacked-PR approach based on my fork due to merge conflicts.

@eugenepyvovarov

Copy link
Copy Markdown

I would just like to point out that the moment something like this gets merged, it becomes much more difficult to pursue a stacked-PR approach based on my fork due to merge conflicts.

but you were not going to merge your changes anyway

@DePasqualeOrg

Copy link
Copy Markdown

@eugenepyvovarov, it's still an open question, and there is a discussion about this on the Maintainers Discord server. I just want to point this out for the record, and others can decide on how to proceed.

name: String,
arguments: [String: Value]? = nil,
meta: Metadata? = nil
) throws -> RequestContext<CallTool.Result> {

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.

It looks like a braking change here.

  1. I think it's better to have overloaded or additional versions of the func - to keep them both:
  • RequestContext<CallTool.Result>
  • async -> RequestContext<CallTool.Result>
  • async -> (content: [Tool.Content], isError: Bool?)
  1. The cancellation token is not tool only related, it's request level. Maybe to simplify the current implementation keep it as advanced feature for now and provide it only via using send directly?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

Thanks for a comment. I added an overloaded version of callTool.

* feat: added Logging and Completions
* feat: updated EmbeddedResource for the latest spec
* chore: changed encoding of meta in Prompts to encodeIfPresent
* feat: compliance tests + http server transport (#197)
* feat: http server transport
* feat: added http server transport
* feat: removed unused files
* feat: added conformance tests
* feat: improved conformace testing
* chore: removed redundant files
@movetz
movetz merged commit 35213e0 into v0.11.xFeb 13, 2026
@movetz
movetz deleted the feat/2025-11-25-phase-1 branch February 13, 2026 10:03
yehorsobko-mac added a commit that referenced this pull request Feb 17, 2026
* chore: fixed unit tests
* feat: added icon and progess base structs
* feat: added progress notification and meta to callTool
* feat: added tests
* feat: simplified RequestMeta encoding/decoding
* tests: added unit test to track progress
* chore: rebased v0.11.x
* feat: implemented cancellation
* feat: added overloaded callTool method
* fix: encoding Response _meta fix
* chore: added old version to the versions list
* feat: 2025-11-25 phase 2; added Logging and Completions (#196)
* feat: added Logging and Completions
* feat: updated EmbeddedResource for the latest spec
* chore: changed encoding of meta in Prompts to encodeIfPresent
* feat: compliance tests + http server transport (#197)
* feat: http server transport
* feat: added http server transport
* feat: removed unused files
* feat: added conformance tests
* feat: improved conformace testing
* chore: removed redundant files
yehorsobko-mac added a commit that referenced this pull request Feb 18, 2026
* chore: fixed unit tests
* feat: added icon and progess base structs
* feat: added progress notification and meta to callTool
* feat: added tests
* feat: simplified RequestMeta encoding/decoding
* tests: added unit test to track progress
* chore: rebased v0.11.x
* feat: implemented cancellation
* feat: added overloaded callTool method
* fix: encoding Response _meta fix
* chore: added old version to the versions list
* feat: 2025-11-25 phase 2; added Logging and Completions (#196)
* feat: added Logging and Completions
* feat: updated EmbeddedResource for the latest spec
* chore: changed encoding of meta in Prompts to encodeIfPresent
* feat: compliance tests + http server transport (#197)
* feat: http server transport
* feat: added http server transport
* feat: removed unused files
* feat: added conformance tests
* feat: improved conformace testing
* chore: removed redundant files
movetz added a commit that referenced this pull request Feb 19, 2026
* Support 2025-06-18 Spec (#167)
* Support OpenAI _meta for Tool
* Update init
* Add title and outputSchema
* Concurreny issue
* General fields
* Add Generate Fields to Server elements
* 4 tab spacing
* Update Version
* Elicitation
* Format
* More tests and inits
* Elicitation in README
* Fix orphaned test
* Add title to more structs
* Public init
* Fix meta validation and make tests more generic
* Format and make Result properties public again
* Revert more visibility changes
* feat: 2025-11-25 phase 1, includes Version, Icon, Progress (#181)
* chore: fixed unit tests
* feat: added icon and progess base structs
* feat: added progress notification and meta to callTool
* feat: added tests
* feat: simplified RequestMeta encoding/decoding
* tests: added unit test to track progress
* chore: rebased v0.11.x
* feat: implemented cancellation
* feat: added overloaded callTool method
* fix: encoding Response _meta fix
* chore: added old version to the versions list
* feat: 2025-11-25 phase 2; added Logging and Completions (#196)
* feat: added Logging and Completions
* feat: updated EmbeddedResource for the latest spec
* chore: changed encoding of meta in Prompts to encodeIfPresent
* feat: compliance tests + http server transport (#197)
* feat: http server transport
* feat: added http server transport
* feat: removed unused files
* feat: added conformance tests
* feat: improved conformace testing
* chore: removed redundant files
* feat/2025-11-25: sampling, elicitation, roots (#198)
* feat: Roots implementation
* feat: added unit testing
* feat: improved unit tests and fixed NetworkTransport crash
* feat: implemented sampling and elicitation
* feat: improved sampling tests
* feat: improved elicitation tests
* feat: improved confirmance tests
* feat: improved Prompts unit tests
* feat: removed test code
* feat: updated conformance tests
* chore: removed redundant commas
* chore: removed 6.0.3 swift version from ci
* chore: improved unit tests a little bit
* chore: update README.md
* chore: add server progress tracking example to README.md
* chore: updated README.md
* chore: updated transports table formatting
* chore: updated MockNetworkConnection
---------
Co-authored-by: Austin Evans <austinjevans@me.com>
Co-authored-by: yehorsobko <yehorsobko@macpaw.com>
Velly69 added a commit to MacPaw/mcp-swift-sdk that referenced this pull request Mar 2, 2026
* Enable building with the Swift Linux SDK (modelcontextprotocol#151)
* Update README to document support for Alpine Linux (modelcontextprotocol#153)
* Adopt strict concurrency for project (modelcontextprotocol#157)
* Adopt strict concurrency for project
* Fix one warning related to that
* Add version-specific manifest for Swift 6.0
---------
Co-authored-by: Alexey Ivashko <a_ivashko@apple.com>
Co-authored-by: Mattt Zmuda <mattt@me.com>
* Make `Tool.description` optional (modelcontextprotocol#160)
* Make Tool.description optional
* Make description parameter in Tool initializer optional
* fix: allow description field to be absent from `Tool` (modelcontextprotocol#159)
* fix: allow description field to be absent from `Tool`
* description field is not a requried field of Tool
* Apply suggestions from code review
* Update Tests/MCPTests/ToolTests.swift
---------
Co-authored-by: Mattt <mattt@me.com>
* Add Mac Catalyst to target dependencies for EventSource. (modelcontextprotocol#163)
* chore: update licensing to Apache 2.0 for new contributions (modelcontextprotocol#177)
* Add SECURITY.md with GitHub Security Advisories guidance (modelcontextprotocol#200)
* V0.11.x (modelcontextprotocol#199)
* Support 2025-06-18 Spec (modelcontextprotocol#167)
* Support OpenAI _meta for Tool
* Update init
* Add title and outputSchema
* Concurreny issue
* General fields
* Add Generate Fields to Server elements
* 4 tab spacing
* Update Version
* Elicitation
* Format
* More tests and inits
* Elicitation in README
* Fix orphaned test
* Add title to more structs
* Public init
* Fix meta validation and make tests more generic
* Format and make Result properties public again
* Revert more visibility changes
* feat: 2025-11-25 phase 1, includes Version, Icon, Progress (modelcontextprotocol#181)
* chore: fixed unit tests
* feat: added icon and progess base structs
* feat: added progress notification and meta to callTool
* feat: added tests
* feat: simplified RequestMeta encoding/decoding
* tests: added unit test to track progress
* chore: rebased v0.11.x
* feat: implemented cancellation
* feat: added overloaded callTool method
* fix: encoding Response _meta fix
* chore: added old version to the versions list
* feat: 2025-11-25 phase 2; added Logging and Completions (modelcontextprotocol#196)
* feat: added Logging and Completions
* feat: updated EmbeddedResource for the latest spec
* chore: changed encoding of meta in Prompts to encodeIfPresent
* feat: compliance tests + http server transport (modelcontextprotocol#197)
* feat: http server transport
* feat: added http server transport
* feat: removed unused files
* feat: added conformance tests
* feat: improved conformace testing
* chore: removed redundant files
* feat/2025-11-25: sampling, elicitation, roots (modelcontextprotocol#198)
* feat: Roots implementation
* feat: added unit testing
* feat: improved unit tests and fixed NetworkTransport crash
* feat: implemented sampling and elicitation
* feat: improved sampling tests
* feat: improved elicitation tests
* feat: improved confirmance tests
* feat: improved Prompts unit tests
* feat: removed test code
* feat: updated conformance tests
* chore: removed redundant commas
* chore: removed 6.0.3 swift version from ci
* chore: improved unit tests a little bit
* chore: update README.md
* chore: add server progress tracking example to README.md
* chore: updated README.md
* chore: updated transports table formatting
* chore: updated MockNetworkConnection
---------
Co-authored-by: Austin Evans <austinjevans@me.com>
Co-authored-by: yehorsobko <yehorsobko@macpaw.com>
---------
Co-authored-by: Tobias <t089@users.noreply.github.com>
Co-authored-by: Mattt <mattt@me.com>
Co-authored-by: Alexey Ivashko <mcivashko@gmail.com>
Co-authored-by: Alexey Ivashko <a_ivashko@apple.com>
Co-authored-by: Yifan Liu <liuyf1117@hotmail.com>
Co-authored-by: Semen Kudriavtsev <sam@kudr.me>
Co-authored-by: adam jones <domdomegg+git@gmail.com>
Co-authored-by: Den Delimarsky <53200638+localden@users.noreply.github.com>
Co-authored-by: Maksym Mova <maks.mova@gmail.com>
Co-authored-by: Austin Evans <austinjevans@me.com>
Co-authored-by: yehorsobko <yehorsobko@macpaw.com>
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.

Implement SEP-973: Icons and metadata support Update to latest version of spec (2025-06-XX)

4 participants

@yehorsobko-mac@DePasqualeOrg@eugenepyvovarov@movetz
, '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

feat: 2025-11-25 phase 1, includes Version, Icon, Progress - #181

Merged
movetz merged 12 commits into
v0.11.xfrom
feat/2025-11-25-phase-1
Feb 13, 2026
Merged

feat: 2025-11-25 phase 1, includes Version, Icon, Progress#181
movetz merged 12 commits into
v0.11.xfrom
feat/2025-11-25-phase-1

Conversation

@yehorsobko-mac

@yehorsobko-macyehorsobko-mac commented Jan 23, 2026

Copy link
Copy Markdown
Contributor

This update brings Icon to be used in Tools, Resources and Prompts. Protocol version is also updated, it doesn't mean this PR has all the features of new protocol, since it is intermediate work in progress it's ok to update it now. Progress is added to the CallToolRequest. Cancellation support.

Motivation and Context

The idea is to bring latest protocol compatibility step by step. This step brings relatively simple changes while maintaining overall codebase structure and style.

How Has This Been Tested?

I tested it locally by creating stdio mcp servers both in TS and Swift.

Breaking Changes

I guess in this part of work there's no any

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

@DePasqualeOrg

Copy link
Copy Markdown

I would just like to point out that the moment something like this gets merged, it becomes much more difficult to pursue a stacked-PR approach based on my fork due to merge conflicts.

@eugenepyvovarov

Copy link
Copy Markdown

I would just like to point out that the moment something like this gets merged, it becomes much more difficult to pursue a stacked-PR approach based on my fork due to merge conflicts.

but you were not going to merge your changes anyway

@DePasqualeOrg

Copy link
Copy Markdown

@eugenepyvovarov, it's still an open question, and there is a discussion about this on the Maintainers Discord server. I just want to point this out for the record, and others can decide on how to proceed.

name: String,
arguments: [String: Value]? = nil,
meta: Metadata? = nil
) throws -> RequestContext<CallTool.Result> {

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.

It looks like a braking change here.

  1. I think it's better to have overloaded or additional versions of the func - to keep them both:
  • RequestContext<CallTool.Result>
  • async -> RequestContext<CallTool.Result>
  • async -> (content: [Tool.Content], isError: Bool?)
  1. The cancellation token is not tool only related, it's request level. Maybe to simplify the current implementation keep it as advanced feature for now and provide it only via using send directly?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

Thanks for a comment. I added an overloaded version of callTool.

* feat: added Logging and Completions
* feat: updated EmbeddedResource for the latest spec
* chore: changed encoding of meta in Prompts to encodeIfPresent
* feat: compliance tests + http server transport (#197)
* feat: http server transport
* feat: added http server transport
* feat: removed unused files
* feat: added conformance tests
* feat: improved conformace testing
* chore: removed redundant files
@movetz
movetz merged commit 35213e0 into v0.11.xFeb 13, 2026
@movetz
movetz deleted the feat/2025-11-25-phase-1 branch February 13, 2026 10:03
yehorsobko-mac added a commit that referenced this pull request Feb 17, 2026
* chore: fixed unit tests
* feat: added icon and progess base structs
* feat: added progress notification and meta to callTool
* feat: added tests
* feat: simplified RequestMeta encoding/decoding
* tests: added unit test to track progress
* chore: rebased v0.11.x
* feat: implemented cancellation
* feat: added overloaded callTool method
* fix: encoding Response _meta fix
* chore: added old version to the versions list
* feat: 2025-11-25 phase 2; added Logging and Completions (#196)
* feat: added Logging and Completions
* feat: updated EmbeddedResource for the latest spec
* chore: changed encoding of meta in Prompts to encodeIfPresent
* feat: compliance tests + http server transport (#197)
* feat: http server transport
* feat: added http server transport
* feat: removed unused files
* feat: added conformance tests
* feat: improved conformace testing
* chore: removed redundant files
yehorsobko-mac added a commit that referenced this pull request Feb 18, 2026
* chore: fixed unit tests
* feat: added icon and progess base structs
* feat: added progress notification and meta to callTool
* feat: added tests
* feat: simplified RequestMeta encoding/decoding
* tests: added unit test to track progress
* chore: rebased v0.11.x
* feat: implemented cancellation
* feat: added overloaded callTool method
* fix: encoding Response _meta fix
* chore: added old version to the versions list
* feat: 2025-11-25 phase 2; added Logging and Completions (#196)
* feat: added Logging and Completions
* feat: updated EmbeddedResource for the latest spec
* chore: changed encoding of meta in Prompts to encodeIfPresent
* feat: compliance tests + http server transport (#197)
* feat: http server transport
* feat: added http server transport
* feat: removed unused files
* feat: added conformance tests
* feat: improved conformace testing
* chore: removed redundant files
movetz added a commit that referenced this pull request Feb 19, 2026
* Support 2025-06-18 Spec (#167)
* Support OpenAI _meta for Tool
* Update init
* Add title and outputSchema
* Concurreny issue
* General fields
* Add Generate Fields to Server elements
* 4 tab spacing
* Update Version
* Elicitation
* Format
* More tests and inits
* Elicitation in README
* Fix orphaned test
* Add title to more structs
* Public init
* Fix meta validation and make tests more generic
* Format and make Result properties public again
* Revert more visibility changes
* feat: 2025-11-25 phase 1, includes Version, Icon, Progress (#181)
* chore: fixed unit tests
* feat: added icon and progess base structs
* feat: added progress notification and meta to callTool
* feat: added tests
* feat: simplified RequestMeta encoding/decoding
* tests: added unit test to track progress
* chore: rebased v0.11.x
* feat: implemented cancellation
* feat: added overloaded callTool method
* fix: encoding Response _meta fix
* chore: added old version to the versions list
* feat: 2025-11-25 phase 2; added Logging and Completions (#196)
* feat: added Logging and Completions
* feat: updated EmbeddedResource for the latest spec
* chore: changed encoding of meta in Prompts to encodeIfPresent
* feat: compliance tests + http server transport (#197)
* feat: http server transport
* feat: added http server transport
* feat: removed unused files
* feat: added conformance tests
* feat: improved conformace testing
* chore: removed redundant files
* feat/2025-11-25: sampling, elicitation, roots (#198)
* feat: Roots implementation
* feat: added unit testing
* feat: improved unit tests and fixed NetworkTransport crash
* feat: implemented sampling and elicitation
* feat: improved sampling tests
* feat: improved elicitation tests
* feat: improved confirmance tests
* feat: improved Prompts unit tests
* feat: removed test code
* feat: updated conformance tests
* chore: removed redundant commas
* chore: removed 6.0.3 swift version from ci
* chore: improved unit tests a little bit
* chore: update README.md
* chore: add server progress tracking example to README.md
* chore: updated README.md
* chore: updated transports table formatting
* chore: updated MockNetworkConnection
---------
Co-authored-by: Austin Evans <austinjevans@me.com>
Co-authored-by: yehorsobko <yehorsobko@macpaw.com>
Velly69 added a commit to MacPaw/mcp-swift-sdk that referenced this pull request Mar 2, 2026
* Enable building with the Swift Linux SDK (modelcontextprotocol#151)
* Update README to document support for Alpine Linux (modelcontextprotocol#153)
* Adopt strict concurrency for project (modelcontextprotocol#157)
* Adopt strict concurrency for project
* Fix one warning related to that
* Add version-specific manifest for Swift 6.0
---------
Co-authored-by: Alexey Ivashko <a_ivashko@apple.com>
Co-authored-by: Mattt Zmuda <mattt@me.com>
* Make `Tool.description` optional (modelcontextprotocol#160)
* Make Tool.description optional
* Make description parameter in Tool initializer optional
* fix: allow description field to be absent from `Tool` (modelcontextprotocol#159)
* fix: allow description field to be absent from `Tool`
* description field is not a requried field of Tool
* Apply suggestions from code review
* Update Tests/MCPTests/ToolTests.swift
---------
Co-authored-by: Mattt <mattt@me.com>
* Add Mac Catalyst to target dependencies for EventSource. (modelcontextprotocol#163)
* chore: update licensing to Apache 2.0 for new contributions (modelcontextprotocol#177)
* Add SECURITY.md with GitHub Security Advisories guidance (modelcontextprotocol#200)
* V0.11.x (modelcontextprotocol#199)
* Support 2025-06-18 Spec (modelcontextprotocol#167)
* Support OpenAI _meta for Tool
* Update init
* Add title and outputSchema
* Concurreny issue
* General fields
* Add Generate Fields to Server elements
* 4 tab spacing
* Update Version
* Elicitation
* Format
* More tests and inits
* Elicitation in README
* Fix orphaned test
* Add title to more structs
* Public init
* Fix meta validation and make tests more generic
* Format and make Result properties public again
* Revert more visibility changes
* feat: 2025-11-25 phase 1, includes Version, Icon, Progress (modelcontextprotocol#181)
* chore: fixed unit tests
* feat: added icon and progess base structs
* feat: added progress notification and meta to callTool
* feat: added tests
* feat: simplified RequestMeta encoding/decoding
* tests: added unit test to track progress
* chore: rebased v0.11.x
* feat: implemented cancellation
* feat: added overloaded callTool method
* fix: encoding Response _meta fix
* chore: added old version to the versions list
* feat: 2025-11-25 phase 2; added Logging and Completions (modelcontextprotocol#196)
* feat: added Logging and Completions
* feat: updated EmbeddedResource for the latest spec
* chore: changed encoding of meta in Prompts to encodeIfPresent
* feat: compliance tests + http server transport (modelcontextprotocol#197)
* feat: http server transport
* feat: added http server transport
* feat: removed unused files
* feat: added conformance tests
* feat: improved conformace testing
* chore: removed redundant files
* feat/2025-11-25: sampling, elicitation, roots (modelcontextprotocol#198)
* feat: Roots implementation
* feat: added unit testing
* feat: improved unit tests and fixed NetworkTransport crash
* feat: implemented sampling and elicitation
* feat: improved sampling tests
* feat: improved elicitation tests
* feat: improved confirmance tests
* feat: improved Prompts unit tests
* feat: removed test code
* feat: updated conformance tests
* chore: removed redundant commas
* chore: removed 6.0.3 swift version from ci
* chore: improved unit tests a little bit
* chore: update README.md
* chore: add server progress tracking example to README.md
* chore: updated README.md
* chore: updated transports table formatting
* chore: updated MockNetworkConnection
---------
Co-authored-by: Austin Evans <austinjevans@me.com>
Co-authored-by: yehorsobko <yehorsobko@macpaw.com>
---------
Co-authored-by: Tobias <t089@users.noreply.github.com>
Co-authored-by: Mattt <mattt@me.com>
Co-authored-by: Alexey Ivashko <mcivashko@gmail.com>
Co-authored-by: Alexey Ivashko <a_ivashko@apple.com>
Co-authored-by: Yifan Liu <liuyf1117@hotmail.com>
Co-authored-by: Semen Kudriavtsev <sam@kudr.me>
Co-authored-by: adam jones <domdomegg+git@gmail.com>
Co-authored-by: Den Delimarsky <53200638+localden@users.noreply.github.com>
Co-authored-by: Maksym Mova <maks.mova@gmail.com>
Co-authored-by: Austin Evans <austinjevans@me.com>
Co-authored-by: yehorsobko <yehorsobko@macpaw.com>
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.

Implement SEP-973: Icons and metadata support Update to latest version of spec (2025-06-XX)

4 participants

@yehorsobko-mac@DePasqualeOrg@eugenepyvovarov@movetz
, '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

feat: 2025-11-25 phase 1, includes Version, Icon, Progress - #181

Merged
movetz merged 12 commits into
v0.11.xfrom
feat/2025-11-25-phase-1
Feb 13, 2026
Merged

feat: 2025-11-25 phase 1, includes Version, Icon, Progress#181
movetz merged 12 commits into
v0.11.xfrom
feat/2025-11-25-phase-1

Conversation

@yehorsobko-mac

@yehorsobko-macyehorsobko-mac commented Jan 23, 2026

Copy link
Copy Markdown
Contributor

This update brings Icon to be used in Tools, Resources and Prompts. Protocol version is also updated, it doesn't mean this PR has all the features of new protocol, since it is intermediate work in progress it's ok to update it now. Progress is added to the CallToolRequest. Cancellation support.

Motivation and Context

The idea is to bring latest protocol compatibility step by step. This step brings relatively simple changes while maintaining overall codebase structure and style.

How Has This Been Tested?

I tested it locally by creating stdio mcp servers both in TS and Swift.

Breaking Changes

I guess in this part of work there's no any

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

@DePasqualeOrg

Copy link
Copy Markdown

I would just like to point out that the moment something like this gets merged, it becomes much more difficult to pursue a stacked-PR approach based on my fork due to merge conflicts.

@eugenepyvovarov

Copy link
Copy Markdown

I would just like to point out that the moment something like this gets merged, it becomes much more difficult to pursue a stacked-PR approach based on my fork due to merge conflicts.

but you were not going to merge your changes anyway

@DePasqualeOrg

Copy link
Copy Markdown

@eugenepyvovarov, it's still an open question, and there is a discussion about this on the Maintainers Discord server. I just want to point this out for the record, and others can decide on how to proceed.

name: String,
arguments: [String: Value]? = nil,
meta: Metadata? = nil
) throws -> RequestContext<CallTool.Result> {

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.

It looks like a braking change here.

  1. I think it's better to have overloaded or additional versions of the func - to keep them both:
  • RequestContext<CallTool.Result>
  • async -> RequestContext<CallTool.Result>
  • async -> (content: [Tool.Content], isError: Bool?)
  1. The cancellation token is not tool only related, it's request level. Maybe to simplify the current implementation keep it as advanced feature for now and provide it only via using send directly?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

Thanks for a comment. I added an overloaded version of callTool.

* feat: added Logging and Completions
* feat: updated EmbeddedResource for the latest spec
* chore: changed encoding of meta in Prompts to encodeIfPresent
* feat: compliance tests + http server transport (#197)
* feat: http server transport
* feat: added http server transport
* feat: removed unused files
* feat: added conformance tests
* feat: improved conformace testing
* chore: removed redundant files
@movetz
movetz merged commit 35213e0 into v0.11.xFeb 13, 2026
@movetz
movetz deleted the feat/2025-11-25-phase-1 branch February 13, 2026 10:03
yehorsobko-mac added a commit that referenced this pull request Feb 17, 2026
* chore: fixed unit tests
* feat: added icon and progess base structs
* feat: added progress notification and meta to callTool
* feat: added tests
* feat: simplified RequestMeta encoding/decoding
* tests: added unit test to track progress
* chore: rebased v0.11.x
* feat: implemented cancellation
* feat: added overloaded callTool method
* fix: encoding Response _meta fix
* chore: added old version to the versions list
* feat: 2025-11-25 phase 2; added Logging and Completions (#196)
* feat: added Logging and Completions
* feat: updated EmbeddedResource for the latest spec
* chore: changed encoding of meta in Prompts to encodeIfPresent
* feat: compliance tests + http server transport (#197)
* feat: http server transport
* feat: added http server transport
* feat: removed unused files
* feat: added conformance tests
* feat: improved conformace testing
* chore: removed redundant files
yehorsobko-mac added a commit that referenced this pull request Feb 18, 2026
* chore: fixed unit tests
* feat: added icon and progess base structs
* feat: added progress notification and meta to callTool
* feat: added tests
* feat: simplified RequestMeta encoding/decoding
* tests: added unit test to track progress
* chore: rebased v0.11.x
* feat: implemented cancellation
* feat: added overloaded callTool method
* fix: encoding Response _meta fix
* chore: added old version to the versions list
* feat: 2025-11-25 phase 2; added Logging and Completions (#196)
* feat: added Logging and Completions
* feat: updated EmbeddedResource for the latest spec
* chore: changed encoding of meta in Prompts to encodeIfPresent
* feat: compliance tests + http server transport (#197)
* feat: http server transport
* feat: added http server transport
* feat: removed unused files
* feat: added conformance tests
* feat: improved conformace testing
* chore: removed redundant files
movetz added a commit that referenced this pull request Feb 19, 2026
* Support 2025-06-18 Spec (#167)
* Support OpenAI _meta for Tool
* Update init
* Add title and outputSchema
* Concurreny issue
* General fields
* Add Generate Fields to Server elements
* 4 tab spacing
* Update Version
* Elicitation
* Format
* More tests and inits
* Elicitation in README
* Fix orphaned test
* Add title to more structs
* Public init
* Fix meta validation and make tests more generic
* Format and make Result properties public again
* Revert more visibility changes
* feat: 2025-11-25 phase 1, includes Version, Icon, Progress (#181)
* chore: fixed unit tests
* feat: added icon and progess base structs
* feat: added progress notification and meta to callTool
* feat: added tests
* feat: simplified RequestMeta encoding/decoding
* tests: added unit test to track progress
* chore: rebased v0.11.x
* feat: implemented cancellation
* feat: added overloaded callTool method
* fix: encoding Response _meta fix
* chore: added old version to the versions list
* feat: 2025-11-25 phase 2; added Logging and Completions (#196)
* feat: added Logging and Completions
* feat: updated EmbeddedResource for the latest spec
* chore: changed encoding of meta in Prompts to encodeIfPresent
* feat: compliance tests + http server transport (#197)
* feat: http server transport
* feat: added http server transport
* feat: removed unused files
* feat: added conformance tests
* feat: improved conformace testing
* chore: removed redundant files
* feat/2025-11-25: sampling, elicitation, roots (#198)
* feat: Roots implementation
* feat: added unit testing
* feat: improved unit tests and fixed NetworkTransport crash
* feat: implemented sampling and elicitation
* feat: improved sampling tests
* feat: improved elicitation tests
* feat: improved confirmance tests
* feat: improved Prompts unit tests
* feat: removed test code
* feat: updated conformance tests
* chore: removed redundant commas
* chore: removed 6.0.3 swift version from ci
* chore: improved unit tests a little bit
* chore: update README.md
* chore: add server progress tracking example to README.md
* chore: updated README.md
* chore: updated transports table formatting
* chore: updated MockNetworkConnection
---------
Co-authored-by: Austin Evans <austinjevans@me.com>
Co-authored-by: yehorsobko <yehorsobko@macpaw.com>
Velly69 added a commit to MacPaw/mcp-swift-sdk that referenced this pull request Mar 2, 2026
* Enable building with the Swift Linux SDK (modelcontextprotocol#151)
* Update README to document support for Alpine Linux (modelcontextprotocol#153)
* Adopt strict concurrency for project (modelcontextprotocol#157)
* Adopt strict concurrency for project
* Fix one warning related to that
* Add version-specific manifest for Swift 6.0
---------
Co-authored-by: Alexey Ivashko <a_ivashko@apple.com>
Co-authored-by: Mattt Zmuda <mattt@me.com>
* Make `Tool.description` optional (modelcontextprotocol#160)
* Make Tool.description optional
* Make description parameter in Tool initializer optional
* fix: allow description field to be absent from `Tool` (modelcontextprotocol#159)
* fix: allow description field to be absent from `Tool`
* description field is not a requried field of Tool
* Apply suggestions from code review
* Update Tests/MCPTests/ToolTests.swift
---------
Co-authored-by: Mattt <mattt@me.com>
* Add Mac Catalyst to target dependencies for EventSource. (modelcontextprotocol#163)
* chore: update licensing to Apache 2.0 for new contributions (modelcontextprotocol#177)
* Add SECURITY.md with GitHub Security Advisories guidance (modelcontextprotocol#200)
* V0.11.x (modelcontextprotocol#199)
* Support 2025-06-18 Spec (modelcontextprotocol#167)
* Support OpenAI _meta for Tool
* Update init
* Add title and outputSchema
* Concurreny issue
* General fields
* Add Generate Fields to Server elements
* 4 tab spacing
* Update Version
* Elicitation
* Format
* More tests and inits
* Elicitation in README
* Fix orphaned test
* Add title to more structs
* Public init
* Fix meta validation and make tests more generic
* Format and make Result properties public again
* Revert more visibility changes
* feat: 2025-11-25 phase 1, includes Version, Icon, Progress (modelcontextprotocol#181)
* chore: fixed unit tests
* feat: added icon and progess base structs
* feat: added progress notification and meta to callTool
* feat: added tests
* feat: simplified RequestMeta encoding/decoding
* tests: added unit test to track progress
* chore: rebased v0.11.x
* feat: implemented cancellation
* feat: added overloaded callTool method
* fix: encoding Response _meta fix
* chore: added old version to the versions list
* feat: 2025-11-25 phase 2; added Logging and Completions (modelcontextprotocol#196)
* feat: added Logging and Completions
* feat: updated EmbeddedResource for the latest spec
* chore: changed encoding of meta in Prompts to encodeIfPresent
* feat: compliance tests + http server transport (modelcontextprotocol#197)
* feat: http server transport
* feat: added http server transport
* feat: removed unused files
* feat: added conformance tests
* feat: improved conformace testing
* chore: removed redundant files
* feat/2025-11-25: sampling, elicitation, roots (modelcontextprotocol#198)
* feat: Roots implementation
* feat: added unit testing
* feat: improved unit tests and fixed NetworkTransport crash
* feat: implemented sampling and elicitation
* feat: improved sampling tests
* feat: improved elicitation tests
* feat: improved confirmance tests
* feat: improved Prompts unit tests
* feat: removed test code
* feat: updated conformance tests
* chore: removed redundant commas
* chore: removed 6.0.3 swift version from ci
* chore: improved unit tests a little bit
* chore: update README.md
* chore: add server progress tracking example to README.md
* chore: updated README.md
* chore: updated transports table formatting
* chore: updated MockNetworkConnection
---------
Co-authored-by: Austin Evans <austinjevans@me.com>
Co-authored-by: yehorsobko <yehorsobko@macpaw.com>
---------
Co-authored-by: Tobias <t089@users.noreply.github.com>
Co-authored-by: Mattt <mattt@me.com>
Co-authored-by: Alexey Ivashko <mcivashko@gmail.com>
Co-authored-by: Alexey Ivashko <a_ivashko@apple.com>
Co-authored-by: Yifan Liu <liuyf1117@hotmail.com>
Co-authored-by: Semen Kudriavtsev <sam@kudr.me>
Co-authored-by: adam jones <domdomegg+git@gmail.com>
Co-authored-by: Den Delimarsky <53200638+localden@users.noreply.github.com>
Co-authored-by: Maksym Mova <maks.mova@gmail.com>
Co-authored-by: Austin Evans <austinjevans@me.com>
Co-authored-by: yehorsobko <yehorsobko@macpaw.com>
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.

Implement SEP-973: Icons and metadata support Update to latest version of spec (2025-06-XX)

4 participants

@yehorsobko-mac@DePasqualeOrg@eugenepyvovarov@movetz