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.
v0.5.0
Added
- Tool output schemas via
deftool'soutput_schema:option, advertised asoutputSchemaintools/list. - Structured tool results in the
structuredContentfield oftools/call, with the serialized JSON still returned in a text content block for backwards compatibility.
Changed
Declaring an output_schema now constrains what a tool may return. MCP
2025-11-25 requires that a server providing an output schema MUST return
structured results conforming to it, and restricts those schemas to
type: "object" at the root. Two rules are now enforced:
The schema's root type must be
"object". Declaring an array or scalar root type raisesArgumentErrorwhere the tool is defined, rather than advertising a shapestructuredContentcannot carry. To return a list, wrap it:# Before — no longer valid output_schema: %{type: "array", items: %{type: "object"}} # After output_schema: %{ type: "object", properties: %{entries: %{type: "array", items: %{type: "object"}}}, required: ["entries"] }A tool declaring a schema must return a map. A list, a scalar, or pre-formatted content blocks cannot conform, so they now produce a tool execution error (
isError: true) instead of a successful response silently missing thestructuredContentthe tool advertised. Unstructured content may accompany a structured result, but cannot replace it.Tools that return content blocks directly should omit
output_schema.
Tools that declare no output schema are unaffected — every return shape that worked in 0.4.x still works.
Fixed
- The README installation snippet recommended
~> 0.4.0, which excludes 0.5.x.
v0.4.0
Added
- Idle sessions hibernate after
hibernate_after(default 60s), substantially reducing memory held by long-lived idle sessions. Set to:infinityto disable.
v0.3.1
Added
- CI workflow covering the oldest and current supported toolchains.
Fixed
- Session RPC no longer crashes the request when it reaches a downed node in a distributed registry.
v0.3.0
Added
- Prompts primitive:
defprompt,prompts/list,prompts/get. - Resources primitive:
defresource,defresource_template,resources/list,resources/templates/list,resources/read.
v0.2.0
Added
- Tool annotations support in
deftool.
Fixed
- MCP spec compliance: origin validation, protocol version negotiation, and HTTP status codes.