Go代码审查工具

Go Review MCP是一个提供实时访问官方Go风格指南的服务器,用于智能代码审查。

  • by BrunoKrugel
  • Go
  • 本地部署
  • 4 星标
  • 更新于
在 GitHub 查看 BrunoKrugel/go-review-mcp

使用说明

查看MCP

一个模型上下文协议(MCP)服务器,提供对官方Go风格指南的实时访问,用于智能代码审查。

概述

Go Review MCP直接从官方和推荐来源获取最新的风格指南:

官方

推荐

特性

工具

  • search_live_guide -在所有实时获取的Go风格指南内容中搜索特定模式(首次使用时自动获取指南)
  • 获取指南主题 -从所有实时指南中提取特定主题的内容(命名、错误、并发性、测试、接口、格式、注释、导入、上下文)
  • 获取查看指南 -获取特定主题的精心策划的评论指南

提示

  • review_code -全面的Go代码审查
  • check_naming -查看命名约定
  • 检查错误处理 -查看错误处理模式
  • check_concurrency -查看并发模式
  • 检查测试 -审查测试代码质量
  • check_界面 -审查界面设计

安装

使用go install

go install github.com/BrunoKrugel/go-review-mcp@latest

来源

git clone https://github.com/BrunoKrugel/go-review-mcp.git
cd go-review-mcp
make build

配置

克劳德桌面版

添加到您的 claude_desktop_config.json:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

视窗: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "go-review": {
      "command": "go-review-mcp",
      "args": []
    }
  }
}

如果从源代码安装,请使用二进制文件的完整路径:

{
  "mcpServers": {
    "go-review": {
      "command": "/path/to/go-review-mcp/bin/go-review-mcp",
      "args": []
    }
  }
}

游标或VS代码扩展名

{
  "mcpServers": {
    "go-review": {
      "command": "go-review-mcp",
      "args": []
    }
  }
}

心动

{
  "go-review-mcp": {
    "type": "stdio",
    "command": "go-review-mcp",
    "timeout": 120,
    "disabled": false
  },
}

HTTP模式(用于使用MCP检查器进行测试)

# Start server in HTTP mode
go-review-mcp --transport http --port 8080

# Or with environment variable
TRANSPORT=http PORT=8080 go-review-mcp

然后使用 MCP检查员 测试:

npx @modelcontextprotocol/inspector http://localhost:8080/mcp

用法

基本工作流程

  1. 检查您的代码:

    Use the review_code prompt with your Go code
    
  2. 获取具体指导:

    Use get_guide_topic for focused advice on topics like "naming" or "errors"
    

    指南在首次使用时会自动获取并缓存24小时。

  3. 搜索模式:

    Use search_live_guide to find specific content across all guides
    

交互示例

全面的代码审查:

Please review this Go code:
[paste your code]

查看具体主题:

Check the naming conventions in this code

搜索指南:

Search the style guides for information about error wrapping

获取特定主题的内容:

Show me all guidelines about concurrency from the style guides

可用主题

以下主题将在所有指南中自动索引:

  • naming -命名约定和标识符规则
  • errors -错误处理和错误包装模式
  • concurrency -Goroutines、通道、互斥体、上下文使用
  • testing -测试结构、表驱动测试、最佳实践
  • interfaces -界面设计和使用模式
  • formatting -代码格式和样式
  • comments -文件和评论惯例
  • imports -导入组织和分组
  • context -背景。上下文使用和模式

配置选项

服务器支持通过环境变量进行配置:

  • TRANSPORT -运输方式: stdio (默认)或 http
  • PORT -使用HTTP传输时的HTTP端口(默认值:8080)
  • CACHE_TTL -获取指南的缓存持续时间(默认值:24小时)

例子:

CACHE_TTL=12h go-review-mcp

发展

建筑

make build

运行测试

make test

在本地运行

make run

运作原理

  1. 延迟抓取:首次使用工具时会自动获取样式指南(无需手动初始化)
  2. 内容解析:指南被解析为具有自动主题索引的结构化部分
  3. 统一搜索:所有搜索和主题查询都会自动扫描所有提取的指南
  4. MCP集成:通过模型上下文协议公开简单的工具和提示

主要特点

  • 按需自动提取:首次使用时,指南会延迟获取——不需要手动获取步骤
  • 并发抓取:所有指南都是并行获取的,以便快速初始化
  • 智能缓存:24小时缓存减少了网络请求并提高了性能
  • 主题索引:按主题(命名、错误、并发性等)自动对内容进行分类
  • 没有配置:开箱即用-无需选择使用哪些指南

建筑

┌─────────────────┐
│   AI Assistant  │
│  (Claude, etc.) │
└────────┬────────┘
         │ MCP Protocol (stdio/http)
┌────────▼──────────────────────┐
│  Go Review MCP Server         │
│  - 3 Tools                    │
│  - 6 Prompts                  │
│  - Concurrent HTTP Fetcher    │
│  - 24h Cache (in-memory)      │
│  - Content Parser             │
│  - Topic Indexer              │
└────────┬──────────────────────┘
         │ HTTPS (parallel)
┌────────▼──────────────────────┐
│  Official Style Guide Sources │
│  ├─ Google Go Guide           │
│  ├─ Google Go Decisions       │
│  ├─ Google Go Best Practices  │
│  └─ Uber Go Style Guide       │
└───────────────────────────────┘

数据流

  1. 按需提取:第一个工具调用触发所有4个指南的并发获取
  2. 解析:每个指南都被解析为包含元数据的部分
  3. 索引:章节会自动按主题分类
  4. 查询:搜索和主题工具扫描所有索引内容
  5. 缓存:结果将缓存24小时以提高性能

需求

  • 转到1.21或更高版本
  • 用于获取实时指南的互联网连接(嵌入式规则离线工作)

许可证

MIT许可证-有关详细信息,请参阅许可证文件

贡献

欢迎投稿!请随时提交拉取请求。

致谢

此工具聚合以下内容: