Skip to content

Releases: mark3labs/mcp-go

Release v0.48.0

14 Apr 08:31
v0.48.0
c99de0d

Choose a tag to compare

v0.48.0 - Server implementation metadata options and OAuth RFC 8707 s…

Release v0.47.1

08 Apr 17:44
v0.47.1
2e8a408

Choose a tag to compare

What's Changed

  • docs(client): add example to NewSSEMCPClient to avoid variable shadowing by @vincent067 in #773
  • Bound stdio child shutdown in Close() by @jbjardine in #784
  • fix(client/http_streamable): exit ContinuousListening goroutine on context cancellation by @swedishborgie in #790

New Contributors

Full Changelog: v0.47.0...v0.47.1

Release v0.47.0

04 Apr 15:06
v0.47.0
bb69576

Choose a tag to compare

What's Changed

  • docs: add missing example references to README by @vincent067 in #772
  • fix: close done channel on nil response to prevent goroutine leak by @Sim-hu in #766
  • fix(server): reject sync calls to task-only tools by @Gujiassh in #778
  • fix(transport): preserve OAuth discovery paths by @Gujiassh in #775
  • enhancement: client side 'task' functions for 'get', 'list', 'cancel' and 'result' operation by @yuehaii in #770
  • feat: add Use() method for attaching tool middleware at runtime by @majiayu000 in #767
  • fix(client): make readSSE context-aware to prevent goroutine leaks and HTTP/2 hangs by @samkeet in #780
  • fix: extract and set _meta field in ParseContent by @parkerbxyz in #777
  • fix: cancel context before closing body to prevent HTTP/2 hang by @samkeet in #769

New Contributors

Full Changelog: v0.46.0...v0.47.0

Release v0.46.0

26 Mar 07:57
v0.46.0
4d01ccd

Choose a tag to compare

What's Changed

  • fix(oauth): Handle token_type case-insensitively per RFC 6749 by @MariaChrysafis in #737
  • test: add regression tests for tool schema serialization (#671) by @koriyoshi2041 in #739
  • server: return 202 for empty ping responses by @bjornmp in #741
  • fix(server): return 202 Accepted for sampling responses by @dugenkui03 in #744
  • fix: close ready channel inside read loop to eliminate race condition by @everfid-ever in #745
  • fix: account for upgradedHeader in handlePost response path by @JAORMX in #743
  • docs(clients): replace stale NewSSEClient examples by @WyRainBow in #747
  • add support for extensions in ClientCapabilities and ServerCapabilities by @omar-scio in #749
  • Replace github.com/invopop/jsonschema with github.com/google/jsonschema-go by @securityguy in #760
  • feat(transport): make SSE endpoint and response timeouts configurable by @toby-archer-tr in #734
  • fix(server): reject sync calls to task-only tools by @Gujiassh in #759
  • Add AgentRank score badge to README by @superlowburn in #752
  • fix(oauth): preserve path components during metadata discovery by @Gujiassh in #761
  • feat(server): add WithExperimental server option by @tomholford in #762
  • fix: cancel in-flight request contexts on notifications/cancelled in #756
  • Fix AddTaskTool task result payload handling by @WyRainBow in #765
  • feature: Add prompt filter and handler middleware support (parity with tools) by @ronan-zelta in #751

New Contributors

Full Changelog: v0.45.0...v0.46.0

Release v0.45.0

06 Mar 17:18
v0.45.0
37c4d97

Choose a tag to compare

What's Changed

  • Add RFC 7591 client_uri support in dynamic client registration by @MariaChrysafis in #726
  • feat(transport): return ErrLegacySSEServer on 4xx initialize for spec-compliant SSE fallback by @MariaChrysafis in #731
  • feat: add GetHooks() method to MCPServer for hook composability by @naji247 in #728
  • fix: always include properties field in tool JSON Schema by @krus210 in #727
  • feat: add Description and WebsiteURL fields to Implementation struct by @suxiaohun in #733

New Contributors

Full Changelog: v0.44.1...v0.45.0

Release v0.44.1

27 Feb 06:46
v0.44.1
6bea1d4

Choose a tag to compare

What's Changed

  • fix: add session idle TTL sweeper to prevent transport state leak by @NLipatov in #724

New Contributors

Full Changelog: v0.44.0...v0.44.1

Release v0.44.0

15 Feb 12:23
v0.44.0
0510f0c

Choose a tag to compare

What's Changed

  • feat: defer tool loading to enable Anthropic's "Tool Search" pattern by @wolfeidau in #644
  • fix: return an error if the responseWriter does not support Flush by @JoelPfaffDD in #652
  • Add Icons support for MCP spec 2025-11-25 compliance by @dask-58 in #660
  • fix: add ErrUnauthorized sentinel for static token 401 responses by @ezynda3 in #661
  • Add lastModified field to Annotations for MCP spec 2025-11-25 by @dask-58 in #663
  • Add server-side support for MCP tasks by @JAORMX in #635
  • fix: drain all pending notification before writing the response to avoid missing notifications by @archit-harness in #670
  • fix for nil resources slice by @furysama in #665
  • Add docstrings for annotation-related functions by @ezynda3 in #673
  • fix: add timeout for SSE response waiting to prevent indefinite blocking by @everfid-ever in #668
  • Try OAuth Authorization Server Metadata first by @staugaard in #669
  • fix(oauth): check for OAuth error responses even when status code is 200 by @sd2k in #646
  • fix: Add missing session cleanup to the StreamableHTTPServer DELETE handler by @cnnrznn in #667
  • Implement Elicitation URL mode for MCP spec 2025-11-25 by @dask-58 in #666
  • feat: Add Host header override support for manual DNS resolution by @ComingCL in #674
  • fix: low mcp version been selected by mcp server, mcp server may also raise 'unsupported protocol version 2025-11-25' error by @yuehaii in #687
  • Add AdditionalProperties to ToolInputSchema by @mohit-gupta-glean in #678
  • fix: fix TestSSE_SendRequest_Timeout flaky test by @everfid-ever in #683
  • feat:add version 2025-11-25 & unit test for version by @CocaineCong in #684
  • fix: use sync.Once for thread-safe Close in StreamableHTTP by @semihbkgr in #685
  • docs: fix ListTools usage to include ListToolsRequest parameter by @everfid-ever in #681
  • fix: return 404 instead of 400 for invalid session IDs by @burugo in #689
  • fix: rename NewToolResultAudio second parameter from imageData to aud… by @mosesyu95 in #691
  • Server handlers implementation for auto-completion by @ezraisw in #679
  • Fix: the header information set by the client being lost. by @button-chen in #686
  • Set test client info by @urisimchoni in #692
  • refactor: fix modernize lint issues by @alexandear in #699
  • refactor: simplify tests with the usetesting linter by @alexandear in #703
  • typo: fix duplicate description of mcp-go in README by @milairhu in #701
  • feat(server): implement task-augmented tools capability by @ezynda3 in #707
  • tool "properties" and "required" fields missing if set them as null, AdditionalProperties can't be masharl by @yuehaii in #713
  • Fix no way to detect connection closure in non-NO_ERROR cases by @manx98 in #709
  • fix: accept HTTP 204 No Content in SendNotification by @satish-karri-glean in #717
  • fix: use custom session id generator when provided by @FlameHost10 in #715
  • fix: SendRequest hangs forever when server process dies by @ichoosetoaccept in #714

New Contributors

Full Changelog: v0.43.2...v0.44.0

Release v0.44.0-beta.3

04 Feb 09:08
v0.44.0-beta.3
e2c1762

Choose a tag to compare

v0.44.0-beta.3

Release v0.44.0-beta.2

09 Jan 13:33

Choose a tag to compare

What's Changed

  • Implement Elicitation URL mode for MCP spec 2025-11-25 by @dask-58 in #666
  • feat: Add Host header override support for manual DNS resolution by @ComingCL in #674
  • fix: low mcp version been selected by mcp server, mcp server may also raise 'unsupported protocol version 2025-11-25' error by @yuehaii in #687
  • Add AdditionalProperties to ToolInputSchema by @mohit-gupta-glean in #678
  • fix: fix TestSSE_SendRequest_Timeout flaky test by @everfid-ever in #683
  • feat:add version 2025-11-25 & unit test for version by @CocaineCong in #684
  • fix: use sync.Once for thread-safe Close in StreamableHTTP by @semihbkgr in #685
  • docs: fix ListTools usage to include ListToolsRequest parameter by @everfid-ever in #681
  • fix: return 404 instead of 400 for invalid session IDs by @burugo in #689
  • fix: rename NewToolResultAudio second parameter from imageData to aud… by @mosesyu95 in #691
  • Server handlers implementation for auto-completion by @ezraisw in #679
  • Fix: the header information set by the client being lost. by @button-chen in #686

New Contributors

Full Changelog: v0.44.0-beta.1...v0.44.0-beta.2

Release v0.44.0-beta.1

19 Dec 19:05
a429ab3

Choose a tag to compare

What's Changed

  • feat: defer tool loading to enable Anthropic's "Tool Search" pattern by @wolfeidau in #644
  • fix: return an error if the responseWriter does not support Flush by @JoelPfaffDD in #652
  • Add Icons support for MCP spec 2025-11-25 compliance by @dask-58 in #660
  • fix: add ErrUnauthorized sentinel for static token 401 responses by @ezynda3 in #661
  • Add lastModified field to Annotations for MCP spec 2025-11-25 by @dask-58 in #663
  • Add server-side support for MCP tasks by @JAORMX in #635
  • fix: drain all pending notification before writing the response to avoid missing notifications by @archit-harness in #670
  • fix for nil resources slice by @furysama in #665
  • Add docstrings for annotation-related functions by @ezynda3 in #673
  • fix: add timeout for SSE response waiting to prevent indefinite blocking by @everfid-ever in #668
  • Try OAuth Authorization Server Metadata first by @staugaard in #669
  • fix(oauth): check for OAuth error responses even when status code is 200 by @sd2k in #646
  • fix: Add missing session cleanup to the StreamableHTTPServer DELETE handler by @cnnrznn in #667

New Contributors

Full Changelog: v0.43.2...v0.44.0-beta.1