Content
# Model Council MCP Server
`mcp-name: io.github.ivanantigravity-lgtm/model-council-mcp-server`
MCP server that runs the same task through **3 models in parallel** and returns their short answers.
Claude then makes a final summary.
Two presets:
- `china` — Moonshot Kimi, Qwen, DeepSeek
- `usa` — Gemini, Grok, OpenAI
## When to Call
Useful when:
- The task is ambiguous
- There's a risk of a single model providing a confident but incorrect answer
- Weaknesses, objections, and trade-offs are important
- Three different perspectives are needed, not just one answer
Not recommended for:
- Simple facts
- Quick summarization
- Tasks that can be solved by a single normal model
## Installation Requirements
- `Claude Desktop` or `Claude Code`
- [`uv`](https://docs.astral.sh/uv/)
- Python 3.11+
- `POLZA_AI_API_KEY` — key obtained from [polza.ai/dashboard/api-keys](https://polza.ai/dashboard/api-keys)
Install `uv`:
```bash
curl -LsSf https://astral.sh/uv/install.sh | sh
```
## Installation in 2 Minutes (via PyPI + uvx)
### Claude Code / VS Code
Create `.mcp.json` in the project root:
```json
{
"mcpServers": {
"model-council": {
"command": "uvx",
"args": ["model-council-mcp-server@latest"],
"env": {
"POLZA_AI_API_KEY": "your-polza-api-key-here"
}
}
}
}
```
Restart Claude Code.
### Claude Desktop (macOS)
File `~/Library/Application Support/Claude/claude_desktop_config.json`:
```json
{
"mcpServers": {
"model-council": {
"command": "uvx",
"args": ["model-council-mcp-server@latest"],
"env": {
"POLZA_AI_API_KEY": "your-polza-api-key-here"
}
}
}
}
```
### Claude Desktop (Windows)
File: `%APPDATA%\Claude\claude_desktop_config.json`. Contents are identical.
## Verification
After restarting Claude, ask:
> Run through model council (usa) the task: Should I add a subscription to my product?
Claude should call the `tri_model_scan` tool and return three short answers.
## Tools
- `tri_model_scan` — Three models answer one task
- `tri_model_compare` — Comparison of multiple options
- `tri_model_red_team` — Attack on an idea, plan, or offer
- `council_model_guide` — Brief guide on strengths and weaknesses of models
Each tool has a `preset` parameter (`china` or `usa`).
## Presets
### `china`
- `moonshotai/kimi-k2.5`
- `qwen/qwen3.6-plus`
- `deepseek/deepseek-v3.2`
### `usa`
- `google/gemini-3.1-flash-lite-preview`
- `x-ai/grok-4.1-fast`
- `openai/gpt-5.4-nano`
Verify model IDs through `GET https://polza.ai/api/v1/models/catalog`. If a model is renamed on Polza, substitute its ID using the environment variables below.
## Environment Variables
| Variable | Required | Default |
| --- | --- | --- |
| `POLZA_AI_API_KEY` | yes | — |
| `POLZA_BASE_URL` | no | `https://polza.ai/api/v1` |
| `COUNCIL_CHINA_MOONSHOT_MODEL` | no | `moonshotai/kimi-k2.5` |
| `COUNCIL_CHINA_QWEN_MODEL` | no | `qwen/qwen3.6-plus` |
| `COUNCIL_CHINA_DEEPSEEK_MODEL` | no | `deepseek/deepseek-v3.2` |
| `COUNCIL_USA_GEMINI_MODEL` | no | `google/gemini-3.1-flash-lite-preview` |
| `COUNCIL_USA_GROK_MODEL` | no | `x-ai/grok-4.1-fast` |
| `COUNCIL_USA_OPENAI_MODEL` | no | `openai/gpt-5.4-nano` |
| `LOG_LEVEL` | no | `INFO` |
## Server Response
Compact JSON:
- Task
- Context
- Three raw short answers from models
- Sources for each model
The server forces models to answer briefly, without filler content or repeating the question, to avoid inflating the Claude context.
## Local Development
```bash
git clone https://github.com/ivanantigravity-lgtm/model-council-mcp-server.git
cd model-council-mcp-server
uv sync
POLZA_AI_API_KEY=your_key uv run python -m model_council_mcp_server.server
```
## License
MIT