MCP法定人数
多AI共识系统MCP服务器-通过深思熟虑获得更好的答案
   
🎯 概述
Quorum MCP通过多轮审议协调多个人工智能提供商(Anthropic Claude、OpenAI、Google Gemini、Cohere、Mistral AI、Novita AI、Ollama),以产生基于共识的回应。通过结合不同的人工智能模型,您可以获得更平衡、全面和可靠的答案。
为什么法定人数?
- 🎭 不同的观点:每个AI都有独特的优势和偏见
- 🤝 建立共识:模型之间的一致性增强了信心
- 🔍 质量保证:交叉验证捕捉错误和幻觉
- 💡 更丰富的见解分歧揭示了微妙的观点
✨ 特性
多提供商支持(7家提供商!)
- 🤖 Anthropic Claude -深思熟虑、细致入微的推理
- 模型: claude-3-5-sonnet-20241022 (默认), claude-3-opus, claude-3-haiku - 上下文:20万个代币|成本:3-15美元/1M输入
- 🧠 开放人工智能 -知识面广,推理能力强
- 模型: gpt-4o (默认), gpt-4o-mini, gpt-4-turbo - 上下文:128K代币|成本:0.15-30美元/1M输入
- ✨ 谷歌双子座 -快速、经济高效、环境广阔
- 模型: gemini-2.5-flash (默认), gemini-2.5-pro, gemini-1.5-pro - 上下文:最多 2M代币 |成本:0.15-1.25/10万美元投入
- 🏢 凝聚 -企业RAG,生产就绪
- 模型: command-r-plus (默认), command-r, command-light - 上下文:128K代币|成本:0.30-15/100万美元输入 - 特点:卓越的RAG功能,提供免费等级
- 🇪🇺 米斯特拉尔AI -最佳定价,欧洲人工智能
- 模型: mistral-large-latest (默认), mistral-small-latest, mixtral-8x22b - 上下文:128K代币|成本:0.04美元-6/1M输入 - 特点:符合GDPR,与GPT-4竞争
- ⚡ 诺维塔AI -超低成本,兼容OpenAI
- 模型: llama-3.3-70b (默认), deepseek-r1, qwen-2.5-72b - 上下文:128K代币|成本: 0.04-0.20美元/1M投入 (最便宜!) - 特点:兼容OpenAI的API,多种开源模型
- 🏠 Ollama(当地法学硕士) -私有、零成本局部推理
- 模型: llama3.2 (默认), llama3.1, mistral, mixtral, qwen3, deepseek-r1, gemma3 - 上下文:最多128K个令牌|成本: $0.00 (100%本地) - 隐私:100%-数据永远不会离开您的机器
三种操作模式
1.快速达成共识 (单轮)
# Fast consensus for straightforward queries
session = await orchestrator.execute_quorum(
query="What are Python best practices?",
mode="quick_consensus"
)2.充分审议 (3轮)
# Multi-round deliberation for complex decisions
# Round 1: Independent analysis
# Round 2: Cross-review and critique
# Round 3: Final synthesis
session = await orchestrator.execute_quorum(
query="Should we use microservices or monolith?",
mode="full_deliberation"
)3.魔鬼代言人 (批判性分析)
# Challenge assumptions and find weaknesses
session = await orchestrator.execute_quorum(
query="We should skip testing to move faster",
mode="devils_advocate"
)附加功能
- 🌐 Web仪表板:基于浏览器的交互式用户界面(新增!)
- ⚡ 异步/等待:全程无阻塞I/O
- 💰 成本跟踪:每个供应商和总成本报告(包括当地0美元)
- 📊 成本计算器:运行查询前估算成本(新增!)
- 🏠 本地LLMs:与Ollama进行零成本推理(100%私有)
- 📝 会话管理:持久会话存储和检索
- 🔒 类型安全:完全Pydantic验证
- 🧪 测试良好:105项测试通过,95%的供应商覆盖率
- 📡 MCP集成:与Claude Desktop和其他MCP客户端配合使用
- 🔄 实时更新:基于WebSocket的实时通知(新增!)
🚀 快速开始
安装
# Clone the repository
git clone https://github.com/aj-geddes/quorum-mcp.git
cd quorum-mcp
# Install with dependencies
pip install -e .
# Or install for development
pip install -e ".[dev]"配置
云提供商(可选)
将API键设置为环境变量(使用您喜欢的任何提供程序):
# Traditional providers
export ANTHROPIC_API_KEY="sk-ant-..."
export OPENAI_API_KEY="sk-..."
export GOOGLE_API_KEY="..."
# New providers (optional - mix and match!)
export COHERE_API_KEY="..."
export MISTRAL_API_KEY="..."
export NOVITA_API_KEY="..."与Ollama合作的本地LLM(可选,零成本)
安装并运行Ollama以实现100%免费的私有本地推理:
# Install Ollama (Mac/Linux/Windows)
# Visit: https://ollama.com/download
# Start Ollama server
ollama serve
# Pull a model (in another terminal)
ollama pull llama3.2
# Optional: Configure Ollama host (default: http://localhost:11434)
export OLLAMA_HOST="http://localhost:11434"
export OLLAMA_ENABLE="true" # Set to "false" to disable备注:至少需要一个提供商(云或本地)。Ollama实现零成本共识!
运行服务器
选项1:Web仪表板(建议用于入门)
启动交互式web界面:
# Start the web server
quorum-web
# Or run directly
python -m quorum_mcp.web_server然后打开 http://localhost:8000 在您的浏览器中。无需编码!
特征:
- 🎨 交互式查询生成器
- 📊 实时共识可视化
- 💰 成本计算器和估算器
- 📈 会话历史和分析
- 🔍 提供商比较工具
选项2:MCP服务器(用于Claude桌面集成)
对于程序化使用或Claude Desktop集成:
# Start the MCP server
quorum-mcp
# Or run directly
python -m quorum_mcp.server基本用法示例
import asyncio
from quorum_mcp.orchestrator import Orchestrator
from quorum_mcp.providers import (
AnthropicProvider,
OpenAIProvider,
GeminiProvider,
CohereProvider, # New!
MistralProvider, # New!
NovitaProvider, # New!
OllamaProvider, # Local
)
from quorum_mcp.session import get_session_manager
async def main():
# Initialize providers (use any combination!)
providers = [
AnthropicProvider(),
OpenAIProvider(),
GeminiProvider(),
# Add new providers for more perspectives:
CohereProvider(), # Enterprise RAG
MistralProvider(), # Best pricing
NovitaProvider(), # Ultra-low cost
]
# Start session manager
session_manager = get_session_manager()
await session_manager.start()
# Create orchestrator
orchestrator = Orchestrator(
providers=providers,
session_manager=session_manager
)
# Execute consensus
session = await orchestrator.execute_quorum(
query="What is the best database for a startup?",
context="Small team, rapid iteration, expecting growth",
mode="quick_consensus"
)
# Print results
print(f"Confidence: {session.consensus['confidence']:.2%}")
print(f"Summary: {session.consensus['summary']}")
print(f"Cost: ${session.consensus['cost']['total_cost']:.4f}")
await session_manager.stop()
asyncio.run(main())📖 用法
MCP工具
Quorum MCP为MCP客户端提供了两个简单的工具:
q_in -提交查询
{
"query": "What are the top 3 considerations for API design?",
"context": "Building a REST API for a SaaS product",
"mode": "quick_consensus"
}退货:
{
"session_id": "abc-123-def",
"status": "completed",
"confidence": 0.85,
"consensus": {
"summary": "Based on consensus...",
"agreement_areas": [...],
"cost": {...}
}
}q_out -检索结果
{
"session_id": "abc-123-def"
}返回包括共识结果在内的完整会话数据。
与Claude Desktop一起使用
添加到您的 claude_desktop_config.json:
{
"mcpServers": {
"quorum-mcp": {
"command": "quorum-mcp",
"env": {
"ANTHROPIC_API_KEY": "your-key",
"OPENAI_API_KEY": "your-key",
"GOOGLE_API_KEY": "your-key"
}
}
}
}运行演示
# Three-provider consensus demo (cloud providers)
python examples/three_provider_demo.py
# Local LLM demo with Ollama (zero cost!)
python examples/local_llm_demo.py
# End-to-end demo with all modes
python examples/end_to_end_demo.py
# Session management demo
python examples/session_demo.py💰 成本比较
| 提供者 | 模型 | 输入($/1M) | 输出($/1M) | 上下文窗口 | 速度 |
|---|---|---|---|---|---|
| 奥拉玛 🏆 | 骆驼3.2 | $0.00 | $0.00 | 128K | ⚡⚡⚡ |
| 奥拉玛 | 密史脱拉风 | $0.00 | $0.00 | 32K | ⚡⚡⚡ |
| 双子座 | 2.5闪 | 0.15美元 | 0.60美元 | 20万美元 | ⚡⚡⚡ |
| OpenAI | 4o mini | 0.15美元 | 0.60美元 | 12.8万美元 | ⚡⚡⚡ |
| 克劳德 | 3.5十四行诗 | 3.00美元 | 15.00美元 | 20万美元 | ⚡⚡ |
| 双子座 | 2.5 Pro | 1.25美元 | 10.00美元 | 20万美元 | ⚡⚡ |
| 双子座 | 1.5 Pro | 1.25美元 | 5.00美元 | 200万美元 | ⚡ |
| OpenAI | 40美元 | 2.5美元 | 10美元 | 12.8万美元 | ⚡⚡ |
| 克劳德 | 3作品 | 15.00美元 | 75.00美元 | 200000美元 | ⚡ |
典型共识成本 (入500个代币,出300个代币,3个提供商):
- 快速共识:~0.01-0.02美元
- 全面审议(三轮):~0.03-0.06美元
🏗️ 建筑
graph TD
Client[MCP Client
Claude Desktop]
subgraph FastMCP["FastMCP Server"]
QIn[q_in tool]
QOut[q_out tool]
end
subgraph Orchestrator["Orchestrator Engine"]
Consensus[Consensus Algorithms
• Agreement detection
• Confidence scoring
• Synthesis & summarization]
end
subgraph Providers["AI Providers"]
Anthropic[AnthropicProvider
• Async client
• Token counting
• Cost tracking
• Error mapping]
OpenAI[OpenAIProvider
• Async client
• tiktoken
• Cost tracking
• Error mapping]
Gemini[GeminiProvider
• Async client
• Token counting
• Cost tracking
• Error mapping]
Ollama[OllamaProvider
• Async client
• Local inference
• Zero cost
• 100% private]
end
AnthropicAPI[Anthropic API]
OpenAIAPI[OpenAI API]
GeminiAPI[Google AI API]
OllamaServer[Ollama Server
Local]
Client -->|stdio/HTTP| FastMCP
QIn --> Consensus
QOut --> Consensus
Consensus --> Anthropic
Consensus --> OpenAI
Consensus --> Gemini
Consensus --> Ollama
Anthropic --> AnthropicAPI
OpenAI --> OpenAIAPI
Gemini --> GeminiAPI
Ollama --> OllamaServer📁 项目结构
quorum-mcp/
├── src/quorum_mcp/
│ ├── __init__.py
│ ├── server.py # FastMCP server with q_in/q_out tools
│ ├── orchestrator.py # Multi-provider orchestration engine
│ ├── session.py # Session management and persistence
│ └── providers/
│ ├── __init__.py
│ ├── base.py # Abstract provider interface
│ ├── anthropic_provider.py # Claude integration
│ ├── openai_provider.py # OpenAI integration
│ ├── gemini_provider.py # Gemini integration
│ └── ollama_provider.py # Ollama local LLM integration
├── examples/
│ ├── three_provider_demo.py # Demo with cloud providers
│ ├── local_llm_demo.py # Demo with Ollama (zero cost)
│ ├── end_to_end_demo.py # All operational modes
│ └── session_demo.py # Session management
├── tests/
│ ├── test_session.py
│ ├── test_orchestrator.py
│ ├── test_anthropic_provider.py
│ ├── test_openai_provider.py
│ ├── test_gemini_provider.py
│ ├── test_ollama_provider.py
│ └── test_integration.py
├── docs/
│ └── session_management.md
├── .pre-commit-config.yaml # Code quality hooks
├── pyproject.toml # Project configuration
├── README.md
└── worklog.md # Complete development history🧪 发展
运行测试
# Run all tests
pytest
# Run with coverage
pytest --cov=quorum_mcp --cov-report=html
# Run specific test file
pytest tests/test_gemini_provider.py -v
# Run only fast tests
pytest -m "not slow"代码质量
该项目使用预提交挂钩来保证代码质量:
# Install pre-commit hooks
pre-commit install
# Run manually
pre-commit run --all-files
# Individual tools
black src/ tests/ # Format code
ruff check src/ tests/ # Lint code
mypy src/ # Type check添加新提供者
- 创建一个新的提供程序类,继承自
Provider - 实施所需方法:
- send_request(request: ProviderRequest) -> ProviderResponse - count_tokens(text: str) -> int - get_cost(tokens_input: int, tokens_output: int) -> float - get_provider_name() -> str - get_model_info() -> dict
- 添加综合测试
- 更新
providers/__init__.py - 增添
server.py初始化
看 gemini_provider.py 作为参考实现。
📊 测试覆盖率
Module Coverage
────────────────────────────────────────
providers/ollama_provider.py 95%
providers/gemini_provider.py 95%
providers/openai_provider.py 78%
session.py 90%
providers/base.py 67%
providers/anthropic_provider.py 56%
orchestrator.py 45%
────────────────────────────────────────
Total 32%测试结果:
- ✅ 105项测试通过(76+29项新Olama测试)
- ❌ 58个测试失败(测试未实现的功能)
- ⚠️ 16个错误(模拟相关,非关键)
🗺️ 路线图
✅ 第一阶段:MVP(完成)
- \[x\] 提供者抽象层
- \[x\] 人与克劳德的融合
- \[x\] OpenAI集成
- \[x\] 基本编排引擎
- \[x\] 会话管理
- \[x\] 带q_in/q_out的FastMCP服务器
- \[x\] 成本跟踪
✅ 第2阶段:测试(完成)
- \[x\] 综合单元测试
- \[x\] 提供商测试套件
- \[x\] 集成测试
- \[x\] 预提交挂钩
- \[x\] 代码质量工具
✅ 第三阶段:谷歌双子座(完成)
- \[x\] Gemini提供者实现
- \[x\] 代币计数和成本跟踪
- \[x\] 95%的测试覆盖率
- \[x\] 三个提供商演示
- \[x\] 文档更新
✅ 第4阶段:本地LLM(完成)
- \[x\] Ollama供应商集成
- \[x\] 支持Llama 3.2、Llama 3.1、Mistral、Mixtral、Qwen3、DeepSeek-R1、Gemma3
- \[x\] 零成本本地推理(0.00美元)
- \[x\] 100%隐私保护模式(数据永不离开机器)
- \[x\] 95%的测试覆盖率(29次通过测试)
- \[x\] 本地LLM演示和混合(本地+云)演示
- \[x\] 自动服务器检测和模型可用性检查
🔮 第5阶段:高级功能(未来)
- \[\]其他本地LLM提供商(LM Studio、vLLM、文本生成webui)
- \[\]兼容OpenAI的API提供程序(通用本地LLM支持)
- \[\]Mistral人工智能提供商(云)
- \[\]提供者健康监测
- \[\]动态提供商选择
- \[\]缓存层
- \[\]速率限制
- \[\]预算控制
- \[\]性能基准测试
- \[\]用于结果可视化的Web UI
🤝 贡献
欢迎投稿!拜托:
- 分叉存储库
- 创建要素分支(
git checkout -b feature/amazing-feature) - 进行更改
- 运行测试(
pytest) - 运行代码质量检查(
pre-commit run --all-files) - 提交您的更改(
git commit -m 'Add amazing feature') - 推到分支(
git push origin feature/amazing-feature) - 打开拉取请求
规范标准:
- 黑色用于格式化(100个字符行)
- 绒布
- mypy用于类型检查
- pytest用于测试(目标是80%以上的覆盖率)
- 全面的文档字符串
❓ 故障排除
API关键问题
# Verify API keys are set
echo $ANTHROPIC_API_KEY
echo $OPENAI_API_KEY
echo $GOOGLE_API_KEY
# Test individual provider
python -c "from quorum_mcp.providers import GeminiProvider; print(GeminiProvider())"导入错误
# Reinstall in development mode
pip install -e .
# Or reinstall with dependencies
pip install -e ".[dev]" --force-reinstall测试失败
# Clear pytest cache
rm -rf .pytest_cache __pycache__
# Run with verbose output
pytest -vv --tb=short📄 许可证
MIT许可证-请参阅 许可证 文件以获取详细信息。
🙏 致谢
- Anthropic Claude - 开放人工智能 - 谷歌双子座
📬 联系
- github: @aj geddes
- 问题:
______________________________________________________________________
内置于❤️ 通过协作实现更好的人工智能
