Cover image
Try Now
2025-04-14

Ein GO-Server (GO-fokussierter Modellkontextprotokoll), der idiomatische GO-Codegenerierung, Stilrichtlinien und Best Practices bietet. Dieses Tool hilft Sprachmodellen, nach etablierten Mustern und Konventionen einen hochwertigen GO-Code zu verstehen und zu generieren.

3 years

Works with Finder

1

Github Watches

1

Github Forks

4

Github Stars

MCP GO Tools

Tests CodeQL codecov Go Report Card License: MIT

A Go-focused Model Context Protocol (MCP) server that provides idiomatic Go code generation, style guidelines, and best practices. This tool helps Language Models understand and generate high-quality Go code following established patterns and conventions.

Note: This project is under active development. The following features are currently being implemented:

  • Go-specific code pattern recognition and generation
  • Idiomatic Go code style enforcement
  • Go project structure templates

The project follows clean architecture principles and is designed for extensibility.

About MCP Protocol

The Model Context Protocol (MCP) is implemented using the github.com/metoro-io/mcp-golang library. The server:

  • Uses stdio transport for communication
  • Supports graceful shutdown
  • Handles concurrent operations using errgroups
  • Provides Go-specific code generation tools

Installation

go install github.com/ksysoev/mcp-go-tools/cmd/mcp-go-tools@latest

Features

  • Go-specific code generation and style guidelines
  • Command-line interface built with Cobra
  • Flexible configuration using YAML/JSON files
  • Structured logging with slog
    • File output support with --log-file flag (writes to file instead of stdout)
    • JSON and text formats
    • Configurable log levels
    • Debug logging for request tracking
  • Server management commands
  • Signal handling for graceful shutdown

Quick Start

Basic Command Structure

mcp-go-tools [command] [flags]

For detailed usage examples and patterns, see USAGE.md.

Common Commands

Start Server

Starts the MCP server with the specified configuration:

mcp-go-tools start --config config.yaml

Run with File Logging

Run the server with logs written to a file instead of stdout:

# JSON format (default)
mcp-go-tools start --config config.yaml --log-file=server.log

# Text format with debug level for request tracking
mcp-go-tools start --config config.yaml --log-file=server.log --log-text --log-level=debug

Note: When --log-file is provided, logs will be written only to the specified file, not to stdout.

Architecture

The application follows a clean, layered architecture typical of Go projects:

  1. API Layer (pkg/api)

    • Handles MCP protocol communication via stdio transport
    • Manages server lifecycle with graceful shutdown
    • Implements Go code generation tools
    • Uses errgroups for concurrent operations
  2. Core Layer (pkg/core)

    • Implements Go code pattern recognition
    • Manages code style rules
    • Processes MCP requests
    • Designed for extensibility with interface-based components
  3. Repository Layer (pkg/repo)

    • Manages Go code patterns and templates
    • Supports named resource definitions
    • Implements simple data persistence
    • Uses Viper for resource configuration mapping
  4. Command Layer (pkg/cmd)

    • Implements CLI commands
    • Handles configuration and logging setup

Global Flags

--config string      Config file path
--log-level string   Log level (debug, info, warn, error) (default "info")
--log-text          Log in text format, otherwise JSON
--log-file string   Log file path (if set, logs to stdout)

Configuration File

The tool supports configuration via a JSON/YAML file. Specify the config file path using the --config flag. See example.config.yaml for Go-specific patterns and rules.

Project Structure

.
├── cmd/
│   └── mcp-go-tools/              # Main application entry point
├── pkg/
│   ├── api/             # API service implementation
│   ├── cmd/             # Command implementations
│   ├── core/            # Core business logic
│   └── repo/            # Data repositories

Dependencies

  • Go 1.23.4 or higher
  • github.com/metoro-io/mcp-golang - MCP protocol implementation
  • github.com/spf13/cobra - CLI framework
  • github.com/spf13/viper - Configuration management
  • golang.org/x/sync - Synchronization primitives

Development

Project Status

The project is in active development with the following components:

  • ✅ CLI framework and command structure
  • ✅ Configuration management
  • ✅ MCP protocol integration
  • ✅ Idiomatic Go code generation
  • ✅ Go project templates
  • ✅ Mockery support
  • 🚧 Add integration linters

Building from Source

go build -o mcp-go-tools ./cmd/mcp-go-tools

Running Tests

go test ./...

Using with Cline

To use this MCP server with Cline, add it to Cline's MCP settings

Add the following configuration to the mcpServers object in the settings file:

{
  "mcpServers": {
    "code-tools": {
      "command": "mcp-go-tools",
      "args": ["server", "--config=/Users/user/mcp-go-tools/example.config.yaml"],
      "env": {}
    }
  }
}

Custom instructions example:

Use project template to initialize new applications in GoLang, it's available in MCP server code-tools `codestyle` with category `template`

Every time you need to generate code use MCP server code-tools to `codestyle` for required category `code`, `documentation`, `testing`

example of request to MCP server code-tool:
{
  "method": "tools/call",
  "params": {
    "name": "codestyle",
    "arguments": {
      "categories": "testing" #Comma separate list
    },
  }
}

Before finishing task you should run `golangci-lint` and recursively address issues until all issues are fixed

to fix field alignment issues you should use `fieldalignment -fix ./...`

License

This project is licensed under the MIT License - see the LICENSE file for details.

相关推荐

  • NiKole Maxwell
  • I craft unique cereal names, stories, and ridiculously cute Cereal Baby images.

  • Bora Yalcin
  • Evaluator for marketplace product descriptions, checks for relevancy and keyword stuffing.

  • Joshua Armstrong
  • Confidential guide on numerology and astrology, based of GG33 Public information

  • https://suefel.com
  • Latest advice and best practices for custom GPT development.

  • Callycode Limited
  • A geek-themed horoscope generator blending Bitcoin prices, tech jargon, and astrological whimsy.

  • Emmet Halm
  • Converts Figma frames into front-end code for various mobile frameworks.

  • Khalid kalib
  • Write professional emails

  • XLwebDev.com
  • PR Professional: Guiding You to Get Media Placements and Publicity Quickly and Effectively

  • Beniyam Berhanu
  • Therapist adept at identifying core issues and offering practical advice with images.

  • Elijah Ng Shi Yi
  • Advanced software engineer GPT that excels through nailing the basics.

  • apappascs
  • Entdecken Sie die umfassendste und aktuellste Sammlung von MCP-Servern auf dem Markt. Dieses Repository dient als zentraler Hub und bietet einen umfangreichen Katalog von Open-Source- und Proprietary MCP-Servern mit Funktionen, Dokumentationslinks und Mitwirkenden.

  • OffchainLabs
  • GO -Umsetzung des Ethereum -Beweises des Anteils

  • huahuayu
  • Ein einheitliches API-Gateway zur Integration mehrerer Ethercan-ähnlicher Blockchain-Explorer-APIs mit Modellkontextprotokoll (MCP) für AI-Assistenten.

  • deemkeen
  • Steuern Sie Ihren MBOT2 mit einer Power Combo: MQTT+MCP+LLM

    Reviews

    1 (1)
    Avatar
    user_K2LStW6C
    2025-04-15

    As a devoted user of the MCP Server Tester by Lokan-Gahir, I am thoroughly impressed by its performance and reliability. This tool simplifies server testing with its user-friendly interface and comprehensive features. It's become an indispensable part of my workflow, ensuring that my servers are consistently running optimally. Highly recommend!