MCP.so
Sign In
Servers

MCP Server Example (MCP Coffee Shop)

@BearHuddleston

Example how to make a DIY MCP server in Go

Overview

What is MCP Server Example (MCP Coffee Shop)?

An MCP server implementation in Go that provides coffee shop information through tools, resources, and prompts. It supports stdio and HTTP with Server-Sent Events transports, follows Go project layout best practices, and is compliant with the MCP 2025-03-26 specification. Designed for developers building LLM-integrated coffee shop applications.

How to use MCP Server Example (MCP Coffee Shop)?

Build and run from source with Go 1.24+ (go build -o mcpserver ./cmd/mcpserver), or use Docker. Start with ./mcpserver for stdio transport (default), or ./mcpserver -transport http -port 8080 for HTTP. Customize via flags --transport, --port, and --request-timeout. Connect using the MCP Inspector for testing.

Key features of MCP Server Example (MCP Coffee Shop)

  • MCP 2025-03-26 specification compliant
  • Supports stdio and HTTP (SSE) transports
  • Coffee shop domain: tools, resources, prompts
  • Graceful shutdown and configurable timeouts
  • Production ready: structured logging, error handling

Use cases of MCP Server Example (MCP Coffee Shop)

  • List available drinks via the getDrinkNames tool
  • Get detailed drink information with getDrinkInfo
  • Retrieve the full coffee shop menu resource (menu://app)
  • Get personalized drink recommendations through prompts
  • Debug and test MCP integrations with MCP Inspector

FAQ from MCP Server Example (MCP Coffee Shop)

What transports does MCP Server Example (MCP Coffee Shop) support?

It supports stdio (default, compatible with MCP Inspector) and http with Server-Sent Events (SSE).

How can I run it with Docker?

Build the Docker image (docker build -t mcp-server .) and run with --transport http --port 8080 for HTTP or --transport stdio for stdio. Environment variables TRANSPORT and PORT are also supported.

What command‑line flags are available?

--transport (stdio/http, default stdio), --port (HTTP port, default 8080), and --request-timeout (duration, default 30s).

Does the server expose a health check endpoint?

Yes, when using HTTP transport, a GET /health endpoint is available.

What JSON‑RPC methods does the server implement?

It implements initialize, tools/list, tools/call, resources/list, resources/read, prompts/list, prompts/get, and ping.

Tags

More from Other