consensus-mcp
ai-consensus-mcp
Минималистичный stdio-сервер Model Context Protocol, который предоставляет протокол Consensus Validation Protocol в виде единого инструмента
consensus. Дайте Claude Code, Cursor, Windsurf — или любому другому MCP-хосту — возможность организовать настоящий многомодельный круглый стол.
Тонкая обертка над ai-consensus-core. Один инструмент, один файл конфигурации, никакой лишней суеты.
Что вы получаете
Один MCP-инструмент:
consensus. Укажите список моделей и персон, чтобы запустить многораундовые дебаты.Любой OpenAI-совместимый провайдер. xAI Grok, Anthropic (через OpenAI-совместимый эндпоинт), OpenAI, Groq, Together, Fireworks или ваш собственный шлюз. Один адаптер, настраиваемый для каждого участника.
Прогресс в реальном времени. Каждое структурированное событие движка пересылается как уведомление о прогрессе MCP — хосты отображают статус раунда, участника, разногласий и оценки в реальном времени.
Минимум зависимостей.
@modelcontextprotocol/sdk,zod,ai-consensus-core. Парсинг SSE реализован через нативныйfetch— никаких SDK провайдеров.
Related MCP server: Claude Code AI Collaboration MCP Server
Протокол
Информацию о самом протоколе — раундах, фазах, промптах, оценках — см. в диаграмме протокола ai-consensus-core. Этот README описывает только интерфейс сервера.
Установка
Через npm:
# Globally, for use as a binary
npm install -g ai-consensus-mcp
# Or as a project dependency
npm install ai-consensus-mcpИли клонируйте и запустите:
git clone https://github.com/entropyvortex/ai-consensus-mcp.git
cd ai-consensus-mcp
npm install
npm run buildНастройка
Скопируйте пример и отредактируйте его:
cp consensus.config.example.json ./consensus.config.jsonМинимальная структура:
{
"providers": {
"xai": {
"baseUrl": "https://api.x.ai/v1",
"apiKeyEnv": "GROK_API_KEY"
},
"anthropic": {
"baseUrl": "https://api.anthropic.com/v1",
"apiKeyEnv": "ANTHROPIC_API_KEY"
}
},
"participants": [
{ "id": "grok", "provider": "xai", "modelId": "grok-4", "personaId": "pessimist" },
{ "id": "domain", "provider": "anthropic", "modelId": "claude-sonnet-4-6", "personaId": "domain-expert" },
{ "id": "devil", "provider": "xai", "modelId": "grok-4", "personaId": "devils-advocate" }
],
"judge": {
"provider": "xai",
"modelId": "grok-4"
}
}Справочник конфигурации
providers.<id>.baseUrl string OpenAI-compatible base URL. No trailing /chat/completions.
providers.<id>.apiKeyEnv string Name of the env var holding the API key.
providers.<id>.extraHeaders object? Static headers sent on every request (rarely needed).
participants[].id string Stable participant id (appears in events + progress).
participants[].provider string Key into providers.
participants[].modelId string Opaque model id the provider accepts.
participants[].personaId enum One of: pessimist, first-principles, vc-specialist,
scientific-skeptic, optimistic-futurist,
devils-advocate, domain-expert.
participants[].label string? Optional display label.
judge.provider string? Key into providers.
judge.modelId string? Opaque judge model id.
judge.temperature number? Defaults to 0.3.
judge.maxOutputTokens number? Defaults to 1500.
defaults.maxRounds int? 1–10, defaults 4.
defaults.earlyStop bool? Defaults true.
defaults.convergenceDelta number? Defaults 3.
defaults.disagreementThreshold number? Defaults 20.
defaults.blindFirstRound bool? Defaults true.
defaults.randomizeOrder bool? Defaults true.
defaults.participantTemperature number? Defaults 0.7.
defaults.maxOutputTokens int? Defaults 1500.
defaults.useJudge bool? Defaults true if `judge` is declared, else false.Каждое поле, отсутствующее в этом списке, отклоняется загрузчиком конфигурации — опечатки приводят к явной ошибке, а не к молчаливому игнорированию.
Автономный запуск
export GROK_API_KEY=xai-...
export ANTHROPIC_API_KEY=sk-ant-...
ai-consensus-mcp --config ./consensus.config.jsonСервер использует JSON-RPC через stdio. Строка готовности, например:
ai-consensus-mcp ready — 3 participant(s) from 2 provider(s), judge=grok-4 (config: /abs/consensus.config.json)записывается в stderr при запуске; stdout зарезервирован для потока протокола MCP.
Регистрация в MCP-хосте
Claude Desktop
Отредактируйте ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) или эквивалентный файл в Windows:
{
"mcpServers": {
"consensus": {
"command": "ai-consensus-mcp",
"args": ["--config", "/absolute/path/to/consensus.config.json"],
"env": {
"GROK_API_KEY": "xai-...",
"ANTHROPIC_API_KEY": "sk-ant-..."
}
}
}
}(Если вы не устанавливали пакет глобально, замените "command": "ai-consensus-mcp" на "command": "node" и укажите в args путь к /path/to/ai-consensus-mcp/dist/index.js.)
Перезапустите Claude Desktop. Вы должны увидеть доступный инструмент consensus.
Claude Code
claude mcp add consensus \
--scope user \
-- ai-consensus-mcp --config /absolute/path/to/consensus.config.jsonИли отредактируйте ~/.claude.json напрямую с той же структурой command / args / env.
Cursor, Windsurf и другие хосты
Укажите им ai-consensus-mcp --config <path>/consensus.config.json с соответствующими API-ключами провайдеров в переменных окружения. Только транспорт stdio.
Инструмент consensus
Входные данные
{
"prompt": "Should an early-stage startup adopt microservices from day one?",
"maxRounds": 4, // optional, 1–10
"participantIds": ["grok", "domain"], // optional — subset of configured participants
"earlyStop": true, // optional
"judge": true, // optional — defaults to config.defaults.useJudge
"blindFirstRound": true, // optional
"randomizeOrder": true, // optional
"convergenceDelta": 3, // optional
"disagreementThreshold": 20, // optional
"participantTemperature": 0.7, // optional
"maxOutputTokens": 1500, // optional
"randomSeed": 42 // optional — deterministic round-order shuffle
}Обязателен только prompt. Все остальное берется из defaults в конфигурации, а затем из настроек по умолчанию самого движка.
Выходные данные
Два артефакта при каждом успешном вызове:
content[0].text— читаемое человеком резюме в формате markdown:Итоговая оценка, длительность, причина остановки
Таблица оценок по раундам
Ответы финального раунда, помеченные персоной + моделью
Синтез судьи (если
judge: true)
structuredContent— полный объектConsensusResultв формате JSON для программной обработки.
Уведомления о прогрессе
Каждое структурированное событие движка пересылается как сообщение MCP notifications/progress. События потоковой передачи на уровне токенов намеренно отбрасываются — они бы переполнили канал.
Событие движка | Пример сообщения о прогрессе |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
progress увеличивается монотонно при roundComplete и synthesisComplete; total равен maxRounds + (judge ? 1 : 0).
Ошибки
Ошибки загрузки конфигурации являются фатальными при запуске и выводятся в stderr с указанием пути к ошибочному полю.
Ошибки ввода инструмента возвращают
{ isError: true, content: [{ type: "text", text: "…" }] }— хост видит их, но сервер продолжает работу.Ошибки провайдера (HTTP не 2xx, пустые потоки) записываются в поле
response.errorдля конкретного участника, и выполнение продолжается с оставшимися участниками. Ошибки видны как в потоке прогресса, так и в итоговом структурированном результате.Отмена. Когда хост отменяет вызов инструмента,
AbortSignalраспространяется на каждый активныйfetch, и движок возвращаетConsensusResultсо статусомstopReason: "aborted".
Ограничения и нецелевые задачи
Нет персистентности. Каждый вызов инструмента — это новый запуск. Если вам нужна история, записывайте
structuredContentна стороне хоста.Нет HTTP-транспорта. Только stdio. Для HTTP/SSE используйте
ai-consensus-coreнапрямую.Нет контроля лимитов токенов.
maxOutputTokensносит рекомендательный характер для каждого вызова; настраивайте оповещения об использовании на дашбордах ваших провайдеров.Нет планировщика нескольких запусков. Один запуск на вызов, последовательно, если хост ставит их в очередь.
Если что-то из этого станет для вас критически важным, основная библиотека — лучшее место для расширения; этот сервер намеренно сделан крошечным.
Разработка
git clone https://github.com/entropyvortex/ai-consensus-mcp.git
cd ai-consensus-mcp
npm install
npm run test # vitest — config loader + MCP handshake integration
npm run build
npm start -- --config ./consensus.config.jsonФилософия
Основная библиотека должна работать везде — Next.js, CLI, worker, Durable Object, другой MCP-сервер. Именно поэтому она не знает, что такое LLM-провайдер.
Этот пакет — то самое «везде», которое нужно большинству в первую очередь: stdio MCP-сервер, который легко встраивается в Claude Code, Cursor, Windsurf или любой хост, поддерживающий протокол. Он намеренно мал — загружает конфигурацию, пересылает события и ничего больше. Если вы перерастете его, ядро всегда под рукой.
См. также
ai-consensus-core— базовая библиотека. Используйте её напрямую, если вам нужен HTTP-транспорт, пользовательские планировщики или более глубокая интеграция.
Лицензия
MIT
Часть стека entropyvortex — практичный, честный ИИ с открытым исходным кодом от Marcelo Ceccon.
Сделано с ❤️ в Бразилии.
Лицензия MIT • Создано для использования.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
No tool schema history has been recorded yet.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
MCP server for building and testing AI agents with multi-model experimentation and insights.
MCP server unifying ERPs, CRMs, APIs and knowledge base for Claude, ChatGPT and Gemini.
AI Reasoning Cache & Consensus Layer with 11 MCP tools via Streamable HTTP.
MCP server providing access to the Scorecard API to evaluate and optimize LLM systems.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol server that enables collaborative debates between multiple AI agents, allowing them to discuss and reach consensus on user prompts.1MIT
- AlicenseBqualityDmaintenanceAn MCP server that enables multi-provider AI collaboration using models like DeepSeek, OpenAI, and Anthropic through strategies such as parallel execution and consensus building. It provides specialized tools for side-by-side content comparison, quality review, and iterative refinement across different AI providers.41MIT
- AlicenseAqualityCmaintenanceAn MCP server that enables users to query, compare, and synthesize responses from multiple local and cloud LLMs simultaneously using existing subscriptions. It provides tools for parallel model evaluation, consensus polling with an LLM-as-judge, and response synthesis across different model providers.81515MIT
- AlicenseNot gradedqualityDmaintenanceAn MCP server that orchestrates multiple AI agents in parallel to get diverse perspectives on a single topic, supporting debate, review, and quick modes.341Apache 2.0
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/entropyvortex/ai-consensus-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server