* fix: review fixes of the latest changes
* fix: updated unit tests
* chore: more conformance compliance improvements
* chore: reverted protocol changes
* chore: more compliance improvements
* chore: more conformance compliance improvements
* chore: improvements to the backcompat and updated to Tool unit tests
* chore: ci update
* 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>
* 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 plumbing to set instructions on Server
* Use instructions description from MCP schema
---------
Co-authored-by: Peter Liddle <development.peter@liddle.network>
Co-authored-by: Mattt <mattt@me.com>
* adds listResourceTemplates to client for #124
* add pagination to resources/templates/list
from @mattt
Co-authored-by: Mattt <mattt@loopwork.com>
* adds cursor functionality to ListResourceTemplates
* updates the client method to use the updated signature
---------
Co-authored-by: Mattt <mattt@loopwork.com>
* Implement client version negotiation in server initialization
* Add test coverage for version negotiation
* Make Version.supported and Version.negotiate() APIs internal to not create new surface area
* Update StdioTransport documentation comments to indicate support for JSON-RPC batches
* Add server support for JSON-RPC batching
* Add client support for JSON-RPC batching
* Fix bug that caused error messages to be wrapped unnecessarily
* Rename Error to MCPError
* Conform MCPError to Swift.Error
* Use unqualified Error instead of Swift.Error
* Use unqualified MCPError instead of MCP.MCPError
* Rename file back to Error.swift
* Introduce top-level MCP namespace with nested Error typealias to provide deprecation notice for existing usage of MCP.Error
* Fix markup for MCP enum warning
* Allow `params` field to be omitted in requests for methods with empty parameters
* Add ping request to roundtrip test
* Generalize decoding of non-required parameters
* Conform Server.Capabilities types to ExpressibleByBooleanLiteral
* Conform Client.Capabilities types to ExpressibleByBooleanLiteral
* Use Boolean literatls for capabilities in tests
* Update README
Adds a Configuration struct to control server behavior around client initialization.
When strict mode is enabled, server enforces MCP spec requiring clients to initialize
before sending requests. Default mode is more permissive for non-compliant clients.