All notable changes to this project are documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
0.2.0 - 2026-06-05
Added
- Optional OAuth 2.1 authorization (
Urchin.Auth). Urchin can act as an OAuth 2.1 resource server: RFC 9728 Protected Resource Metadata discovery (served at the well-known URI and advertised viaWWW-Authenticate: resource_metadata), pluggable token validation (Urchin.Auth.TokenValidator), RFC 8707 audience binding, scope enforcement and401/403/400challenges. Enable it with the:authoption on the transport,Urchin.EndpointorUrchin.start_link/2, or compose theUrchin.Auth.PlugandUrchin.Auth.Metadataplugs. Validated claims reach handlers asctx.auth. Authorization remains off by default.
0.1.0 - 2026-06-04
Initial release: a Model Context Protocol (MCP) server library implementing the
2025-11-25 specification over the Streamable HTTP transport.
Added
- Server authoring via the
Urchin.Serverbehaviour and atool/resource/resource_template/promptDSL with automatic capability derivation. - Tools, resources (plus templates and subscriptions), prompts, completion and logging.
- Server-initiated requests over SSE: sampling, elicitation and roots.
- Progress notifications, cancellation, pagination and resumable SSE streams.
- A mountable
Plug(Urchin.Transport.StreamableHTTP) and a standalone Bandit endpoint (Urchin.Endpoint,Urchin.start_link/2), plusUrchin.broadcast/2for fan-out notifications.