MCP.so
Sign In

MCP Go SDK

@SetiabudiResearch

Basic information

Category

Developer Tools

Transports

stdio

Author

SetiabudiResearch

About MCP Go SDK

This SDK provides a Go implementation of the Machine Control Protocol (MCP), enabling bidirectional communication between clients and servers for tool execution, resource access, and prompt handling. Based on

#mcp#go-sdk#machine-control-protocol

MCP Go SDK config

No standard config provided

This server doesn't expose a parseable MCP config block in its README. See the repository for install instructions.

Repository

MCP Go SDK tools

Tool list not available yet

This listing does not currently have a tool list to display. This does not mean the server has no tools; check its documentation for supported capabilities.

We auto-extract tools from the README. The maintainer can list them under a ## Tools heading to populate this section.

Overview

What is MCP Go SDK?

The MCP Go SDK provides a Go implementation of the Model Context Protocol (MCP), enabling bidirectional communication between clients and servers for tool execution, resource access, and prompt handling. It is designed for Go developers building MCP-compatible applications.

How to use MCP Go SDK?

Install the SDK with go get github.com/SetiabudiResearch/mcp-go-sdk. Then create a server instance using server.NewServer(), add tools, resources, or prompts using the provided methods, and start a transport (stdio, WebSocket, or SSE). See the Quick Start section for a minimal example.

Key features of MCP Go SDK

  • Multiple transport options: stdio, SSE, WebSocket
  • Tool registration with both sync and async execution
  • Resource pattern matching (e.g., files/{path})
  • Prompt template rendering and multi-message prompts
  • JSON-RPC message handling with core MCP types
  • Reflection-based handler invocation

Use cases of MCP Go SDK

  • Build custom MCP servers exposing tools and resources
  • Create a file server that serves files via MCP (see examples/fileserver)
  • Implement a calculator service as an MCP tool (see examples/calculator)
  • Develop an interactive chatbot using MCP prompts (see examples/chatbot)

Frequently asked questions

1

What transports does the MCP Go SDK support?

It supports stdio, WebSocket, and Server-Sent Events (SSE) transports, each configurable with endpoints and settings.

2

How do I add a tool to the server?

Use `srv.AddTool()` for synchronous tools or `srv.AddAsyncTool()` for long-running operations, providing a name, handler function, and description.

3

What are the runtime dependencies?

The SDK depends only on the Go standard library and the module itself; it is a pure Go implementation.

4

Can I access resources with dynamic paths?

Yes, resources support pattern matching like `files/{path}` or `api/{version}/{endpoint}` with multiple parameters.

5

Are there complete example applications?

Yes, the repository contains an `examples` directory with a file server, calculator, and chatbot examples.

Comments

More Developer Tools MCP servers