Token导航 LogoToken导航TokenDH.com
Second Opinion (second-opinion) logo
开发工具未说明官方级别未说明来源级核验

Second Opinion (second-opinion)

MCP Server

一个基于多LLM的智能代码审查工具,提供Git差异分析、代码质量评估和提交分析功能。

工具数

0

提示词数

0

GitHub Stars

12

资源数

0
代码审查开发工具GoClaudeAI代理Claude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

dshills

提供方

dshills

最后核验

2026/5/17 20:19

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

第二意见🔍

一个MCP(模型上下文协议)服务器,协助Claude Code审查提交和代码库。该工具利用外部LLM(OpenAI、Google Gemini、Ollama、Mistral)提供智能代码审查功能、git差异分析、提交质量评估和未提交工作分析。

特性

  • Git差异分析:使用LLM分析git diff输出以了解代码更改
  • 代码审查:在人工智能的帮助下审查代码的质量、安全性和最佳实践
  • 提交分析:分析git提交的质量和对最佳实践的遵守情况
  • 未承诺工作分析:分析所有未提交的更改或只是阶段性更改
  • 存储库信息:获取有关git存储库的信息
  • 多种LLM支持:与OpenAI、谷歌Gemini、Ollama(本地)和Mistral AI合作
  • 🚀 智能优化:动态令牌分配和特定任务的温度调整
  • ⚡ 性能调整:特定于提供商的优化和内存感知分块
  • 安全:输入验证、安全路径处理和API密钥保护
  • 内存安全:可配置的内存限制和对大差异的流媒体支持

安装

先决条件

  • 达到1.20或更高
  • Git
  • Claude代码桌面应用程序

从源代码构建

  1. 克隆存储库:
git clone https://github.com/dshills/second-opinion.git
cd second-opinion
  1. 安装依赖项:
go mod tidy
  1. 构建服务器:
go build -o bin/second-opinion

配置

Second Opinion支持两种配置方法,优先级顺序如下:

  1. JSON配置文件 (首选): ~/.second-opinion.json 在您的主目录中
  2. 环境变量:使用 .env 文件或系统环境变量

JSON配置(推荐)

创建一个 .second-opinion.json 主目录中的文件:

{
  "default_provider": "openai",
  "temperature": 0.3,
  "max_tokens": 4096,
  "server_name": "Second Opinion 🔍",
  "server_version": "1.0.0",
  "openai": {
    "api_key": "sk-your-openai-api-key",
    "model": "gpt-5-mini"
  },
  "google": {
    "api_key": "your-google-api-key",
    "model": "gemini-2.0-flash-exp"
  },
  "ollama": {
    "endpoint": "http://localhost:11434",
    "model": "devstral:latest"
  },
  "mistral": {
    "api_key": "your-mistral-api-key",
    "model": "mistral-small-latest"
  },
  "memory": {
    "max_diff_size_mb": 10,
    "max_file_count": 1000,
    "max_line_length": 1000,
    "enable_streaming": true,
    "chunk_size_mb": 1
  }
}

🚀 智能优化功能:

  • 动态令牌分配:根据差异大小自动调整令牌(4096-32768)
  • 任务特定温度:根据分析类型优化温度(0.1-0.3)
  • 提供商优化:每个LLM提供程序的自定义参数
  • 内存管理:针对大差异和高文件数的自动分块

环境变量配置

如果没有找到JSON配置,服务器将回退到环境变量:

  1. 复制示例环境文件:
cp .env.example .env
  1. 编辑 .env 并配置LLM提供程序:
# Set your default provider
DEFAULT_PROVIDER=openai  # or google, ollama, mistral

# Configure each provider with its own API key and preferred model
OPENAI_API_KEY=sk-your-openai-api-key
OPENAI_MODEL=gpt-5-mini  # or gpt-5, gpt-5-nano, gpt-5-chat-latest, gpt-4o, gpt-4o-mini, gpt-4-turbo, gpt-3.5-turbo

GOOGLE_API_KEY=your-google-api-key
GOOGLE_MODEL=gemini-2.0-flash-exp  # or gemini-1.5-flash, gemini-1.5-pro

OLLAMA_ENDPOINT=http://localhost:11434
OLLAMA_MODEL=devstral:latest  # or llama3.2, codellama, mistral, etc.

MISTRAL_API_KEY=your-mistral-api-key
MISTRAL_MODEL=mistral-small-latest  # or mistral-large-latest, codestral-latest

# Global settings apply to all providers
LLM_TEMPERATURE=0.3  # Controls randomness (0.0-2.0, default: 0.3)
LLM_MAX_TOKENS=4096  # Maximum response length (default: 4096)

使用Claude Code进行设置

1.找到克劳德代码配置

配置文件的位置取决于您的操作系统:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • 视窗: %APPDATA%\Claude\claude_desktop_config.json
  • Linux: ~/.config/Claude/claude_desktop_config.json

2.编辑配置

打开配置文件并添加Second Opinion服务器:

选项1:使用JSON配置(推荐)

{
  "mcpServers": {
    "second-opinion": {
      "command": "/path/to/second-opinion/bin/second-opinion"
    }
  }
}

替换 /path/to/second-opinion 使用克隆存储库的实际路径。

选项2:使用环境变量

{
  "mcpServers": {
    "second-opinion": {
      "command": "/path/to/second-opinion/bin/second-opinion",
      "env": {
        "DEFAULT_PROVIDER": "openai",
        "OPENAI_API_KEY": "your-openai-api-key",
        "OPENAI_MODEL": "gpt-5-mini",
        "LLM_TEMPERATURE": "0.3",
        "LLM_MAX_TOKENS": "4096"
      }
    }
  }
}

3.重新启动克劳德代码

保存配置后,重新启动Claude Code以使更改生效。

4.验证安装

在Claude Code中,您应该在MCP服务器列表中看到“第二意见”。您可以通过以下方式进行测试:

"What git repository information can you get from the current directory?"

可用工具

1. analyze_git_diff 🚀 优化

使用配置的LLM自动优化来分析git diff输出,以了解代码更改。

参数:

  • diff_content (必填):要分析的Git差异输出
  • summarize (可选):是否提供更改摘要
  • provider (可选):要使用的LLM提供程序(覆盖默认值)
  • model (可选):要使用的模型(覆盖提供程序默认值)

智能优化:

  • 动态令牌分配:4096-32768个基于差异大小的令牌
  • 温度调谐:0.25针对差异分析进行了优化
  • 分块:大差异(>10MB或>1000个文件)的自动分块
  • 提供商特定:每个LLM提供程序的自定义参数

克劳德代码中的示例:

"Analyze this git diff and tell me what changed: [paste diff here]"

2. review_code 🚀 优化

使用配置的LLM和特定于任务的优化来审查代码的质量、安全性和最佳实践。

参数:

  • code (必填):需审查的代码
  • language (可选):代码的编程语言
  • focus (可选):特定焦点区域- security, performance, style,或 all
  • provider (可选):要使用的LLM提供程序(覆盖默认值)
  • model (可选):要使用的模型(覆盖提供程序默认值)

智能优化:

  • 任务特定温度:0.1用于安全重点(高精度),0.2用于一般代码审查
  • 动态令牌分配:使用代码大小进行全面分析
  • 焦点感知分析:每个重点领域的专门提示和参数

克劳德代码中的示例:

"Review this Python code for security issues: [paste code here]"

3. analyze_commit 🚀 优化

使用配置的LLM和特定于提交的优化来分析git提交的质量和对最佳实践的遵守情况。

参数:

  • commit_sha (可选):Git提交SHA进行分析(默认:HEAD)
  • repo_path (可选):git存储库的路径(默认:当前目录)
  • provider (可选):要使用的LLM提供程序(覆盖默认值)
  • model (可选):要使用的模型(覆盖提供程序默认值)

智能优化:

  • 提交分析温度:0.2用于一致性、确定性提交分析
  • 内存安全差分处理:通过自动截断处理大型提交
  • 综合分析:包括提交消息质量、差异分析和最佳实践

克劳德代码中的示例:

"Analyze the latest commit in this repository"
"Analyze commit abc123 and tell me if it follows best practices"

4. analyze_uncommitted_work 🚀 优化

分析git存储库中未提交的更改,以帮助通过智能优化为提交做好准备。

参数:

  • repo_path (可选):git存储库的路径(默认:当前目录)
  • staged_only (可选):仅分析阶段性更改(默认值:false,分析所有未提交的更改)
  • provider (可选):要使用的LLM提供程序(覆盖默认值)
  • model (可选):要使用的模型(覆盖提供程序默认值)

智能优化:

  • 代码审查温度:0.2用于未提交变更的平衡分析
  • 大型变更集处理:自动分块,可进行大量修改
  • 情境感知分析:针对分阶段工作与所有未提交工作进行量身定制的分析

LLM分析包括:

  • 所有更改摘要(修改、添加、删除的文件)
  • 更改的类型和性质(功能、错误修复、重构等)
  • 完整性和承诺准备
  • 潜在问题或疑虑
  • 如果更改已准备就绪,建议提交消息
  • 如果需要拆分更改,则建议组织提交

克劳德代码中的示例:

"Analyze my uncommitted changes and suggest a commit message"
"Review only my staged changes before I commit"
"Should I split my current changes into multiple commits?"

5. get_repo_info

获取有关git存储库的信息(无LLM分析)。

参数:

  • repo_path (可选):git存储库的路径(默认:当前目录)

克劳德代码中的示例:

"Show me information about this git repository"

安全功能

  • 输入验证:所有存储库路径和提交SHA都经过验证,以防止命令注入
  • 路径限制:存储库路径必须在当前工作目录中
  • API密钥保护:API密钥从不在错误消息或日志中公开
  • HTTP超时:所有LLM API调用都有30秒的超时,以防止挂起
  • 并发访问:并发请求的线程安全提供程序管理

优化系统🚀

Second Opinion包括一个全面的优化系统,可以根据内容和上下文自动调整性能:

动态令牌分配

  • 4096个令牌:差异非常小(\500KB)

任务特定温度设置

  • 0.1:安全审查(最高精度)
  • 0.2:代码审查和提交分析(主要是确定性的)
  • 0.25:差异分析(略微灵活)
  • 0.3:架构审查(允许创造力)

特定于提供商的优化

  • OpenAI:top_p=0.9的完整令牌分配
  • 谷歌:通过集中采样,上限为8192个令牌(top_k=20,top_p=0.8)
  • 米斯特拉尔:保守分配,top_p=0.8
  • 奥拉马:具有repeat_penalty=1.05的局部模型优化

内存管理

  • 自动分块:大差异(>10MB或>1000个文件)被智能分割
  • 智能块尺寸:根据文件计数调整块大小
  • 内存感知流媒体:支持大型操作的流式传输

发展

项目结构

second-opinion/
├── main.go              # MCP server setup and tool registration
├── handlers.go          # Tool handler implementations
├── validation.go        # Input validation functions
├── config/              # Configuration loading and optimization
│   ├── config.go        # Main configuration with optimization methods
│   └── optimization_test.go # Comprehensive optimization tests
├── llm/                 # LLM provider implementations
│   ├── provider.go      # Provider interface, prompts, and optimization wrapper
│   ├── openai.go        # OpenAI implementation
│   ├── google.go        # Google Gemini implementation
│   ├── ollama.go        # Ollama implementation with advanced options
│   └── mistral.go       # Mistral implementation with additional parameters
├── CLAUDE.md           # Claude Code specific instructions
└── TODO.md             # Development roadmap

运行测试

# Run all tests
go test ./... -v

# Run optimization tests specifically
go test ./config -v

# Run specific test suites
go test ./llm -v -run TestProviderConnections

# Run with race detection
go test -race ./...

# Run with coverage
go test -cover ./...

掉毛

# Install golangci-lint if not already installed
go install github.com/golangci/golangci-lint/cmd/golangci-lint@latest

# Run linter
golangci-lint run

# Auto-fix issues where possible
golangci-lint run --fix

建筑

# Build for current platform
go build -o bin/second-opinion

# Build with race detector (for development)
go build -race -o bin/second-opinion

# Build for different platforms
GOOS=darwin GOARCH=amd64 go build -o bin/second-opinion-darwin-amd64
GOOS=linux GOARCH=amd64 go build -o bin/second-opinion-linux-amd64
GOOS=windows GOARCH=amd64 go build -o bin/second-opinion-windows-amd64.exe

故障排除

常见问题

  1. “提供程序未配置”错误

- 确保您已设置 ~/.second-opinion.json 或环境变量 - 检查API密钥是否有效并具有适当的权限

  1. “不是git仓库”错误

- 确保您在具有以下内容的目录中运行该工具 .git 文件夹 - 该工具验证路径是否是安全的git存储库

  1. 超时错误

- 检查您的互联网连接 - 对于Ollama,请确保本地服务器正在运行: ollama serve - 如果超时持续存在,请考虑使用更快的模型

  1. 权限被拒绝错误

- 该工具仅允许访问当前工作目录和子目录 - 确保二进制文件具有执行权限: chmod +x bin/second-opinion

调试模式

要查看详细的日志,您可以直接运行服务器:

./bin/second-opinion 2>debug.log

贡献

欢迎投稿!拜托:

  1. 分叉存储库
  2. 创建要素分支
  3. 确保所有测试均已通过,且棉绒保持清洁
  4. 提交拉取请求

TODO.md 对于计划中的功能和已知问题。

内存使用

对于大型存储库,请参见 docs/MEMORY_USAGE.md 用于配置选项以有效处理较大差异。

许可证

麻省理工学院

目录标签

目录标签

代码审查开发工具GoClaudeAI代理本地部署Git分析AI辅助开发LLM集成

支持客户端

Claude

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

api-key

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明api-key部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP