Skip to main content
Glama

ai-consensus-mcp

Consensus Validation Protocol을 단일 consensus 도구로 노출하는 최소한의 stdio Model Context Protocol 서버입니다. Claude Code, Cursor, Windsurf 또는 모든 MCP 호스트에 실제 다중 모델 원탁 회의 기능을 제공하세요.

npm license

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

서버는 stdio를 통해 JSON-RPC로 통신합니다. 시작 시 다음과 같은 준비 완료 라인이 stderr에 기록됩니다:

ai-consensus-mcp ready — 3 participant(s) from 2 provider(s), judge=grok-4 (config: /abs/consensus.config.json)

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

또는 동일한 command / args / env 형태로 ~/.claude.json을 직접 편집하세요.

Cursor, Windsurf 및 기타 호스트

환경에 관련 제공업체 API 키를 설정하고 ai-consensus-mcp --config <path>/consensus.config.json을 가리키도록 하세요. 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로 대체되며, 그 다음 엔진의 기본값으로 대체됩니다.

출력

성공적인 호출마다 두 가지 아티팩트가 생성됩니다:

  1. content[0].text — 사람이 읽을 수 있는 마크다운 요약:

    • 최종 점수, 소요 시간, 중단 이유

    • 라운드별 점수 표

    • 페르소나 + 모델별 최종 라운드 응답

    • 심사위원 종합 의견 (judge: true인 경우)

  2. structuredContent — 프로그래밍 방식으로 소비하기 위한 JSON 형태의 전체 ConsensusResult.

진행 상황 알림

모든 구조화된 엔진 이벤트는 MCP notifications/progress 메시지로 전달됩니다. 토큰 수준의 스트리밍 이벤트는 채널 과부하를 방지하기 위해 의도적으로 제외되었습니다.

엔진 이벤트

진행 상황 메시지 예시

roundStart

Round 2/4 — Counterarguments (sequential) starting

participantStart

grok (grok-4) thinking…

participantComplete

grok done — confidence=72 (4132ms)

confidenceUpdate

running avg round 2: 74.5 (last: grok=72)

disagreementDetected

⚠ disagreement: Risk Analyst vs Optimistic Futurist (Δ=35)

roundComplete

Round 2 complete — score=71, avg=74.5, σ=7.0, disagreements=1

earlyStop

✓ Early stop at round 3: Consensus score delta 2.0 … is at or below …

synthesisStart

Judge synthesis starting (grok-4)…

synthesisComplete

Judge synthesis complete (confidence=84)

finalResult

Consensus complete — finalScore=76, rounds=3, stopReason=converged

progressroundCompletesynthesisComplete 시 단조 증가하며, totalmaxRounds + (judge ? 1 : 0)입니다.

오류

  • 구성 로드 오류는 시작 시 치명적이며, 문제가 발생한 필드 경로와 함께 stderr에 출력됩니다.

  • 도구 입력 오류{ isError: true, content: [{ type: "text", text: "…" }] }를 반환합니다. 호스트는 이를 확인하지만 서버는 계속 실행됩니다.

  • 제공업체 오류 (HTTP 2xx 이외의 응답, 빈 스트림)는 참가자별 response.error 필드에 캡처되며, 실행은 나머지 참가자와 함께 계속됩니다. 오류는 진행 상황 스트림과 최종 구조화된 결과 모두에서 확인할 수 있습니다.

  • 취소. 호스트가 도구 호출을 취소하면 AbortSignal이 진행 중인 모든 fetch로 전파되며, 엔진은 stopReason: "aborted"가 포함된 ConsensusResult를 반환합니다.

제한 사항 및 비목표

  • 지속성 없음. 모든 도구 호출은 새로운 실행입니다. 기록이 필요하면 호스트 측에서 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, 워커, Durable Object, 다른 MCP 서버 등 어디에서나 실행될 수 있어야 합니다. 이것이 LLM 제공업체가 무엇인지 알지 못하는 이유입니다.

이 패키지는 대부분의 사람들이 가장 먼저 필요로 하는 "어디서나" 실행 가능한 stdio MCP 서버입니다. Claude Code, Cursor, Windsurf 또는 프로토콜을 지원하는 모든 호스트에 바로 사용할 수 있습니다. 의도적으로 작게 설계되어 구성을 로드하고 이벤트를 전달하는 역할만 수행합니다. 더 많은 기능이 필요하다면 핵심 라이브러리를 사용하세요.

참고

  • ai-consensus-core — 기반 라이브러리입니다. HTTP 전송, 사용자 정의 스케줄러 또는 더 깊은 통합이 필요한 경우 직접 사용하세요.

라이선스

MIT


entropyvortex 스택의 일부Marcelo Ceccon이 만든 실용적이고 군더더기 없는 AI 오픈 소스.

브라질에서 ❤️를 담아 제작.

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.

Maintenance

ActivityMaintained
ResponsivenessNo issues

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

Related MCP Servers

Latest Blog Posts

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