Skip to content

Conversation

@yehorsobko-mac
Copy link
Collaborator

@yehorsobko-mac yehorsobko-mac commented Jan 23, 2026

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

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

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

@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.

@yehorsobko-mac yehorsobko-mac force-pushed the feat/2025-11-25-phase-1 branch from 09f1dae to 20d2855 Compare January 26, 2026 18:34
name: String,
arguments: [String: Value]? = nil,
meta: Metadata? = nil
) throws -> RequestContext<CallTool.Result> {
Copy link
Collaborator

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
Collaborator Author

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.

Sign up for free to 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)

5 participants