AndrewDonelson_go-mcp-server-service
A JSON-RPC 2.0 compliant server implementing the Model Context Protocol (MCP) for note management.
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
- Optional
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
- Required arguments:
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-service
Release 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-darwin
Run locally:
# Run command-line interface
make run-cmd
# Run service
make run-service
View all available targets:
make help
Build Output
Binaries are created in the bin
directory:
- Development builds:
bin/dev/<platform>/
- Release builds:
bin/release/<platform>/
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/<platform>/notes-server",
"args": []
}
}
}
Release Configuration (Service Example)
{
"mcpServers": {
"notes-server": {
"command": "./bin/release/<platform>/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.md
Debugging
Since the server runs over stdio, we recommend using the MCP Inspector for debugging:
npx @modelcontextprotocol/inspector ./bin/dev/<platform>/notes-server
The 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
Related MCP Servers
View all knowledge_and_memory servers āgit-mcp
by idosal
GitMCP is a free, open-source, remote Model Context Protocol (MCP) server that transforms GitHub projects into documentation hubs, enabling AI tools to access up-to-date documentation and code.
Knowledge Graph Memory Server
by modelcontextprotocol
A basic implementation of persistent memory using a local knowledge graph, allowing Claude to remember information about the user across chats.
mcpdoc
by langchain-ai
MCP LLMS-TXT Documentation Server provides a structured way to manage and retrieve LLM documentation using the Model Context Protocol.
rust-docs-mcp-server
by Govcraft
The Rust Docs MCP Server provides an up-to-date knowledge source for specific Rust crates, enhancing the accuracy of AI coding assistants by allowing them to query current documentation.
mindmap-mcp-server
by YuChenSSR
A Model Context Protocol (MCP) server for converting Markdown content to interactive mindmaps.
algorand-mcp
by GoPlausible
This is a Model Context Protocol (MCP) implementation for Algorand blockchain interactions, providing a server package for blockchain interactions and a client package for wallet management and transaction signing.
mcp-obsidian
by MarkusPfundstein
MCP server to interact with Obsidian via the Local REST API community plugin.