mcp4go
A comprehensive Go SDK for the Model Context Protocol (MCP) - simplifying AI application development by abstracting away protocol complexities.
claude mcp add --transport stdio mcp4go-mcp4go go run ./... \ --env GOMOD="auto" \ --env GO111MODULE="on"
How to use
MCP4Go provides a Go-based implementation of the Model Context Protocol (MCP). It exposes a server that can be used to define and run MCP tools, manage resources, and perform tool invocations via JSON-RPC. The package includes a standard transport via standard I/O and demonstrates how to assemble a server with a title, version, and a set of functional tools. You can extend or replace the default tools with your own implementations, enabling tasks like time retrieval, data processing, or custom MCP actions, all accessible through the MCP client workflow.
How to install
Prerequisites:
- Go 1.18 or later installed on your system
- Internet access to fetch modules
Installation steps:
- Set up your Go module workspace (optional but recommended):
- mkdir -p $HOME/go && export GOPATH=$HOME/go && export PATH=$PATH:$GOPATH/bin
- Enable Go modules and fetch MCP4Go:
- export GO111MODULE=on
- go get github.com/mcp4go/mcp4go
- Build and run the MCP server (example using the repository path):
- cd $(go env GOPATH)/pkg/mod/cache/download/github.com/mcp4go/mcp4go@*/
- go run ./...
- Verify the server starts and is ready to accept MCP requests via the configured transport (stdio in the example).
Notes:
- The README demonstrates a self-contained Time MCP example; you can adapt the server initialization to your own tools and protocols.
Additional notes
Tips:
- The MCP4Go server is designed to be extended with custom tool builders. You can plug in your own function wrappers to expose new tools through MCP JSON-RPC calls.
- If you are running the server in a production environment, consider wiring a proper transport (TCP/HTTP) instead of stdio, and configure logging and graceful shutdown as shown in the example.
Environment variables and configuration:
- GO111MODULE should be set to on to ensure module mode is used.
- If you host this in a container, ensure Go is installed in the image and that network access is allowed to fetch dependencies.
- You may want to define a custom server info (name, version) and instructions to guide clients on how to use your MCP server.
Common issues:
- Module download failures can occur if GOPROXY is blocked; ensure network access or set a local module proxy.
- Version mismatches between the MCP client and server can lead to protocol errors; keep the server and client aligned on MCP protocol version.
Related MCP Servers
agentql
Model Context Protocol server that integrates AgentQL's data extraction capabilities.
sandbox
A Model Context Protocol (MCP) server that enables LLMs to run ANY code safely in isolated Docker containers.
gtm
An MCP server for Google Tag Manager. Connect it to your LLM, authenticate once, and start managing GTM through natural language.
miro
MCP server for controlling Miro whiteboards with AI assistants
mcp-stockfish
🐟 MCP server connecting AI systems to Stockfish chess engine
mediawiki
MCP server for MediaWiki wikis - search, read, and edit wiki content from AI assistants