Releases: mark3labs/mcp-go
Releases · mark3labs/mcp-go
Release v0.31.0
What's Changed
- [feat] separate request struct by @OswinWu in #333
- fix: logo on website is squashed by @corani in #349
- fix: panic when streamable HTTP server sends notification by @dugenkui03 in #348
- fix: move styles.css to www/docs by @corani in #354
- fix(server): resolve stdio server context cancellation bug by @sonirico in #331
- Add option to StreamableHTTPServer to allow custom http server instance by @yash025 in #347
- fix(Srv/stream): add ID field to
PingRequest
by @cryo-zd in #353
New Contributors
- @OswinWu made their first contribution in #333
- @corani made their first contribution in #349
- @sonirico made their first contribution in #331
Full Changelog: v0.30.1...v0.31.0
Release v0.30.1
What's Changed
Full Changelog: v0.30.0...v0.30.1
Release v0.30.0
What's Changed
- Feat: Impl Server-Side Streamable HTTP transport by @leavez in #273
- Support customize request header by @dugenkui03 in #315
- docs: add regeneration instructions by @pmenglund in #309
- docs(examples): correct use of
GetArguments
by @jamietanna in #316 - fix: avoid painc caused by writing to closed channel by @cryo-zd in #318
- docs: use helper functions and return error as result by @pottekkat in #322
- Update README.md by @dugenkui03 in #323
- Feat(prompts): add DeletePrompts method to MCPServer by @God-Jay in #320
- Scaffold documentation site by @ezynda3 in #324
- Docs by @ezynda3 in #325
- feat: Implement OAuth in the client by @ezynda3 in #296
- feat(server): persist client info in sessions by @ShawkyZ in #313
New Contributors
- @pmenglund made their first contribution in #309
- @jamietanna made their first contribution in #316
- @God-Jay made their first contribution in #320
- @ShawkyZ made their first contribution in #313
Full Changelog: v0.29.0...v0.30.0
Release v0.29.0
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_tools
example.
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
Release v0.28.0
What's Changed
- feat(tools): implicitly register capabilities by @david-hamilton-glean in #292
- fix: Gate notifications on capabilities by @david-hamilton-glean in #290
- feat(protocol): allow additional fields in meta by @anuraaga in #293
- fix: type mismatch for request/response ID by @pottekkat in #291
- feat(MCPServer): support
logging/setlevel
request by @cryo-zd in #276
New Contributors
Full Changelog: v0.27.1...v0.28.0
Release v0.27.1
What's Changed
- docs: add CONTRIBUTING.md by @pottekkat in #275
- chore: create CODE_OF_CONDUCT.md by @pottekkat in #274
- chore: add issue and pull request templates by @pottekkat in #281
- ci: add golangci-lint by @pottekkat in #282
- fix: proper deprecation messaging for WithHTTPContextFunc by @aotarola in #278
- chore: add a security policy by @pottekkat in #283
- fix(docs): Update README link by @david-hamilton-glean in #284
- fix(session): Don't send tool changed notifications if session not initialized yet by @david-hamilton-glean in #289
New Contributors
- @aotarola made their first contribution in #278
- @david-hamilton-glean made their first contribution in #284
Full Changelog: v0.27.0...v0.27.1
Release v0.27.0
What's Changed
- Support audio content type in tools/call and prompts/get by @dugenkui03 in #250
- refactor(server): extract common HTTP transport configuration options by @robert-jackson-glean in #253
- ci: add check to verify generated code is up-to-date by @robert-jackson-glean in #258
- fix(MCPServer): correct notification method in func
RemoveResource()
by @cryo-zd in #262 - Create sample client by @ezynda3 in #265
- Fix the issue where the 'Shutdown' method fails to properly exit. by @uppercaveman in #255
- test(server): reliably detect Start/Shutdown deadlock in SSEServer by @robert-jackson-glean in #264
- docs: make code examples in the README correct as per spec by @pottekkat in #268
- feat(MCPServer): avoid unnecessary notifications when Resource/Tool not exists by @cryo-zd in #266
- chore: replace
interface{}
withany
by @pottekkat in #261 - fix(Srv/stdio): risk of goroutine leaks and concurrent reads in
readNextLine()
by @cryo-zd in #257 - docs: Remove reference to
mcp.RoleSystem
by @robert-jackson-glean in #269 - fix: fix some obvious simplifications by @pottekkat in #267
- Optimization of listByPagination Performance by @qiangmzsx in #246
- fix: properly marshal
ToolAnnotations
withfalse
values by @pottekkat in #260
New Contributors
- @uppercaveman made their first contribution in #255
- @pottekkat made their first contribution in #268
- @qiangmzsx made their first contribution in #246
Full Changelog: v0.26.0...v0.27.0
Release v0.26.0
What's Changed
- feat(sse): Add
SessionWithTools
support to SSEServer by @robert-jackson-glean in #232 - Fix bug with MarshalJSON for NotificationParams by @Gelembjuk in #233
- fix: write back error message if the response marshal failed by @ppzqh in #235
- fix(server/sse): potential goroutine leak in Heartbeat sender by @cryo-zd in #236
- Fix stdio test compilation issues in CI by @ezynda3 in #240
- refactor(server/sse): rename WithBasePath to WithStaticBasePath by @robert-jackson-glean in #238
- fix(MCPServer): Session tool handler not used due to variable shadowing by @cryo-zd in #242
- test: build mockstdio_server with isolated cache to prevent flaky CI by @robert-jackson-glean in #241
- fix: Use detached context for SSE message handling by @yash025 in #244
New Contributors
- @Gelembjuk made their first contribution in #233
- @ppzqh made their first contribution in #235
- @yash025 made their first contribution in #244
Full Changelog: v0.25.0...v0.26.0
Release v0.25.0
What's Changed
- update doc comments to match Go conventions by @yinebebt in #226
- fix: Add Accept Header in StreamableHTTP Client by @hhxiao in #230
- fix(SSE): only initialize
http.Server
when not set by @cryo-zd in #229 - fix: Prevent panic in parsing functions for null results by @cocovs in #218
- [SSEClient] Add ability to override the http.Client by @sks in #109
- feat(SSEServer): add WithAppendQueryToMessageEndpoint() by @liut in #136
- feat: quick return tool-call request, send response via SSE in goroutine by @CeerDecy in #163
- feat(server/sse): Add support for dynamic base paths by @robert-jackson-glean in #214
New Contributors
- @yinebebt made their first contribution in #226
- @hhxiao made their first contribution in #230
- @cocovs made their first contribution in #218
- @sks made their first contribution in #109
- @liut made their first contribution in #136
- @CeerDecy made their first contribution in #163
Full Changelog: v0.24.1...v0.25.0
Release v0.24.1
What's Changed
- fix: marshal
ToolInputSchema.Properties
to {} when len=0 by @cryo-zd in #225 - fix(client/test): verify mock server binary exists after compilation by @robert-jackson-glean in #215
Full Changelog: v0.24.0...v0.24.1