# mcp-go

> A Go implementation of the Model Context Protocol (MCP), enabling seamless integration between LLM applications and external data sources and tools.

- **URL**: https://www.freshcrate.ai/projects/mcp-go
- **Author**: mark3labs
- **Category**: MCP Servers
- **Latest version**: `v0.54.1` (2026-05-25)
- **License**: MIT
- **Source**: https://github.com/mark3labs/mcp-go
- **Homepage**: http://mcp-go.dev/
- **Language**: Go
- **GitHub**: 8,611 stars, 817 forks
- **Registry**: github
- **Tags**: `go`

## Description

A Go implementation of the Model Context Protocol (MCP), enabling seamless integration between LLM applications and external data sources and tools.

## Recent releases

| Version | Date | Urgency | Changes |
| --- | --- | --- | --- |
| `v0.54.1` | 2026-05-25 | High | Latest release: v0.54.1 |
| `v0.54.0` | 2026-05-13 | High | ## What's Changed * fix(server): handle resources/subscribe and resources/unsubscribe (#865) by @ezynda3 in https://github.com/mark3labs/mcp-go/pull/873 * fix(oauth): use LATEST_PROTOCOL_VERSION in metadata discovery (#868) by @ezynda3 in https://github.com/mark3labs/mcp-go/pull/874 * fix(oauth): don't hold metadataMu across HTTP discovery (#871) by @ezynda3 in https://github.com/mark3labs/mcp-go/pull/875 * feat(mcp): add 2025-11-25 sampling-with-tools and capability sub-fields (#867) by @ez |
| `v0.53.0` | 2026-05-12 | High | ## What's Changed * feat(server): add WithStrictInputSchemaDefault by @QuentinBisson in https://github.com/mark3labs/mcp-go/pull/853 * fix(server): add CloseSessions and prevent double-close panic on SSE sessions by @blackwell-systems in https://github.com/mark3labs/mcp-go/pull/852 * fix(transport): suppress closed-pipe shutdown noise by @Gujiassh in https://github.com/mark3labs/mcp-go/pull/863 * fix: add panic recovery to transport goroutines by @blackwell-systems in https://github.com/mark |
| `v0.52.0` | 2026-05-05 | High | Latest release: v0.52.0 |
| `v0.50.0` | 2026-04-30 | High | Latest release: v0.50.0 |
| `v0.49.0` | 2026-04-21 | High | Release v0.49.0 |
| `v0.48.0` | 2026-04-14 | High | Latest release: v0.48.0 |
| `v0.47.1` | 2026-04-08 | High | ## What's Changed * docs(client): add example to NewSSEMCPClient to avoid variable shadowing by @vincent067 in https://github.com/mark3labs/mcp-go/pull/773 * Bound stdio child shutdown in Close() by @jbjardine in https://github.com/mark3labs/mcp-go/pull/784 * fix(client/http_streamable): exit ContinuousListening goroutine on context cancellation by @swedishborgie in https://github.com/mark3labs/mcp-go/pull/790  ## New Contributors * @jbjardine made their first contribution in https://githu |
| `v0.47.0` | 2026-04-04 | Medium | ## What's Changed * docs: add missing example references to README by @vincent067 in https://github.com/mark3labs/mcp-go/pull/772 * fix: close done channel on nil response to prevent goroutine leak by @Sim-hu in https://github.com/mark3labs/mcp-go/pull/766 * fix(server): reject sync calls to task-only tools by @Gujiassh in https://github.com/mark3labs/mcp-go/pull/778 * fix(transport): preserve OAuth discovery paths by @Gujiassh in https://github.com/mark3labs/mcp-go/pull/775 * enhancement: |
| `v0.46.0` | 2026-03-26 | Medium | ## What's Changed * fix(oauth): Handle token_type case-insensitively per RFC 6749 by @MariaChrysafis in https://github.com/mark3labs/mcp-go/pull/737 * test: add regression tests for tool schema serialization (#671) by @koriyoshi2041 in https://github.com/mark3labs/mcp-go/pull/739 * server: return 202 for empty ping responses by @bjornmp in https://github.com/mark3labs/mcp-go/pull/741 * fix(server): return 202 Accepted for sampling responses by @dugenkui03 in https://github.com/mark3labs/mcp- |

## Citation

- HTML: https://www.freshcrate.ai/projects/mcp-go
- Markdown: https://www.freshcrate.ai/projects/mcp-go.md
- Dependencies JSON: https://www.freshcrate.ai/api/projects/mcp-go/deps

_Generated by freshcrate.ai. Indexes github releases for AI-agent ecosystem packages._
