Changelog
All notable changes to this project are documented in this file.
0.14.1 (2025-08-14)
Bug Fixes
0.14.0 (2025-08-06)
Features
0.13.4 (2025-08-05)
Reverts
0.13.3 (2025-08-04)
Bug Fixes
0.13.2 (2025-08-04)
Bug Fixes
0.13.1 (2025-08-04)
Features
- add independently configurable logs (#113) (bb0be27)
- add internal client/transport state inspect on cli/mix tasks (#61) (83550ee)
- allow customize server registry impl (#94) (f3ac087)
- allow json schema fields on tools/prompts definition (#99) (0345f12)
- allow multiple client <> transport pairs (#24) (933876d)
- allow redact patterns on server assigns/data (#190) (07af99f)
- allow sse graceful shutdown and handle sse streaming reconnection (#25) (008725d)
- basic client interface API (fd3412d)
- batch operations on server-side (#125) (28eea7c)
- better dsl for embedded nested fields on server components (#199) (097f5fd)
- centralized state management (#31) (76c0ab1)
- client request cancelation (#35) (ace2c3b)
- client sampling capability (#170) (da617a6)
- client support new mcp spec (#83) (73d14f7)
- create client operation struct (#56) (083bda6)
- enable log disabling (#78) (fa1453f)
- extensive guides and documentation (b39ccca)
- http/sse transport (#7) (690a57f)
- implement termination cleanup on Hermes.Client (#43) (d7bbf5d)
- improve cli experience with help cmd and sse conn info (#37) (0122af2)
- improve cli experience with help cmd and sse conn info (#37) (7a9d4e7)
- improve interactive mix tasks for testing mcp servers (#34) (53779a9)
- improve log handling on core lib and interactive/cli (#68) (7717f37)
- improve sse uri path handling (#36) (7ed2ea8)
- improve sse uri path handling (#36) (f044d7d)
- inject user and transport data on mcp server frame (#106) (feb2ce3)
- legacy sse server transport (#102) (4a71088)
- low level genservy mcp server implementation (stdio + stremable http) (#77) (e6606b4)
- mcp domain model (#28) (f8c877b)
- mcp high level server components definition (#91) (007f41d)
- mcp server handlers refactored (#92) (e213e04)
- missing notifications handlers (#129) (34d5934)
- mvp higher level mcp server definition (#84) (a5fec1c)
- new server response contents for tools/resources with annotations (2025-06-18) (#195) (9b65308)
- pretty print tool arguments on list_tools (#57) (03f8781)
- progress notifications (#26) (a3245a0)
- propagating headers on requests (#214) (a740aa4)
- resources templates (#193) (1457e59)
- roadmap and protocol update proposal (#53) (52cbf10)
- roots/list and completion features (#178) (d22a6bd)
- rpc and mcp specific message parsing (#5) (531b416)
- runtime server components, simplified api (#153) (8af35d6)
- server components cursor pagination (#177) (a95eba7)
- server-side sampling capability (#173) (c09e7f3)
- sse: support custom base and sse paths for client (#19) (787bc2d)
- sse: unit tests... (#20) (4941fd4)
- standard error resposne (#32) (52602dd)
- stateful client interface (#6) (6b97987)
- structured server-client logging support (#27) (4e1dfa7)
- support batch operations on client side (#101) (fadf28d)
- telemetry (#54) (c52734e)
- tools annotations (#127) (c83e8f1)
- tools output schema feature (2025-06-18) (#194) (8088a49)
- websocket transport (#70) (cee3945)
Bug Fixes
- allow configuring server request timeout (#182) (e79fe2f)
- allow empty capabilities on incoming JSON-RPC messages (#105) (f0ad4cf), closes #96
- allow enum specific type on json-schema (#121) (23c9ce2), closes #114
- allow registering a name for the client supervisor (#117) (d356511)
- allow users to control external process messages (#149) (8fef4eb)
- client reinitialization from interactive cli (#55) (cb6b167)
- client should send both sse/json headers on POST requests (#134) (e906b7f)
- correctly allows macro-based/callback-based server implementations (#131) (d7bfc75)
- correctly encode prompt/resource (#155) (4249b13)
- correctly escape quoted expressions (#119) (0c469c5), closes #118
- correctly handle mcp requests on phoenix apps (#88) (09f4235), closes #86
- correctly parse dates when default values are passed (58f6368)
- correctly parse peri numeric contrainsts to json-schema (#160) (808c2c0)
- correctly set supported versions for different transports (#205) (30435e1)
- default implementation for server handle_notification (#135) (c958041)
- do not allow duplicate server components and more convenient API (#180) (bc71df8)
- do not handle domain errors (#33) (20dde00)
- do not handle domain errors (#33) (c15b260)
- fixed erts version to avoid release error (80780d2)
- handle SSE ping and reconnect events from server (#65) (dccdca3)
- hermes should respect mix releases startup (#109) (f42d476)
- include formatter on hex release (#139) (d91b244)
- include frame helpers on module-based component (#163) (15ba2c7)
- interactive http tasks should accept custom headers (#159) (c2fe91e)
- loggin should respect the logger config (#157) (0fbf6a6)
- make gun/websocket optional (#76) (8f55057)
- more genserver mcp server callbacks, plug based startup and documentation (#152) (9c26b1c)
- nested timeout (#71) (c7ffa71)
- normalize transport api (#146) (8a30a34), closes #145
- remove assign redact feature, simplify server state inspect (#206) (a4d9ae9)
- remove last uses of hard-coded Hermes.Server.Registry (cc0ffd9)
- server behaviour with optional callbacks (#151) (91aa191)
- server can now send notifications correctly (#166) (33f32de)
- server session expiration on idle (configurable) (#143) (d9f7164)
- sse endpoint uri merging (#64) (2fa7869)
- use mix.lock as cache key (#58) (6a3134a)
Miscellaneous Chores
- add llms summary about the library (#175) (ed0e608)
- allow different kind of components have the same name (#181) (d5ba6f5)
- deprecate sse transport (#187) (1932fbc)
- deps: bump the npm_and_yarn group across 1 directory with 2 updates (#198) (5e21aac)
- readme (bed6ff7)
- release 0.10.0 (#124) (8db7a92)
- release 0.10.1 (#133) (2caf67b)
- release 0.10.2 (#136) (580d96a)
- release 0.10.3 (#140) (2bf9890)
- release 0.10.4 (#144) (ae22d44)
- release 0.10.5 (#147) (fe8f374)
- release 0.11.0 (#150) (615e9ac)
- release 0.11.1 (#158) (e0c63f4)
- release 0.11.2 (#161) (2520588)
- release 0.11.3 (#167) (1ff0786)
- release 0.12.0 (#171) (c378929)
- release 0.12.1 (#184) (9f5f751)
- release 0.13.0 (#191) (cfaaa9d)
- release 0.5.0 (#80) (feac95b)
- release 0.6.0 (#89) (5f44c37)
- release 0.7.0 (#100) (c9efd80)
- release 0.8.0 (#104) (cc535dd)
- release 0.8.1 (#110) (9fca055)
- release 0.8.2 (#112) (5dc7d40)
- release 0.9.0 (#116) (73ac1ed)
- release 0.9.1 (#120) (a490789)
- release please correct version on readme (#128) (d0125c6)
- release please should include all files (#108) (d0a25b9)
- simplify genserver naming handling, and bidirectional communication client <> transport (#38) (5288ceb)
- streamable http on hermes cli (standalone) (#203) (2f41337)
- upcate automatic version (#98) (0c08233)
- update documentation, simplify, more storytelling (#168) (ccdddc1)
- update peri (#126) (7292615)
Code Refactoring
- base mcp server implementation correctly uses streamable http (#85) (29060fd)
- cleaner peri integration (#137) (43226cc), closes #123
- do not hangle on transport process (#185) (e6ba926)
- handle_sampling callback, use frame as entrypoint for notifications (#176) (1e88711)
- higher-level client implementation (#111) (5de2162)
- improve runtime components schema def (#154) (96ff2a9)
- interactive tasks now support JSON file input (#172) (9465266)
- remove batch messaging feature (#183) (99458c0)
- tests (#93) (ca31feb)
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 Hermes.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
telemetry
events (#54) - Implement client feature
completion
request (#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
Operation
struct 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
help
command 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 hermes-mcp as standalone application
0.3.1 - 2025-03-19
Added
- Ship interactive mix tasks
stdio.interactive
andsse.interactive
to 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