A Model Context Protocol (MCP) server implementation from scratch in Go. Made for learning purposes only
{
"mcpServers": {
"tea": {
"args": [
"run",
"-i",
"--rm",
"ghcr.io/cbrgm/go-mcp-server:v1"
],
"command": "podman"
}
}
}Are you the author?
Add this badge to your README to show your security score and help users find safe servers.
A Model Context Protocol (MCP) server implementation from scratch in Go. Made for learning purposes only
Is it safe?
No known CVEs for @modelcontextprotocol/inspector. 2 previously resolved.
No authentication — any process on your machine can connect.
Apache-2.0. View license →
Is it maintained?
Last commit 1 days ago. 6 stars. 127,149 weekly downloads.
Will it work with my client?
Transport: stdio, sse, http. Works with Claude Desktop, Cursor, Claude Code, and most MCP clients.
This server supports HTTP transport. Be the first to test it — help the community know if it works.
No open vulnerabilities. 2 fixed CVEs.
This server is missing a description. Tools and install config are also missing.If you've used it, help the community.
Add informationCVE-2025-58444FixedMCP Inspector is Vulnerable to Potential Command Execution via XSS When Connecting to an Untrusted MCP Server
An XSS flaw exists in the MCP Inspector local development tool when it renders a redirect URL returned by a remote MCP server. If the Inspector connects to an untrusted server, a crafted redirect can inject script into the Inspector context and, via the built-in proxy, be leveraged to trigger arbitrary command execution on the developer machine. Version 0.16.6 hardens URL handling/validation and prevents script execution. > Thank you to the following researchers for their reports and contributi
CVE-2025-49596FixedMCP Inspector proxy server lacks authentication between the Inspector client and proxy
Versions of MCP Inspector below 0.14.1 are vulnerable to remote code execution due to lack of authentication between the Inspector client and proxy, allowing unauthenticated requests to launch MCP commands over stdio. Users should immediately upgrade to version 0.14.1 or later to address these vulnerabilities. Credit: Rémy Marot <bughunters@tenable.com>
Have you used this server?
Share your experience — it helps other developers decide.
Sign in to write a review.
Dynamic problem-solving through sequential thought chains
A Model Context Protocol server for searching and analyzing arXiv papers
An open-source AI agent that brings the power of Gemini directly into your terminal.
The official Python SDK for Model Context Protocol servers and clients
MCP Security Weekly
Get CVE alerts and security updates for Go Mcp Server and similar servers.
Start a conversation
Ask a question, share a tip, or report an issue.
Sign in to join the discussion.
A Model Context Protocol (MCP) server implementation in Go that provides tea information through tools, resources, and prompts.
Note: This project is for learning purposes only. I built this MCP server from scratch to understand the Model Context Protocol specification. For production use, consider using mcp-go or wait for the official MCP Go SDK to be released (expected end of June 2025).
This MCP server, especially the mcp package, was written with the help of Claude Code using the latest version of the MCP specification (2025-06-21).
stdio (default), http with SSE# Build the binary
go build ./cmd/go-mcp-server
# Run with stdio transport (default)
./go-mcp-server
# Run with HTTP transport
./go-mcp-server -transport http -port 8080
# Test with MCP Inspector
echo '{"jsonrpc":"2.0","method":"initialize","id":1}' | ./go-mcp-server
The server binary accepts several command line arguments to configure its behavior:
./go-mcp-server [options]
| Argument | Type | Default | Description |
|----------|------|---------|-------------|
| -transport | string | stdio | Transport protocol to use (stdio or http) |
| -port | int | 8080 | HTTP server port (only used with -transport http) |
| -request-timeout | duration | 30s | Maximum time to wait for request processing |
| -shutdown-timeout | duration | 10s | Maximum time to wait for graceful shutdown |
| -log-level | string | info | Log level (debug, info, warn, error) |
| -log-json | bool | false | Output logs in JSON format |
| -server-name | string | MCP Server | Server name returned in initialization |
| -server-version | string | 1.0.0 | Server version returned in initialization |
# Default stdio transport with debug logging
./go-mcp-server -log-level debug
# HTTP transport on custom port with JSON logs
./go-mcp-server -transport http -port 9000 -log-json
# Custom timeouts for production use
./go-mcp-server -transport http -request-timeout 60s -shutdown-timeout 30s
# Custom server identification
./go-mcp-server -server-name "My Tea Server" -server-version "2.0.0"
getTeaNames - List all available teasgetTeaInfo - Get detailed tea information and brewing instructionsgetTeasByType - Filter teas by type (Green Tea, Black Tea, Oolong Tea, White Tea)menu://tea - Complete tea collection with prices and detailstea_recommendation - Personalized recommendations based on mood/preferencesbrewing_guide - Detailed brewing instructions for specific teastea_pairing - Food pairing suggestionsTry these commands to explore the tea collection:
# List all available teas
echo '{"jsonrpc":"2.0","method":"tools/call","id":1,"params":{"name":"getTeaNames","arguments":{}}}' | ./go-mcp-server
# Get information about a specific tea
echo '{"jsonrpc":"2.0","method":"tools/call","id":2,"params":{"name":"getTeaInfo","arguments":{"name":"earl-grey"}}}' | ./go-mcp-server
# Get all oolong teas
echo '{"jsonrpc":"2.0","method":"tools/call","id":3,"params":{"name":"getTeasByType","arguments":{"type":"Oolong Tea"}}}' | ./go-mcp-server
# Read the complete tea menu resource
echo '{"jsonrpc":"2.0","method":"resources/read","id":4,"params":{"uri":"menu://tea"}}' | ./go-mcp-server
# Get a brewing guide for gyokuro
echo '{"jsonrpc":"2.0","method":"prompts/get","id":5,"params":{"name":"brewing_guide","arguments":{"tea_name":"gyokuro"}}}' | ./go-mcp-server
``
... [View full README on GitHub](https://github.com/cbrgm/go-mcp-server#readme)