Skip to main content
Glama

LLM 응답 MCP 서버

여러 AI 에이전트 간의 협력적 토론을 가능하게 하는 MCP(모델 컨텍스트 프로토콜) 서버로, 사용자 프롬프트에 대해 논의하고 합의에 도달할 수 있습니다.

개요

이 프로젝트는 다음과 같은 주요 기능을 통해 LLM 간 다중 턴 대화를 용이하게 하는 MCP 서버를 구현합니다.

  1. 세션 기반 협업 - LLM은 토론 세션에 참가자로 등록할 수 있습니다.

  2. 심의적 합의 - LLM은 합의에 도달하기 위해 확장된 토론에 참여할 수 있습니다.

  3. 실시간 응답 공유 - 모든 참가자가 서로의 기여를 보고 응답할 수 있습니다.

서버는 4가지 주요 도구 호출을 제공합니다.

  1. register-participant : LLM이 초기 응답을 통해 협업 세션에 참여할 수 있도록 허용합니다.

  2. submit-response : LLM이 토론 중에 후속 응답을 제출할 수 있도록 합니다.

  3. get-responses : LLM이 세션 내 다른 LLM의 모든 응답을 검색할 수 있도록 합니다.

  4. get-session-status : LLM이 등록 대기 기간이 완료되었는지 확인할 수 있도록 합니다.

이를 통해 여러 AI 에이전트(예: "에포르스 위원회")가 사용자의 질문에 대해 장기간 심의에 참여하고, 확고한 합의에 도달할 때까지 서로 토론하는 시나리오가 가능해집니다.

Related MCP server: MCP Toolkit

설치

지엑스피1

개발

# Build the TypeScript code bun run build # Start the server in development mode bun run dev

MCP Inspector로 테스트

이 프로젝트에는 MCP 서버를 테스트하고 디버깅하는 도구인 MCP Inspector 에 대한 지원이 포함되어 있습니다.

# Run the server with MCP Inspector bun run inspect

inspect 스크립트는 npx 사용하여 MCP Inspector를 실행하는데, 이 검사기는 브라우저에서 웹 인터페이스를 시작하여 MCP 서버와 상호 작용합니다.

이를 통해 다음을 수행할 수 있습니다.

  • 사용 가능한 도구와 리소스를 탐색하세요

  • 다른 매개변수를 사용한 테스트 도구 호출

  • 서버의 응답 보기

  • MCP 서버 구현 디버깅

용법

서버는 두 개의 엔드포인트를 노출합니다.

  • /sse - MCP 클라이언트가 연결할 서버 전송 이벤트 엔드포인트

  • /messages - MCP 클라이언트가 메시지를 보낼 수 있는 HTTP 엔드포인트

MCP 도구

등록-참가자

협업 세션에 참가자로 등록하세요:

// Example tool call const result = await client.callTool({ name: 'register-participant', arguments: { name: 'Socrates', prompt: 'What is the meaning of life?', initial_response: 'The meaning of life is to seek wisdom through questioning...', persona_metadata: { style: 'socratic', era: 'ancient greece' } // Optional } });

서버는 마지막 참가자가 참여한 후 3초의 등록 기간 동안 기다린 후 응답합니다. 응답에는 모든 참가자의 초기 응답이 포함되므로, 등록 기간이 종료되면 각 LLM이 다른 참가자의 의견에 즉시 응답할 수 있습니다.

제출-응답

토론 중에 후속 답변을 제출하세요.

// Example tool call const result = await client.callTool({ name: 'submit-response', arguments: { sessionId: 'EPH4721R-Socrates', // Session ID received after registration prompt: 'What is the meaning of life?', response: 'In response to Plato, I would argue that...' } });

get-responses

토론 세션의 모든 응답을 검색합니다.

// Example tool call const result = await client.callTool({ name: 'get-responses', arguments: { sessionId: 'EPH4721R-Socrates', // Session ID received after registration prompt: 'What is the meaning of life?' // Optional } });

응답에는 모든 참가자의 기여가 시간순으로 포함되어 있습니다.

세션 상태 가져오기

등록 대기 기간이 경과했는지 확인하세요.

// Example tool call const result = await client.callTool({ name: 'get-session-status', arguments: { prompt: 'What is the meaning of life?' } });

협력적 토론 흐름

  1. LLM은 프롬프트에 대한 초기 응답으로 참가자로 등록합니다.

  2. 서버는 마지막 등록 후 3초 동안 기다린 후 응답을 보냅니다.

  3. 등록 기간이 종료되면 모든 참가자는 모든 참가자의 초기 응답 요약을 받습니다.

  4. 그런 다음 참가자는 서로의 요점에 응답하여 후속 응답을 제출할 수 있습니다.

  5. 토론은 참가자들이 합의에 도달하거나 최대 라운드 수에 도달할 때까지 계속됩니다.

특허

MIT

EC2에 배포

이 프로젝트에는 EC2나 다른 서버 환경에 쉽게 배포할 수 있는 Docker 구성이 포함되어 있습니다.

필수 조건

  • Amazon Linux 2 또는 Ubuntu를 실행하는 EC2 인스턴스

  • 포트 62887에서 인바운드 트래픽을 허용하도록 구성된 보안 그룹

  • 인스턴스에 대한 SSH 액세스

배포 단계

  1. EC2 인스턴스에 저장소를 복제합니다.

    git clone <your-repository-url> cd <repository-directory>
  2. 배포 스크립트를 실행 가능하게 만듭니다.

    chmod +x deploy.sh
  3. 배포 스크립트를 실행합니다.

    ./deploy.sh

스크립트는 다음을 수행합니다.

  • Docker와 Docker Compose가 아직 설치되지 않았다면 설치하세요.

  • Docker 이미지 빌드

  • 컨테이너를 분리 모드로 시작합니다.

  • MCP 서버에 액세스할 수 있는 공개 URL을 표시합니다.

수동 배포

수동으로 배포하는 것을 선호하는 경우:

  1. Docker 이미지를 빌드합니다.

    docker-compose build
  2. 컨테이너를 시작합니다.

    docker-compose up -d
  3. 컨테이너가 실행 중인지 확인하세요.

    docker-compose ps

서버 접속

배포가 완료되면 MCP 서버에 다음 위치에서 액세스할 수 있습니다.

  • http://<ec2-public-ip>:62887/sse - SSE 엔드포인트

  • http://<ec2-public-ip>:62887/messages - 메시지 엔드포인트

EC2 보안 그룹에서 포트 62887이 열려 있는지 확인하세요!

-
security - not tested
A
license - permissive license
-
quality - not tested

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/kstrikis/ephor-mcp-collaboration'

If you have feedback or need assistance with the MCP directory API, please join our Discord server