Skip to main content

MCP server for multi-LLM deliberation with anonymized peer review

Project description

LLM Council MCP Server

Multi-LLM deliberation with anonymized peer review -- as an MCP tool.

PyPI License: MIT

Quick Start

1. Install

uvx llm-deliberate-mcp
# or
pip install llm-deliberate-mcp

2. Get an API Key

Get an OpenRouter API key (provides access to all major LLM providers).

3. Add to Your MCP Client

{
  "mcpServers": {
    "llm-deliberate": {
      "command": "uvx",
      "args": ["llm-deliberate-mcp"],
      "env": {
        "OPENROUTER_API_KEY": "sk-or-v1-..."
      }
    }
  }
}

How It Works

User Question
    |
    v
Stage 1: 4 LLMs answer independently (parallel)
    |
    v
Stage 2: Models peer-review anonymized responses
    |       (Response A, B, C, D -- no model names)
    v
Stage 3: Chairman synthesizes the best final answer
    |
    v
Final Answer + Metrics + Rankings

When Deliberation Helps (and When It Doesn't)

Works best for:

  • Architecture decisions with genuine tradeoffs
  • Complex problems requiring multiple perspectives
  • Code review and design critique
  • Strategic planning and risk assessment
  • Security review of authentication flows

Works poorly for:

  • Simple factual questions (use a single model)
  • Calculations and data lookups (use a single model)
  • Tasks under time pressure (30-90 sec overhead)
  • Repetitive/routine tasks

Honesty note: Research (DeliberationBench, Jan 2026) shows that for simple QA tasks, a single strong model outperforms multi-model deliberation. LLM Council is designed for complex decisions where multiple perspectives add genuine value.

Configuration

  • OPENROUTER_API_KEY (required)
  • COUNCIL_MODELS (optional, comma-separated)
  • CHAIRMAN_MODEL (optional)
  • COUNCIL_TIMEOUT (optional, seconds)
  • COUNCIL_MAX_TOKENS (optional)

Client Configuration Examples

Claude Desktop

{
  "mcpServers": {
    "llm-deliberate": {
      "command": "uvx",
      "args": ["llm-deliberate-mcp"],
      "env": {"OPENROUTER_API_KEY": "sk-or-v1-your-key-here"}
    }
  }
}

Claude Code

{
  "mcpServers": {
    "llm-deliberate": {
      "command": "uvx",
      "args": ["llm-deliberate-mcp"],
      "env": {"OPENROUTER_API_KEY": "sk-or-v1-your-key-here"}
    }
  }
}

Cursor

{
  "mcpServers": {
    "llm-deliberate": {
      "command": "uvx",
      "args": ["llm-deliberate-mcp"],
      "env": {"OPENROUTER_API_KEY": "sk-or-v1-your-key-here"}
    }
  }
}

Generic MCP client (Python)

import asyncio
from mcp import ClientSession, StdioServerParameters
from mcp.client.stdio import stdio_client

async def main():
    server_params = StdioServerParameters(
        command="uvx",
        args=["llm-deliberate-mcp"],
        env={"OPENROUTER_API_KEY": "sk-or-v1-your-key-here"},
    )

    async with stdio_client(server_params) as (read, write):
        async with ClientSession(read, write) as session:
            await session.initialize()
            result = await session.call_tool(
                "council_deliberate",
                arguments={"prompt": "Should we use microservices or a monolith?"},
            )
            print(result)

asyncio.run(main())

API Reference

  • council_deliberate(prompt, models=None, chairman=None, depth="standard", contract_stack=None)
  • council_status()
  • council_configure(stage1_models=None, stage2_models=None, chairman_model=None, timeout_seconds=None)

Cost Transparency

Each deliberation uses roughly 10-15 API calls and typically costs about $0.03-$0.15 depending on model mix and prompt length. Responses include cost_estimate_usd.

Self-Learning

Deliberation metadata is stored locally in ~/.llm-council/deliberations.db for pattern learning. No learning data is sent externally.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

llm_deliberate_mcp-0.1.0.tar.gz (21.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

llm_deliberate_mcp-0.1.0-py3-none-any.whl (25.7 kB view details)

Uploaded Python 3

File details

Details for the file llm_deliberate_mcp-0.1.0.tar.gz.

File metadata

  • Download URL: llm_deliberate_mcp-0.1.0.tar.gz
  • Upload date:
  • Size: 21.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for llm_deliberate_mcp-0.1.0.tar.gz
Algorithm Hash digest
SHA256 ee9085afeee66ac431448f23c1f0e3279fccb4b14afab1d426d28e9227969246
MD5 05597efe30d0e67b0f37bbedc66271ef
BLAKE2b-256 b06441a97468e2e0c7f969ae83f05769002c0b0a9ca4421b56c25b9ff0e894ce

See more details on using hashes here.

Provenance

The following attestation bundles were made for llm_deliberate_mcp-0.1.0.tar.gz:

Publisher: publish.yml on elhamid/llm-council

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file llm_deliberate_mcp-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for llm_deliberate_mcp-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7d3746435e9434716984d3551482b1ee471c29f5537950325e4cad6675db8378
MD5 dcb19c68dfc1e6cc3b4c8ebcc558cd55
BLAKE2b-256 a2b25429dda2de8cf87f7a70bb819b1f8574a6132acc4fe6fecb7b03dbeae43b

See more details on using hashes here.

Provenance

The following attestation bundles were made for llm_deliberate_mcp-0.1.0-py3-none-any.whl:

Publisher: publish.yml on elhamid/llm-council

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page