go-mcp-server-service
A JSON-RPC 2.0 compliant server implementing the Model Context Protocol (MCP) for note management (as an example)
Documentation
go-mcp-server-service
A JSON-RPC 2.0 compliant server implementing the Model Context Protocol (MCP) for note management (as an example)
This is an example. You can modify this and use as a Boilerplate for your own project. It supports cross-platform development and includes a command-line interface and service component for both development and release builds.
Features
- JSON-RPC 2.0 compliant API
- Cross-platform support (Windows, Linux, macOS)
- Thread-safe note management
- Development and release build configurations
- Service and command-line interface components
Components
Command Line Interface (`cmd`)
The command-line interface provides direct access to the notes server functionality.
Service (`service`)
The service component enables system-level integration and background operation.
Resources
The server implements a note storage system with:
- Custom `note://` URI scheme for accessing individual notes
- Resource metadata including name, description, and MIME type
- Thread-safe concurrent access
Prompts
Available prompts:
- `summarize-notes`: Creates summaries of all stored notes
- Optional `style` argument ("brief"/"detailed")
- Combines all current notes with style preference
- Thread-safe note access
Tools
Available tools:
- `add-note`: Adds a new note to the server
- Required arguments: `name` (string), `content` (string)
- Thread-safe state updates
- Returns confirmation message
Building
Prerequisites
- Go 1.21 or later
- GNU Make or compatible build tool
- Git (for version information)
Build Commands
Development builds (includes debug symbols and race detection):
# Build all components for all platforms
make dev
# Build for specific platform
make dev-windows
make dev-linux
make dev-darwin
# Build specific components
make build-cmd
make build-serviceRelease builds (optimized and stripped):
# Build all components for all platforms
make release-all
# Build for specific platform
make release-windows
make release-linux
make release-darwinRun locally:
# Run command-line interface
make run-cmd
# Run service
make run-serviceView all available targets:
make helpBuild Output
Binaries are created in the `bin` directory:
- Development builds: `bin/dev//`
- Release builds: `bin/release//`
Configuration
Claude Desktop Integration
Configure the notes server in Claude Desktop's configuration file:
Location
- MacOS: `~/Library/Application\ Support/Claude/claude_desktop_config.json`
- Windows: `%APPDATA%/Claude/claude_desktop_config.json`
Development Configuration
{
"mcpServers": {
"notes-server": {
"command": "./bin/dev//notes-server",
"args": []
}
}
}Release Configuration (Service Example)
{
"mcpServers": {
"notes-server": {
"command": "./bin/release//notes-service",
"args": []
}
}
}Development
Project Structure
.
├── cmd/ # Command-line interface
├── service/ # Service implementation
├── internal/
│ └── server/ # Core server implementation
│ ├── operations.go # Server operations
│ ├── server.go # Main server logic
│ └── types.go # Type definitions
├── Makefile # Build configuration
└── README.mdDebugging
Since the server runs over stdio, we recommend using the MCP Inspector for debugging:
npx @modelcontextprotocol/inspector ./bin/dev//notes-serverThe Inspector will provide a URL for the debugging interface.
Error Codes
The server implements standard JSON-RPC 2.0 error codes plus custom codes:
| Code | Description | Standard |
|---|---|---|
| -32700 | Parse error | Yes |
| -32600 | Invalid request | Yes |
| -32601 | Method not found | Yes |
| -32602 | Invalid params | Yes |
| -32603 | Internal error | Yes |
| -32001 | Resource not found | No |
| -32002 | Unsupported operation | No |
License
MIT License
Copyright (c) 2024 Andrew Lee Donelson
Frequently asked questions
What is go-mcp-server-service?
go-mcp-server-service is A JSON-RPC 2.0 compliant server implementing the Model Context Protocol (MCP) for note management (as an example)
How do I install go-mcp-server-service?
Open the GitHub repository and follow its README. Most MCP servers are added to your client's MCP config, then called by your agent.
Is go-mcp-server-service open source?
Yes — it is hosted on GitHub at https://github.com/AndrewDonelson/go-mcp-server-service and has 1 stars.
Related MCP tools
:robot: The free, Open Source alternative to OpenAI, Claude and others. Self-hosted and local-first. Drop-in replacement for OpenAI, running on consumer-gra...
MCP Toolbox for Databases is an open source MCP server for databases. Go-based implementation. Trusted by 10900+ developers.
A Go implementation of the Model Context Protocol (MCP), enabling seamless integration between LLM applications and external data sources and tools.
WhatsApp MCP server Go-based implementation. Trusted by 4900+ developers. Trusted by 4900+ developers. Trusted by 4900+ developers.
MCP server for Grafana Go-based implementation. Trusted by 1700+ developers. Trusted by 1700+ developers. Trusted by 1700+ developers.
A CLI host application that enables Large Language Models (LLMs) to interact with external tools through the Model Context Protocol (MCP).
Run your own MCP server? See who uses it and what to fix.
Measure it with TrackMCP