返回市场
麦普戈工具

麦普戈工具

作者:ksysoev5 星标更新:2025-04-21

项目介绍

MCP GO 工具

测试 代码扫描 代码覆盖率 Go报告卡 MIT许可

这是一个专注于Go语言的模型上下文协议(MCP)服务器,提供符合Go语言习惯的代码生成、样式指南和最佳实践。此工具帮助语言模型理解和生成遵循既定模式和惯例的高质量Go代码。

注意:该项目正在积极开发中。当前正在实现以下功能:

  • 特定于Go的代码模式识别和生成
  • 符合Go语言习惯的代码风格强制执行
  • Go项目结构模板

该项目遵循干净架构原则,并设计为可扩展性。

关于MCP协议

模型上下文协议(MCP)使用github.com/metoro-io/mcp-golang库实现。该服务器:

  • 使用标准I/O传输进行通信
  • 支持优雅关闭
  • 使用错误组处理并发操作
  • 提供特定于Go的代码生成工具

安装

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

功能

  • 特定于Go的代码生成和样式指南
  • 使用Cobra构建的命令行界面
  • 使用YAML/JSON文件的灵活配置
  • 结构化日志记录,支持slog
    • 使用--log-file标志支持文件输出(写入文件而不是stdout)
    • JSON和文本格式
    • 可配置的日志级别
    • 调试日志用于请求跟踪
  • 服务器管理命令
  • 优雅关闭的信号处理

快速开始

基本命令结构

mcp-go-tools [命令] [标志]

有关详细用法示例和模式,请参阅USAGE.md

常见命令

启动服务器

使用指定的配置启动MCP服务器:

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

使用文件日志运行

运行服务器并将日志写入文件而不是stdout:

# JSON格式(默认)
mcp-go-tools start --config config.yaml --log-file=server.log

# 文本格式并启用调试级别以跟踪请求
mcp-go-tools start --config config.yaml --log-file=server.log --log-text --log-level=debug

注意:当提供--log-file时,日志将仅写入指定的文件,而不是stdout。

架构

应用程序遵循典型的Go项目中的干净分层架构:

  1. API层 (pkg/api)

    • 通过标准I/O传输处理MCP协议通信
    • 管理具有优雅关闭的服务器生命周期
    • 实现Go代码生成工具
    • 使用错误组处理并发操作
  2. 核心层 (pkg/core)

    • 实现Go代码模式识别
    • 管理代码样式规则
    • 处理MCP请求
    • 设计为基于接口组件的可扩展性
  3. 存储库层 (pkg/repo)

    • 管理Go代码模式和模板
    • 支持命名资源定义
    • 实现简单的数据持久性
    • 使用Viper进行资源配置映射
  4. 命令层 (pkg/cmd)

    • 实现CLI命令
    • 处理配置和日志设置

全局标志

--config string      配置文件路径
--log-level string   日志级别(debug, info, warn, error)(默认值:"info")
--log-text           使用文本格式的日志,否则为JSON
--log-file string    日志文件路径(如果设置,则日志写入stdout)

配置文件

该工具支持通过JSON/YAML文件进行配置。使用--config标志指定配置文件路径。请参阅example.config.yaml以获取特定于Go的模式和规则。

项目结构

.
├── cmd/
│   └── mcp-go-tools/              # 主应用程序入口点
├── pkg/
│   ├── api/             # API服务实现
│   ├── cmd/             # 命令实现
│   ├── core/            # 核心业务逻辑
│   └── repo/            # 数据存储库

依赖项

  • Go 1.23.4或更高版本
  • github.com/metoro-io/mcp-golang - MCP协议实现
  • github.com/spf13/cobra - CLI框架
  • github.com/spf13/viper - 配置管理
  • golang.org/x/sync - 同步原语

开发

项目状态

该项目正在积极开发中,包含以下组件:

  • ✅ CLI框架和命令结构
  • ✅ 配置管理
  • ✅ MCP协议集成
  • ✅ 符合Go语言习惯的代码生成
  • ✅ Go项目模板
  • ✅ Mockery支持
  • 🚧 添加集成linters

从源码构建

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

运行测试

go test ./...

使用Cline

要使用此MCP服务器与Cline一起使用,请将其添加到Cline的MCP设置中

在设置文件中的mcpServers对象中添加以下配置:

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

自定义指令示例:

使用项目模板初始化新的GoLang应用程序,在MCP服务器code-tools的`codestyle`类别中可用`template`

每次需要生成代码时,请使用MCP服务器code-tools的`codestyle`类别`code`、`documentation`、`testing`

向MCP服务器code-tool发出请求的示例:
{
  "method": "tools/call",
  "params": {
    "name": "codestyle",
    "arguments": {
      "categories": "testing" #逗号分隔列表
    },
  }
}

在完成任务之前,您应该运行`golangci-lint`并递归解决所有问题直到所有问题都得到修复

要解决字段对齐问题,您可以使用`fieldalignment -fix ./...`

许可证

本项目根据MIT许可证发布 - 详情请参阅LICENSE文件。