- Fixed missing string representations of client and transports - @thekid
- Fixed error handling for unrouted MCP requests - @thekid
- Merged PR #20: Make it possible to supply meta data for discovery and resources. (@thekid)
- Fixed
io.modelcontextprotocol.EventStreamimplementation when given input stream does not also implementlang.Value(@thekid) - Fixed initialization being rerun on first call when invoking the
initialize()method manually (@thekid)
- Fixed JSON deserialization in standard I/O and event streams, using
the
xp-forge/jsonlibrary (@thekid) - Merged PR #18: Make it possible to supply custom headers along with StreamableHttp (@thekid)
- Fixed client interactions with MCP servers not running under
/(@thekid)
- Fixed
UseSessionsnot correctly writing sessions with delayed persistence (@thekid) - Merged PR #17: New
io.modelcontextprotocol.server.Resultclass giving fine-grained control over tool-call results, see #13. (@thekid)
- Added unhandled exceptions to server logfile, implementing feature suggest in issue #15 (@thekid)
- Fixed issue #16: Empty parameters being serialized as array, not as object, by adding a requirement on the xp-forge/json library 6.0+ (@thekid)
- Renamed UseSession to
UseSessionsto clarify usage - @thekid - Merged PR #14: Pass scopes requested during /authorize - @thekid
- Heads up: Require
xp-forge/sessionsversion 4.0+ - @thekid
- Made compatible with
xp-forge/web-authversion 7.0 - @thekid
- Continue OAuth without creating duplicate sessions, see this comment: #11 (comment) (@thekid)
- Added support for
oauth-protected-resourcemetadata (RFC 9728) (@thekid) - Added PHP 8.6 to the test matrix - @thekid
- Renamed meta() to metadata() in
OAuth2Gatewayfor consistency with wording used in the specification and e.g.WWW-Authenticate. (@thekid) - Merged PR #12: Add OAuth2 gateway to implement authorization for MCP (@thekid)
- Fixed issue #10: Error: Expected string for description, by using a default value composed from the namespace and method name (@thekid)
- Merged PR #9: Add possibility to access request values via
#[Value](@thekid)
- Merged PR #7: Support multiple delegates via
Delegatesclass (@thekid) - Added string representations for errors, results and event streams (@thekid)
- Merged PR #6: Extract JSON RPC implementation into dedicated class (@thekid)
- Passed complete response body to
CallFailedconstructor to simplify debugging protocol errors (@thekid) - Bumped default protocol version to
2025-06-18, pass negotiated version viaMCP-Protocol-Versionwhen using HTTP. (@thekid) - Fixed issue #5: Mounting MCP servers to subpaths. Accomplished by delegating this to the routing mechanism (@thekid)
- Merged PR #4: Implement MCP server API. This adds support for adding an MCP endpoint into an https://github.com/xp-forge/web application. (@thekid)
- Merged PR #3: Return an Authorization instance from
initialize()(@thekid) - Handle session termination by server, starting a new session by sending and initialize request (@thekid)
- Changed
initialize()to return a Result instance instead of raising an error, adding the ability to handle missing authentication gracefully (@thekid) - Call
DELETEon the MCP endpoint if an MCP session ID is established (@thekid)
- Fixed issue #1: Standard I/O default line limit (8192 bytes) exceeded (@thekid)
- Renamed first() -> value() to more accurately match what is being returned (@thekid)
- Hello World! First release - @thekid