MCP-Mirror

go-mcp-server-service

Community MCP-Mirror
Updated

Mirror of https://github.com/AndrewDonelson/go-mcp-server-service

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-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

MCP Server · Populars

MCP Server · New

    PraneshASP

    Foundry MCP Server

    An experimental MCP Server for foundry built for Solidity devs

    Community PraneshASP
    karakeep-app

    Karakeep MCP Server

    A self-hostable bookmark-everything app (links, notes and images) with AI-based automatic tagging and full text search

    Community karakeep-app
    karakeep-app

    karakeep

    A self-hostable bookmark-everything app (links, notes and images) with AI-based automatic tagging and full text search

    Community karakeep-app
    prisma

    Prisma

    Next-generation ORM for Node.js & TypeScript | PostgreSQL, MySQL, MariaDB, SQL Server, SQLite, MongoDB and CockroachDB

    Community prisma
    iannuttall

    Flux UI MCP Server

    MCP Server

    Community iannuttall