An MCP server that enables Claude to conduct debates with Gemini as the opposing debater. Claude leads the debate loop while Gemini responds via the google-genai SDK. Maintains conversation state per session with customizable personas and enforces a casual, bantering tone between 20-something males.
Server has 5 tools with complete descriptions and basic schemas. Naming follows verb_noun convention (debate_with_gemini, reset_debate, get_transcript, judge_debate, list_debates). Descriptions are detailed (200-400 chars) and explain WHEN/WHY to use each tool. However, parameter descriptions lack format constraints (e.g., conversation_id has no length/pattern spec), error handling is minimal (returns string errors without recovery guidance), and output schemas are undocumented. No tool annotations (readOnlyHint/destructiveHint) despite clear risk levels. Composition is sound, tools chain logically (debate → get_transcript → judge_debate). Missing pagination for list_debates and no structured output format.
Gemini에게 한 발언을 보내고 답변을 받는 토론 툴. Claude(너)가 자신의 주장/반론을 만들어 이 툴을 호출하면, 서버가 그 발언을 상대 토론자 Gemini에게 전달하고 Gemini의 답변을 돌려준다. 토론 루프(누가 언제 말할지)는 너(Claude)가 이 툴을 반복 호출하며 주도한다.
해당 토론의 지금까지 오간 전체 대화 기록(양측 발언)을 통째로 반환한다. 채팅 세션 히스토리에는 Claude의 발언이 'user', Gemini의 답변이 'model'로 쌓여 있다. 이 툴은 그걸 라운드 순서대로 정리해 돌려준다.
토론이 끝난 뒤 중립 심판이 승자와 패자를 가린다. 토론 당사자(Claude/Gemini)가 자기 토론을 채점하면 불공정하므로, 이 툴은 토론에 참가하지 않은 새 Gemini 세션을 제3자 심판으로 세운다. 그 심판에게 전체 대화 기록을 넘겨 양측 점수와 승패를 판정받아 돌려준다.
현재 메모리에 살아있는 conversation_id 목록을 반환한다(디버깅용).
해당 conversation_id의 토론 세션 기록을 삭제한다.
Output schemas undocumented. Tools return strings or unstructured text (e.g., debate_with_gemini returns raw Gemini response, judge_debate returns formatted text). LLMs cannot plan downstream calls or extract structured data without knowing field names and types.
Parameter constraints missing. conversation_id accepts any string with no length/format validation. persona parameter has no guidance on length or content. LLMs may pass invalid values; no early validation or actionable error messages.
Error handling returns raw strings without recovery guidance. E.g., '[ERROR] Gemini 호출 실패' tells LLM nothing about retry eligibility or next steps. No error classification (retryable vs fatal) or actionable suggestions.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 53 | 2026-07-28+ | v2 |
Tool annotations missing. reset_debate is DESTRUCTIVE but has no destructiveHint. debate_with_gemini is READ_ONLY but has no readOnlyHint. Agents cannot reason about side effects or retry safety.
list_debates has no pagination or limit. Returns all conversation_ids in memory with no offset/limit params. Large deployments risk context window exhaustion.