All notable changes to this project are documented here. The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
[Unreleased]
[0.5.2] - 2026-05-31
Fixed
- Correct the README installation snippet now that the package is published on Hex.
[0.5.1] - 2026-05-31
Changed
- Reuse
Attesto.Test.DPoPfor MCP DPoP proof fixtures so downstream MCP tests stay aligned with Attesto's published DPoP helper API.
[0.5.0] - 2026-05-31
Added
AttestoMCP.Plug.ProtectResource: a single plug composingAttestoMCP.Plug.AuthenticatethenAttestoMCP.Plug.RequireScopesinto a correctly ordered, halt-respecting pipeline, with the RFC 9728resource_metadataWWW-Authenticatechallenge auto-wired from the resource path.AttestoMCP.Routerwith theattesto_mcp_protected_resource_metadata/2Phoenix router macro, andAttestoMCP.MetadataController, serving per-resource/.well-known/oauth-protected-resource/<path>metadata plus a backwards-compatible root/.well-known/oauth-protected-resourceroute. The servedresourceidentifier matches theProtectResourcechallenge.AttestoMCP.Test.DPoPAssertions: shipped ExUnit assertions for host apps proving a DPoP-bound token presented as a plain Bearer is rejected and is accepted with a valid DPoP proof.guides/mcp_wiring.md: copy-pasteable end-to-end wiring guide.phoenixas an optional dependency (only needed byAttestoMCP.RouterandAttestoMCP.MetadataController).- Initial Plug/Phoenix authentication wrapper for protecting HTTP MCP endpoints with Attesto access-token verification, DPoP proof checks, and mTLS certificate-bound token checks.
- MCP scope convention helpers.
- OAuth protected-resource metadata builder and authorization-server metadata delegation.
- Focused tests for Bearer, DPoP, mTLS, scope enforcement, principal mapping, custom error rendering, and public assign names.