mcp-go
A Go implementation of the Model Context Protocol, providing a high-level interface for building MCP servers with resources, tools and prompts.
mcp-go is a Go implementation of the Model Context Protocol (MCP). It handles the protocol's connection management, message routing and server bookkeeping so a developer can focus on the resources, tools and prompts a server exposes, aiming for a high-level, low-boilerplate interface.
A server built with mcp-go can expose data through Resources, similar to GET endpoints that load information into an LLM's context; provide functionality through Tools, similar to POST endpoints that execute code or cause a side effect; and define reusable interaction templates through Prompts. It implements the MCP specification version 2025-11-25, with backward compatibility for the 2025-06-18, 2025-03-26 and 2024-11-05 versions, and supports multiple transports, OAuth-protected resource metadata, session management, per-session tools, tool filtering and request hooks.
It installs as a Go module and is released under the MIT license. It is under active development, alongside the MCP specification itself, so some advanced capabilities are still in progress.