OpenClaw Consensus MCP
Multi-model consensus inside MCP clients: compare answers, surface disagreement, and escalate only when needed.
OpenClaw Consensus MCP wraps the OpenClaw Consensus API as three Model Context Protocol tools. It is designed for workflows where a maintainer wants a second opinion before accepting a risky answer, review summary, or routing decision.
<!-- mcp-name: io.github.MICONNM/openclaw-consensus-mcp -->What it does
OpenClaw runs the same prompt across multiple models, then returns:
- a consensus answer with confidence and model response metadata,
- a disagreement heuristic derived from the deep consensus response, and
- a cheapest route recommendation that tries smaller model sets before escalating.
This MCP server exposes those three capabilities as tools so Claude Desktop / Claude Code can call them mid-conversation.
Why consensus?
A single model can produce a confident but incorrect answer. Comparing multiple responses does not prove correctness, but disagreement is a useful signal that a maintainer should review the output more carefully.
Install
pip install openclaw-consensus-mcp
# or
uv pip install openclaw-consensus-mcp
You also need a RapidAPI key for the OpenClaw Consensus API: https://rapidapi.com/yanmiayn/api/openclaw-consensus
Set it in your environment:
export RAPIDAPI_KEY="your-rapidapi-key"
Claude Desktop config
Add to ~/.claude/claude_desktop_config.json (macOS/Linux) or
%APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"openclaw-consensus": {
"command": "openclaw-consensus",
"env": {
"RAPIDAPI_KEY": "your-rapidapi-key"
}
}
}
}
For Claude Code:
claude mcp add openclaw-consensus -- openclaw-consensus
Tools
consensus(prompt, mode="balanced")
Get a 9-LLM consensus answer.
- prompt (string) — the question.
- mode (string, default
balanced) —deep(9 models),balanced(5), orfast(3).
Returns
{
"consensus": "string",
"confidence": 0.0,
"models_responded": 5,
"votes": []
}
The consensus tool returns the upstream API response as-is. Fields may expand as the endpoint evolves.
disagreement_score(prompt)
How much the deep consensus response disagrees on a prompt.
Returns
{
"disagreement": 0.0,
"confidence": 1.0,
"models_responded": 9,
"votes": []
}
cheapest_route(prompt, target_quality=0.85)
Try fast, balanced, and deep modes in order until the confidence threshold is met.
Returns
{
"selected_mode": "balanced",
"models_used": 5,
"confidence": 0.9,
"answer": "string"
}
Local development
git clone https://github.com/MICONNM/openclaw-consensus-mcp
cd openclaw-consensus-mcp
uv venv && source .venv/bin/activate
uv pip install -e ".[dev]"
pytest
Smoke-test the server with the official MCP Inspector:
npx @modelcontextprotocol/inspector openclaw-consensus
Publish
uv build
uv publish # to PyPI
mcp-publisher publish # to the official MCP Registry
See CONTRIBUTING.md for the development workflow and docs/maintainer-workflow.md for triage, review, security, and release responsibilities.
Limitations
- Consensus is a review aid, not a correctness guarantee.
- Network-backed tools require a configured OpenClaw endpoint and may incur provider charges.
- Do not send secrets, private source code, or personal data unless your endpoint policy explicitly allows it.
Security
Please report vulnerabilities privately using the process in SECURITY.md.
License
MIT — see LICENSE.