Labsco
MCP SERVER

Second Opinion

by dshills

Send a diff, a commit or your uncommitted work to OpenAI, Gemini, Mistral or a local Ollama model and get a second review back.

Model Routing, Multi-Model Consultation & Cost Control
Summary
A different model reviewing the same code, with Ollama as the no-key option.

Four providers with per-provider tuning means you can run security reviews on a hosted model and keep everything else on a local Ollama instance where no code leaves the machine. The `analyze_uncommitted_work` tool is the one with the clearest daily use: it reads the working tree, tells you whether the change is ready, and proposes how to split it.

What it is

An MCP server that reviews code using a different model from the one you are talking to. Point it at a diff, a commit SHA or the working tree and it sends the content to a provider you configured — OpenAI, Google, Mistral, or Ollama running locally — and returns the analysis. The premise is disagreement: a second opinion from another model is worth more than the same model checking itself.

What you get
  • A git diff read and explained, optionally summarised, with the provider and model overridable per call — `analyze_git_diff`
  • A code review focused on `security`, `performance`, `style` or `all`, with temperature tuned per focus — 0.1 for security reviews, 0.2 for general review — `review_code`
  • A commit assessed for message quality and adherence to practice, defaulting to HEAD — `analyze_commit`
  • Uncommitted work analysed before you commit: what changed, whether it is coherent, suggested commit messages, and whether it should be split — with `staged_only` to look at just the index — `analyze_uncommitted_work`
  • Repository facts with no model call at all — `get_repo_info`
  • Token budget scaled to the input rather than fixed: 4096 for diffs under 5KB up to 32768 for diffs over 500KB, with automatic chunking past 10MB or 1000 files
Requirements

Go 1.20 or higher and git; build with `go build -o bin/second-opinion` and point your client at the binary. Configuration is a `~/.second-opinion.json` in your home directory, which takes precedence, or environment variables — `DEFAULT_PROVIDER` plus the key for whichever you chose (`OPENAI_API_KEY`, `GOOGLE_API_KEY`, `MISTRAL_API_KEY`), or `OLLAMA_ENDPOINT` for a local model that needs no key. Repository paths are validated and restricted to the current working directory and below, commit SHAs are validated before use, and every provider call has a 30-second timeout.