MCP Servers

A collection of Model Context Protocol servers, templates, tools and more.

MCP server that gives Claude a review council - other LLMs fact-check responses before you see them

Created 4/4/2026
Updated about 19 hours ago
Repository documentation and setup instructions

Council MCP

An MCP server that gives Claude a review council — other LLMs that fact-check Claude's responses before you see them.

Every review is saved as a Markdown file so you can read, share, or audit the verification trail.

How it works

  1. You ask Claude a question
  2. Claude drafts its answer
  3. Claude calls the council_review tool, sending its draft to Gemini
  4. Gemini extracts every factual claim and verifies each one
  5. Gemini flags disputed claims, unverifiable info, and things needing manual check
  6. Gemini identifies resources Claude missed
  7. The full verification report is shown to you alongside Claude's corrected answer
  8. A .md file with the complete review is saved to reviews/ for your records

Setup

1. Get a free Gemini API key

Go to Google AI Studio and create a key. The free tier is sufficient to get started.

2. Clone and install

git clone https://github.com/alterego-987/council-mcp.git
cd council-mcp
uv sync

Don't have uv? Install it: curl -LsSf https://astral.sh/uv/install.sh | sh

3. Add to Claude Code

Add the following to your ~/.claude.json under mcpServers:

{
  "council": {
    "command": "uv",
    "args": ["run", "--directory", "/path/to/council-mcp", "python", "-m", "council_mcp.server"],
    "env": {
      "GEMINI_API_KEY": "your-key-here"
    },
    "type": "stdio"
  }
}

Replace /path/to/council-mcp with the actual path where you cloned the repo.

4. Restart Claude Code

Start a new session. Claude will now have access to council_review and council_status tools. For complex or technical responses, Claude will automatically send its draft through Gemini for verification.

Note: The council currently works in the Code tab of the Claude desktop app. Chat and Cowork tabs only support cloud-based MCP integrations and do not load local stdio servers.

Available tools

| Tool | Description | |------|-------------| | council_review | Send Claude's response for fact-checking. Saves a .md review file. | | council_status | Check which reviewers are online |

Review files

Every call to council_review saves a timestamped Markdown file to the reviews/ directory (gitignored by default). Each file contains:

  • The original user query
  • Claude's draft response
  • Gemini's full verification report (claim-by-claim)
  • Missed resources and overall assessment

Files are named like 2026-04-04_15-20-03_your-question-slug.md.

You can customize the output directory with the COUNCIL_REVIEWS_DIR environment variable.

Choosing a Gemini model

Set the GEMINI_MODEL environment variable in your MCP config to use a different model:

"env": {
  "GEMINI_API_KEY": "your-key-here",
  "GEMINI_MODEL": "gemini-3-flash-preview"
}

Free tier models (no billing required)

| Model | Best for | |-------|----------| | gemini-3-flash-preview | Best free option — latest generation | | gemini-2.5-flash | Stable, reliable fallback | | gemini-2.5-flash-lite | Fastest, lightest |

Paid models (require billing in Google AI Studio)

| Model | Best for | |-------|----------| | gemini-3.1-pro-preview | Highest quality reviews | | gemini-2.5-pro | Strong pro-tier alternative |

Web search grounding is NOT available on the free tier. Gemini reviews based on its training knowledge and will flag claims it can't verify as UNVERIFIABLE or NEEDS_MANUAL_CHECK.

Architecture

council-mcp/
  src/council_mcp/
    server.py          # MCP server — tool definitions, review file saving
    prompts.py         # System/user prompts for fact-checking
    reviewers/
      base.py          # BaseReviewer ABC, ReviewResult, ClaimVerification
      gemini.py        # Gemini reviewer implementation
  reviews/             # Saved review reports (gitignored)

Adding more reviewers

The system is modular. To add a new reviewer (ChatGPT, Perplexity, Grok, etc.):

  1. Create a new file in src/council_mcp/reviewers/ (e.g., chatgpt.py)
  2. Subclass BaseReviewer and implement:
    • name property — human-readable name
    • review() method — sends the query/response and returns a ReviewResult
    • is_available() method — checks if the API is reachable
  3. Add the reviewer to _build_reviewers() in server.py
  4. Add the API key to your MCP config's env block

Example skeleton:

class ChatGPTReviewer(BaseReviewer):
    @property
    def name(self) -> str:
        return "ChatGPT (gpt-4o)"

    async def review(self, user_query: str, claude_response: str) -> ReviewResult:
        # Call OpenAI API, parse response, return ReviewResult
        ...

    async def is_available(self) -> bool:
        # Ping the API
        ...

Contributing

PRs are welcome! Some ideas:

  • New reviewers — Add ChatGPT, Perplexity, Grok, or other LLMs as reviewers
  • Improved parsing — Make the Gemini response parser more robust
  • Web search integration — Add Perplexity or Tavily for real-time fact-checking with live sources
  • Review dashboard — Build a simple UI to browse saved review files
  • Configurable prompts — Allow users to customize the fact-checking prompt
  • Confidence scoring — Aggregate reviewer scores into a single confidence metric

How to contribute

  1. Fork the repo
  2. Create a feature branch (git checkout -b feature/my-feature)
  3. Make your changes
  4. Submit a PR with a clear description of what you added

License

MIT

Quick Setup
Installation guide for this server

Install Package (if required)

uvx council-mcp

Cursor configuration (mcp.json)

{ "mcpServers": { "alterego-987-council-mcp": { "command": "uvx", "args": [ "council-mcp" ] } } }