# elhamid/llm-council [Health: Active]

**Category:** 🤖 Coding Agents  
**Repository:** https://github.com/elhamid/llm-council  
**GitHub Stars:** 8  
**Views:** 4  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/elhamid-llm-council

## Description
Multi-LLM deliberation with anonymized peer review. Runs a 3-stage council: parallel responses → anonymous ranking → synthesis. Based on Andrej Karpathy's LLM Council concept.

## Claude Desktop Quick Installation
Heuristic fallback — verify the package name and runner against the repository README before running it. Uses `npx` (confidence: low):

```json
"mcpServers": {
  "llm-council": {
    "command": "npx",
    "args": ["-y","elhamid-llm-council"],
    "env": {
      "OPENROUTER_API_KEY": ""
    }
  }
}
```

**Requires environment variables:** `OPENROUTER_API_KEY` — the values above are empty placeholders; fill in real credentials before running (see the repository for what each one is for).

## Documentation

## What elhamid/llm-council MCP server does

The repository implements a local, browser-based council for comparing responses from multiple language models. A submitted prompt is sent to the models listed in the backend configuration through OpenRouter. The application displays the individual answers, collects peer evaluations, and then asks a selected Chairman model to produce the final response.

The elhamid/llm-council MCP server fork adds persistence and auditability changes around this workflow. Completed runs retain Stage 1 answers, Stage 2 rankings, the mapping between anonymous labels and models, aggregate ranking data, and model roles. Conversation history is loaded from the current backend data layout and can also recognize legacy layouts.

The README identifies the implemented role set as Builder, Reviewer, Synthesizer, and Contrarian, with provider-default mappings in the backend. These roles are intended to give participating models different review perspectives before synthesis.

## How it works

Processing takes place in three stages:

1. Each configured council model independently answers the user’s prompt.
2. Models review anonymized versions of the other responses and rank them for qualities such as accuracy and insight. Stage 2 removes duplicate judge models, and the label-to-model mapping is preserved for later inspection.
3. The Chairman receives the collected material and writes the final answer shown to the user.

The backend exposes a streaming endpoint that reports stage start and completion events using Server-Sent Events. The frontend is a React and Vite application that presents responses, reviews, and conversation history. Data is stored in JSON files rather than an external database.

## Setup and configuration

Python dependencies are managed with uv, while the frontend uses npm. The documented setup runs `uv sync` for the backend and `npm install` inside the `frontend` directory. A root `.env` file must contain `OPENROUTER_API_KEY`, and the key must have access to the OpenRouter credits needed for the selected models.

Council membership and the Chairman are configured in `backend/config.py`. The examples use model identifiers from OpenRouter, but the README indicates that this configuration can be customized. The application can be started with the repository’s `start.sh` script or by running the backend and frontend development processes separately. Once running, the browser interface is available at `http://localhost:5173`.

## Limitations and notes

The elhamid/llm-council MCP server is described in the supplied material as a local web app, not as a documented MCP tool implementation. No MCP transport, tool list, MCP client configuration, or compatibility with Claude Desktop, Cursor, Windsurf, or Cline is specified. Developers looking specifically for an MCP server should verify the repository’s current code before selecting it for that purpose.

The project is presented as an experimental fork and is provided without an ongoing support commitment. Running it requires an OpenRouter API key and associated usage credits. Because the council calls several models and then performs review and synthesis, costs depend on the configured models and the number of submitted prompts.

_Full upstream README: https://allmcps.com/mcp/elhamid-llm-council/readme_

