Changelog
Copy MarkdownAll notable changes to this project are documented in this file.
1.14.0 (2026-07-30)
Features
- mcp: route message encode and validation through the negotiated protocol module (c327da7)
- protocol: widen behaviour into full dialect contract (fcefb88)
- transport: formalize transport-session contract as public behaviour (784452d)
Bug Fixes
- server: route SSE notifications across nodes via pg (cfb8635)
1.13.0 (2026-07-29)
Bug Fixes
- server: reject unknown sessions on the request path instead of silent auto-recovery (b2db47f), closes #204
Code Refactoring
- session: extract request scheduler (88b0cce), closes #253
- session: extract server-initiated request engine (8b877af), closes #253
- session: extract tasks runtime (ff6047c), closes #253
1.12.0 (2026-07-29)
Features
Bug Fixes
- client: handle session_expired cast from streamable HTTP transport (59a8896), closes #264
- client: store negotiated protocol version from initialize response (3cdba16), closes #249
- transport: send and validate MCP-Protocol-Version header (fe6b767), closes #250
Code Refactoring
1.11.0 (2026-07-29)
Features
Bug Fixes
- prompts: wrap prompt content objects and map system_message to user role (#234) (2451bb7)
- server: make title option compile in use Anubis.Server.Component (b04feed)
- server: use restart :temporary for session processes (#240) (30bc4f5)
- sse: buffer partial events across Finch chunks (#245) (beea2f6)
- Stream the client SSE GET instead of buffering it (server push never delivered) (#231) (a722c1b)
- telemetry: expose tool call success/failure in tool_call span metadata (#246) (ace5ecb)
- telemetry: include client_info in initialize response event metadata (#248) (74ed457)
- telemetry: namespace tool_call span under :anubis_mcp (#244) (561a96b)
Tests
- server: fix stale tool_call event name and function_exported? loading races (7247d2c)
- transport: synchronize held SSE plug with Bypass teardown (93c5a34)
Continuous Integration
- fix dialyzer plt caching (8424439)
1.10.0 (2026-07-17)
Features
- add _meta field and refresh persisted session TTL (677a186)
Bug Fixes
1.9.0 (2026-07-16)
Features
- streamable_http: add spec resumability (Last-Event-ID replay) (#216) (78e33b4)
- support pre_initialized sessions for cross-pod restore (#187) (13be0d7)
Bug Fixes
- session: return encodable JSON-RPC errors when init/2 fails (#211) (f9af7cc)
- streamable_http: emit telemetry on SSE handler registration (#217) (4a4c528)
- streamable_http: restore session from store on notif/resp registry miss (#221) (d757b39)
- streamable_http: return correct JSON-RPC error codes for parse failures (#222) (1867994)
1.8.0 (2026-07-16)
This release focuses on simplifying the runtime footprint and giving consumers more control over networking.
⚠️ Breaking change: the Application callback and the bundled CLI have been removed. If you relied on anubis_mcp starting supervision trees or processes automatically via application/0, you'll now need to start the relevant components explicitly in your own supervision tree. See the updated README and Introduction guide for the new setup.
Alongside that, the Finch HTTP pool is now injectable, so you can plug in your own pool configuration (name, size, pool options) instead of relying on a globally started pool - handy for apps that already manage their own Finch instances or need per-tenant pools.
On the housekeeping side, example apps moved out of lib/ into a dedicated root-level folder to keep the library package lean, and CI now publishes the Hex package using Elixir 1.20.2.
Features
- add a serialize_assigns callback for server (1059119), closes #199
- drop Application callback + CLI, make Finch pool injectable (#224) (b92a131)
Bug Fixes
- correctly append 2025-11-25 version to http transport (889fa79), closes #220
- correctly truncate tools args (4e9288c)
- dedup protocol schema definitions (a0314a2), closes #157
Documentation
- revamp and rewrite (0f459bb)
Miscellaneous Chores
Continuous Integration
- use elixir 1.20.2 to publish hex pkg (a4d5f3c)
1.7.0 (2026-07-16)
Features
Bug Fixes
- Forward configured :headers on the DELETE session-teardown request (follow-up to #180) (#213) (b32134a)
- prevent "Server not initialized" race on first request (#198) (e84624c)
- server: resolve session names via Registry to prevent atom-exhaustion DoS (#188) (17e4a6d)
- session: trap_exit so terminate/2 runs on supervisor shutdown (#209) (6335cf4)
- streamable_http: don't close superseded SSE handler to prevent reconnect flap (#215) (a1e0ce6)
Continuous Integration
- add new elixir versions (3b636a8)
- add pr-quality workflow (c0ca08f)
- fix zig correct version for burrito (6e410bd)
- use mlugg/setup-zig 0.15.2 in release-please auto build job (2ed6187)
1.6.2 (2026-06-09)
Bug Fixes
- forward :headers to SSE GET request (#180) (bb3280f)
- macros for Elixir 1.20 type checker compatibility (48c9478)
- streamable_http: always advertise both content types on POST (#178) (66abc13)
1.6.1 (2026-05-23)
Bug Fixes
1.6.0 (2026-05-18)
Features
- add OAuth 2.1 authorization for MCP servers (#158) (a12a8f6)
- add Registry.PG for distributed session tracking via :pg (#160) (512e103)
1.5.0 (2026-05-09)
Features
Bug Fixes
Continuous Integration
- fix flaky test (939fd76)
1.4.0 (2026-05-08)
Features
- add resource subscription capability implementation (#152) (10a09cf)
- dispatch session requests in supervised tasks (#153) (f0496b4)
Tests
1.3.1 (2026-05-04)
Bug Fixes
Miscellaneous Chores
- change setup-zig version on ci (f77a844)
Code Refactoring
1.3.0 (2026-04-29)
Features
- elicitation: MCP 2025-06-18 elicitation support (#139) (8ab36e2)
- resource templates with RFC 6570 URI matching (#141) (aaee374)
Bug Fixes
1.2.0 (2026-04-24)
Features
Bug Fixes
- correct SSE task lifecycle bugs in StreamableHTTP transport (#130) (3a34382)
- defer streamable_http plug opts fetching to runtime (#137) (ad29215)
- handle session expiry gracefully with optional callback and store restore (#134) (a42f462)
- prevent lost SSE responses when client connection closes (#132) (f961fa0)
- replace opaque KeyError with ArgumentError for missing :client_info (#135) (fc9444c)
- server stdio test againts custom io device (#136) (4b567d9)
1.1.1 (2026-04-22)
Bug Fixes
Miscellaneous Chores
- capture log from stdio transports processes (fbcca0a)
- encapsulate transport_parse_state into the Client.State struct (602d74c)
- suppress SSE deprecation warnings (05565fc)
- supress SSE deprecation warnings (8334779)
Tests
- fix the stdio cast message from server using a buffer (76d7ecd)
1.1.0 (2026-04-13)
Features
- Add Client.await_ready/2 to block until MCP handshake completes (#117) (4c48647)
- add instructions field to initialize response (#122) (8103b7c)
Documentation
1.0.0 (2026-03-16)
⚠ BREAKING CHANGES
- remove client base module and client macro (#110)
- phase-3: server re-implementation and simplification (#96)
Features
Bug Fixes
- phase-5: remove dead code and update docs (#104) (eea86af)
- regression for input/output server schema (85f8ebb)
- remove client base module and client macro (#110) (1f9f13c)
- server examples and sse server transport (944bafb)
- session serializion errors (#112) (cb8c0e3), closes #60
- Start SSE keepalive when first handler is registered (#83) (c3c01e9)
- stdio server transport working (#111) (b331281)
Code Refactoring
- phase-3: server re-implementation and simplification (#96) (badb0f0)
- phase-4: client extraction of handlers (#100) (08b98c0)
0.17.1 (2026-02-28)
Bug Fixes
Code Refactoring
- phase-1: abstract protocol version negotiation (#93) (05a2362)
- phase-2: transport layer as functions, backward compatible (#95) (105d6a9)
0.17.0 (2025-12-09)
Features
Bug Fixes
0.16.0 (2025-11-18)
Features
Bug Fixes
0.15.0 (2025-11-03)
Features
- add timeout for client/server -> transport calling option (#50) (1e37c23)
- allow template resources registration (#43) (9af9b8d)
Bug Fixes
0.14.1 (2025-10-07)
Bug Fixes
- correct capability parsing to nest options under capability keys (#31) (9946027)
- correctly handle timeouts and keepalive (#41) (2f44840)
Documentation
- rewrite introduction/home documentation page (34baf39)
Miscellaneous Chores
- add sponsors section with coderabbit (f04f8bb)
- update example projects elixir deps, use fixed otp version and stable version for CLI release (b362e54)
Continuous Integration
- fix zig version for CLI release and locally on flake (e7ed2b4)
0.14.0 (2025-08-21)
Features
resources/templates/listmethod for clients (a6eb210)
Bug Fixes
- align docs and parsing of server component schema-field definition options (#12) (cb2df76)
- correctly pass server call timeout options (a49f497)
- explicit handle title for components (#9) (1adfed2)
- output schemas should not validate on error resps (#15) (b5faaad)
Reverts
Miscellaneous Chores
0.13.1 (2025-07-31)
Bug Fixes
Miscellaneous Chores
- old release are from the original fork (e99d8ba)
- plug router config on readme (#2) (243176c)
- readme (bed6ff7)
0.13.0 (2025-07-18)
Features
- allow redact patterns on server assigns/data (#190) (07af99f)
- better dsl for embedded nested fields on server components (#199) (097f5fd)
- new server response contents for tools/resources with annotations (2025-06-18) (#195) (9b65308)
- resources templates (#193) (1457e59)
- tools output schema feature (2025-06-18) (#194) (8088a49)
Miscellaneous Chores
- deprecate sse transport (#187) (1932fbc)
- deps: bump the npm_and_yarn group across 1 directory with 2 updates (#198) (5e21aac)
- readme (bed6ff7)
0.12.1 (2025-07-14)
Code Refactoring
0.12.0 (2025-07-11)
Features
- client sampling capability (#170) (da617a6)
- roots/list and completion features (#178) (d22a6bd)
- server components cursor pagination (#177) (a95eba7)
- server-side sampling capability (#173) (c09e7f3)
Bug Fixes
- allow configuring server request timeout (#182) (e79fe2f)
- do not allow duplicate server components and more convenient API (#180) (bc71df8)
Miscellaneous Chores
- add llms summary about the library (#175) (ed0e608)
- allow different kind of components have the same name (#181) (d5ba6f5)
Code Refactoring
- handle_sampling callback, use frame as entrypoint for notifications (#176) (1e88711)
- interactive tasks now support JSON file input (#172) (9465266)
0.11.3 (2025-07-02)
Bug Fixes
- correctly parse dates when default values are passed (58f6368)
- include frame helpers on module-based component (#163) (15ba2c7)
- server can now send notifications correctly (#166) (33f32de)
Miscellaneous Chores
0.11.2 (2025-06-30)
Bug Fixes
- correctly parse peri numeric contrainsts to json-schema (#160) (808c2c0)
- interactive http tasks should accept custom headers (#159) (c2fe91e)
0.11.1 (2025-06-30)
Bug Fixes
0.11.0 (2025-06-30)
Features
Bug Fixes
- allow users to control external process messages (#149) (8fef4eb)
- correctly encode prompt/resource (#155) (4249b13)
- more genserver mcp server callbacks, plug based startup and documentation (#152) (9c26b1c)
- server behaviour with optional callbacks (#151) (91aa191)
Code Refactoring
0.10.5 (2025-06-25)
Bug Fixes
0.10.4 (2025-06-24)
Bug Fixes
0.10.3 (2025-06-23)
Bug Fixes
0.10.2 (2025-06-23)
Bug Fixes
Code Refactoring
0.10.1 (2025-06-21)
Bug Fixes
- client should send both sse/json headers on POST requests (#134) (e906b7f)
- correctly allows macro-based/callback-based server implementations (#131) (d7bfc75)
- remove last uses of hard-coded Anubis.Server.Registry (cc0ffd9)
0.10.0 (2025-06-18)
Features
- batch operations on server-side (#125) (28eea7c)
- missing notifications handlers (#129) (34d5934)
- support batch operations on client side (#101) (fadf28d)
- tools annotations (#127) (c83e8f1)
Miscellaneous Chores
0.9.1 (2025-06-13)
Bug Fixes
- allow enum specific type on json-schema (#121) (23c9ce2), closes #114
- correctly escape quoted expressions (#119) (0c469c5), closes #118
0.9.0 (2025-06-12)
Features
Bug Fixes
0.8.2 (2025-06-11)
Code Refactoring
0.8.1 (2025-06-10)
Bug Fixes
0.8.0 (2025-06-10)
Features
- inject user and transport data on mcp server frame (#106) (feb2ce3)
- legacy sse server transport (#102) (4a71088)
Bug Fixes
Miscellaneous Chores
0.7.0 (2025-06-09)
Features
0.6.0 (2025-06-09)
Features
- allow customize server registry impl (#94) (f3ac087)
- mcp high level server components definition (#91) (007f41d)
- mcp server handlers refactored (#92) (e213e04)
Bug Fixes
Miscellaneous Chores
Code Refactoring
0.5.0 (2025-06-05)
Features
- client support new mcp spec (#83) (73d14f7)
- enable log disabling (#78) (fa1453f)
- low level genservy mcp server implementation (stdio + stremable http) (#77) (e6606b4)
- mvp higher level mcp server definition (#84) (a5fec1c)
Code Refactoring
0.4.0 - 2025-05-06
Added
- Implemented WebSocket transport (#70)
- Emit
telemetryevents (#54) - Implement client feature
completionrequest (#72) - Implement client feature roots, server requests (#73)
0.3.12 - 2025-04-24
Fixed
- Correctly handles "nested" timeouts (genserver vs MCP) (#71)
0.3.11 - 2025-04-17
Added
- Improved core library logging and added verbosity level on interactive/CLI (#68)
0.3.10 - 2025-04-17
Fixed
- Handle SSE ping and reconnect events from server (#65)
0.3.9 - 2025-04-15
Fixed
- Improved and simplified SSE endpoint event URI merging (#64)
Added
- Added internal client/transport state inspection on CLI/mix tasks (#61)
0.3.8 - 2025-04-10
Added
- Created
Operationstruct to standardize client API calls (#56) - Fixed ERTS version to avoid release errors
Fixed
- Resolved client timeout confusion by standardizing timeout handling (#42)
0.3.7 - 2025-04-01
Fixed
- Client reinitialization from interactive CLI (#55)
0.3.6 - 2025-03-28
Added
- New roadmap and protocol update proposal (#53)
- Added documentation for the 2025-03-26 protocol update
0.3.5 - 2025-03-25
Documentation
- Added Roadmap to README (#47)
0.3.4 - 2025-03-20
Added
helpcommand and flag on the interactive CLI (#37)- improve SSE connection status on interactive task/cli (#37)
0.3.3 - 2025-03-20
Added
- Client request cancellation support (#35)
- Improved URI path handling for SSE transport (#36)
- Enhanced interactive mix tasks for testing MCP servers (#34)
0.3.2 - 2025-03-19
Added
- Ship static binaries to use anubis-mcp as standalone application
0.3.1 - 2025-03-19
Added
- Ship interactive mix tasks
stdio.interactiveandsse.interactiveto test MCP servers
0.3.0 - 2025-03-18
Added
- Structured server-client logging support (#27)
- Progress notification tracking (#26)
- MCP domain model implementation (#28)
- Comprehensive SSE unit tests (#20)
- Centralized state management (#31)
- Standardized error response handling (#32)
Fixed
- Improved domain error handling (#33)
0.2.3 - 2025-03-12
Added
- Enhanced SSE transport with graceful shutdown capabilities (#25)
- Improved SSE streaming with automatic reconnection handling (#25)
0.2.2 - 2025-03-05
Added
- Support for multiple concurrent client <> transport pairs (#24)
- Improved client resource management
0.2.1 - 2025-02-28
Added
- Support for custom base and SSE paths in HTTP/SSE client (#19)
- Enhanced configuration options for SSE endpoints
0.2.0 - 2025-02-27
Added
- Implemented HTTP/SSE transport (#7)
- Support for server-sent events communication
- HTTP client integration for MCP protocol
- Streaming response handling
Documentation
- Extensive guides and documentation improvements
0.1.0 - 2025-02-26
Added
Implemented STDIO transport (#1) for MCP communication
- Support for bidirectional communication via standard I/O
- Automatic process monitoring and recovery
- Environment variable handling for cross-platform support
- Integration test utilities in Mix tasks
Created stateful client interface (#6)
- Robust GenServer implementation for MCP client
- Automatic initialization and protocol handshake
- Synchronous-feeling API over asynchronous transport
- Support for all MCP operations (ping, resources, prompts, tools)
- Proper error handling and logging
- Capability negotiation and management
Developed JSON-RPC message parsing (#5)
- Schema-based validation of MCP messages
- Support for requests, responses, notifications, and errors
- Comprehensive test suite for message handling
- Encoding/decoding functions with proper validation
Established core architecture and client API
- MCP protocol implementation following specification
- Client struct for maintaining connection state
- Request/response correlation with unique IDs
- Initial transport abstraction layer
Documentation
- Added detailed RFC document describing the library architecture
- Enhanced README with project overview and installation instructions