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