MCP.so
登录
服务器

mcp-go-starter

@SamMorrowDrums

A starter repo for building a go MCP server

概览

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.

来自「开发工具」的更多内容