What's Changed
- refactor: make CallToolRequest.Arguments more flexible (Breaking Change) by @ezynda3 in #287
- Drop unused fields from server.sseSession by @ggoodman in #303
- chore: remove unused variables and type arguments by @pottekkat in #302
- chore(Srv/stdio): duplicated setting of ErrorLogger by @cryo-zd in #306
- fix: handle the situation where the channel is closed by @button-chen in #304
Breaking Changes
In v0.29.0, MCP-Go introduces breaking changes to tool request handling. The main change is that request.Params.Arguments is no longer directly accessible as a map. Instead, you must use the new GetArguments() method to retrieve arguments as a map. For type-safe argument access, new helper methods like RequireString(), RequireFloat(), and RequireBool() have been added. To migrate:
- Replace direct access to
request.Params.Arguments["key"]withrequest.GetArguments()["key"] - For better type safety, use the new helper methods:
request.RequireString("key"),request.RequireFloat("key"), etc. - For complex argument structures, use the new
BindArguments()method with a struct, or try the new typed tool handlers withmcp.NewTypedToolHandler()as shown in the newexamples/typed_toolsexample.
New Contributors
- @ggoodman made their first contribution in #303
- @button-chen made their first contribution in #304
Full Changelog: v0.28.0...v0.29.0