概要
What is mcp-go-starter?
A feature-complete Model Context Protocol (MCP) server template in Go using the official go-sdk. It demonstrates all major MCP features with clean, idiomatic Go code, intended for developers building MCP servers in Go.
How to use mcp-go-starter?
Clone the repository, run go mod download to install dependencies, then start the server via stdio (go run ./cmd/stdio) or HTTP (go run ./cmd/http, runs on localhost:3000). Alternatively, use make build to create binaries or make dev for live reload with air. The server is preconfigured for VS Code integration and DevContainers.
Key features of mcp-go-starter
- Tools: hello, get_weather, ask_llm, long_task, load_bonus_tool
- Resources: info://about (static), file://example.md (file-based)
- Resource templates: greeting://{name}, data://items/{id}
- Prompts: greet (various styles), code_review (with focus areas)
- Support for tool annotations, progress updates, and LLM sampling
- Dynamic tool loading at runtime
Use cases of mcp-go-starter
- Learning MCP patterns and best practices in Go
- Bootstrapping a new MCP server project quickly
- Testing MCP features interactively with MCP Inspector
- Integrating with VS Code for local development and debugging
- Deploying MCP servers via stdio (local) or HTTP (remote/web)
FAQ from mcp-go-starter
What prerequisites are needed to run mcp-go-starter?
Go 1.22+ is required. Optionally install air for live reload and golangci-lint for linting.
What transports does mcp-go-starter support?
It supports stdio transport (for local development) and HTTP transport (for remote/web deployment, default port 3000).
How can I test the mcp-go-starter server?
Use the MCP Inspector by running npx @modelcontextprotocol/inspector -- go run ./cmd/stdio/main.go. The Inspector provides tabs for tools, resources, prompts, logs, and schema validation.
What environment variables are available for mcp-go-starter?
The PORT variable sets the HTTP server port; default is 3000. Copy .env.example to .env to configure.
How do I set up development with live reload?
Install air (go install github.com/air-verse/air@latest) and run make dev. Changes to any .go file will automatically rebuild and restart the server.