Changelog

All notable changes to this project are documented in this file.

0.14.1 (2025-08-14)

Bug Fixes

  • remove the default mcp path for streamable http (#226) (7163ce3)

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

Code Refactoring

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

0.12.1 (2025-07-14)

Code Refactoring

0.12.0 (2025-07-11)

Features

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

  • update documentation, simplify, more storytelling (#168) (ccdddc1)

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

  • loggin should respect the logger config (#157) (0fbf6a6)

0.11.0 (2025-06-30)

Features

  • runtime server components, simplified api (#153) (8af35d6)

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

  • server session expiration on idle (configurable) (#143) (d9f7164)

0.10.3 (2025-06-23)

Bug Fixes

0.10.2 (2025-06-23)

Bug Fixes

  • default implementation for server handle_notification (#135) (c958041)

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

Miscellaneous Chores

0.9.1 (2025-06-13)

Bug Fixes

0.9.0 (2025-06-12)

Features

Bug Fixes

  • allow registering a name for the client supervisor (#117) (d356511)

0.8.2 (2025-06-11)

Code Refactoring

0.8.1 (2025-06-10)

Bug Fixes

  • hermes should respect mix releases startup (#109) (f42d476)

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

  • allow empty capabilities on incoming JSON-RPC messages (#105) (f0ad4cf), closes #96

Miscellaneous Chores

  • release please should include all files (#108) (d0a25b9)

0.7.0 (2025-06-09)

Features

  • allow json schema fields on tools/prompts definition (#99) (0345f12)

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

  • correctly handle mcp requests on phoenix apps (#88) (09f4235), closes #86

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

  • base mcp server implementation correctly uses streamable http (#85) (29060fd)

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 and sse.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