All notable changes to the Raku MCP SDK are documented in this file.
- End-to-end integration test over stdio (
t/17-integration-stdio.rakutest): spawns MCP server subprocess, tests full protocol lifecycle
- Fez publish in release workflow: use
jqinstead ofraku -MJSON::Fastfor config patching (JSON::Fast not in default lib path on CI runners)
- Fuzz testing for JSON-RPC parsing (
t/16-fuzz-jsonrpc.rakutest): invalid JSON, type confusion, adversarial values, 100 randomized payloads - Stress tests for concurrent operations (
make stress) - Project governance: SECURITY.md, CODE_OF_CONDUCT.md, issue/PR templates, README badges
- ARCHITECTURE.md prose walkthrough of module structure, data flow, and concurrency model
- Expanded perldoc on all 15 public API modules
- CHANGELOG.md
- Fez publish in release workflow: inject
Fez::Util::Curlrequestor into fez config when missing
- Performance benchmarks: JSON-RPC parsing/serialization throughput, dispatch latency, concurrent scaling (
make benchmark) - Configurable scheme on SSE transport (no longer hardcoded to HTTP)
- Race conditions in Client
%!pending-requests(added$!request-lock) - Race conditions in Server
%!in-flight-requestsand%!tasks(added$!flight-lock,$!task-lock) - Flaky SSE endpoint test replaced
start { react { whenever } }with synchronous.tap() - Handler exceptions sanitized before sending to clients (no longer leaks internal details)
- PKCE verifier cleared from memory immediately after token exchange (single-use per RFC 7636)
- Bumped Rakudo from 2024.01 to 2024.12 in CI and release workflows
- CI now includes coverage job with 70% threshold
- README rewritten quality section as implemented features rather than task list
- Icons and title metadata on Tool, Resource, Prompt, ResourceTemplate, and Implementation (SEP-973)
- Expanded test coverage for progress tracking, error edge cases, and concurrent operations
IconDefinitiontype withsrc,mimeType, andsizesfields.title()and.icon()builder methods on all primitive builders
- Gap analysis and status docs updated to reflect full specification coverage
- Legacy SSE transport for backwards compatibility with MCP spec 2024-11-05
- Enterprise IdP policy controls (SEP-990)
- OAuth client credentials for machine-to-machine authentication (SEP-1046)
- Dynamic client registration for OAuth
- Documentation cleanup: corrected completeness claims, added SSE references
- Progress token support with
$*MCP-PROGRESS-TOKENdynamic variable - Client-side progress Supply for typed Progress objects
- Logging level setting via
logging/setLeveland clientset-log-level - Protocol version negotiation across 2024-11-05, 2025-03-26, and 2025-11-25
- Tool name validation per SEP-986 (1-64 chars,
[a-zA-Z0-9_-]) - Resource templates with URI template pattern matching and builder API
- Prompt and resource list-changed notifications
- Extensions framework with capability negotiation and method dispatch
- Extension registration,
experimentalcapabilities advertising
- Sampling with tools (SEP-1577):
tools,toolChoice,includeContextin createMessage - Tasks framework for long-running async tool execution with status polling and cancellation
- OAuth 2.1 authorization: PKCE, token management, server validation, metadata discovery
- Tool output schemas with
outputSchemaandstructuredContentfor structured results - Completion/autocomplete support with prompt and resource completers
- Elicitation support (form and URL modes) with handler callbacks
- Streamable HTTP transport with session management, SSE streaming, and resumption
- Roots support: client roots configuration, server
list-roots,set-roots - Resource subscriptions: subscribe, unsubscribe, update notifications
- Request cancellation with
notifications/cancelled - Pagination support for all list endpoints (tools, resources, prompts)
- Tool and resource annotations with builder API
- Updated to MCP protocol version 2025-11-25
- Initial implementation
- JSON-RPC 2.0 message handling
- Stdio transport
- Tools, Resources, Prompts with builder API
- Server and Client initialization
- MCP protocol types and capabilities