peer-agents-mcp
peer-agents-mcp
MCP 서버로, 다른 AI 코딩 도구(Codex, Claude, Cursor 등)가 Grok CLI와 Antigravity CLI를 피어 리뷰어이자 협업자로 호출할 수 있게 해줍니다.
하는 일
이 서버는 로컬 grok 및 agy(Antigravity) CLI를 깔끔한 Model Context Protocol(MCP) 인터페이스 뒤로 감쌉니다.
이제 MCP를 지원하는 모든 에이전트는 다음을 할 수 있습니다:
코드 변경, 계획, 오류 또는 질문을 Grok이나 Antigravity에 보내기
구조화된 피어 피드백 받기
세션 메모리를 사용한 다중 턴 리뷰/디버그/계획 세션 실행
동일한 작업에 두 CLI를 모두 실행하여 독립적인 의견 얻기
기본 에이전트(Codex, Claude 등)가 제어권을 유지합니다. 단지 두 번째(또는 다른) 의견이 필요할 때 특정 작업을 이러한 피어에게 위임할 뿐입니다.
Related MCP server: xAI Grok MCP Bridge
핵심 아이디어
하나의 모델이 모든 것을 처리하는 대신, 메인 코딩 에이전트가 Grok과 Antigravity를 피어로 사용할 수 있습니다:
대부분의 코딩 작업(리뷰, 계획, 디버깅, 구현 비평)에는 Grok
대규모 컨텍스트, 일반 지식 또는 멀티모달 작업에는 Antigravity
요청 유형에 따라 스마트 라우팅이 자동으로 수행됩니다.
사용 가능한 도구
도구 | 용도 | 라우팅 대상 |
| 통합 diff 또는 패치 검토 | Grok (보통) |
| 구현 계획 수립 | Grok |
| 로그/스택 트레이스에서 실패 진단 | Grok |
| 테스트/빌드 출력의 안전성 확인 | Grok |
| 일반적인 근거 기반 Q&A | Antigravity |
| 플랜 A와 플랜 B를 독립적으로 비교 | Grok |
| 다중 턴 피어 세션 계속 | 동일한 피어 |
| 장기 실행 후속 턴(백그라운드 작업) | 동일한 피어 |
| 콜드 스타트 Grok 구현 핸드오프(작업) | Grok |
| 장기 실행 diff 리뷰(백그라운드 작업) | Grok |
| 장기 실행 디버그 핸드오프(백그라운드 작업) | Grok |
| 백그라운드 작업 폴링( | — |
| 백그라운드 작업 취소 | — |
| 오래된 최종 상태 작업 가비지 컬렉션 | — |
| 두 CLI를 나란히 호출하는 저수준 비교 | 둘 다 |
추가 세션 도구: peer_summarize, peer_transcript, peer_list_sessions, peer_reset, peer_health.
라우팅되는 모든 도구는 files 매개변수를 통해 전체 파일 내용을, diff를 통해 diff를 받습니다. 요약을 보내지 마세요. 실제 내용을 보내세요.
sync와 async 사용 시점
일반적인 diff에 대한 Grok sync 리뷰는 보통 3~6분이 걸립니다. Grok 자식 프로세스 타임아웃은 GROK_TURN_TIMEOUT_MS(기본 6분)입니다. 자식 프로세스 타임아웃을 올려도 호스트 MCP 클라이언트의 대기 시간은 올라가지 않습니다. 호스트가 먼저 포기하면 Codex는 해당 도구 응답에서 durationAdvisory / continuationHint / nativeSessionId를 볼 수 없습니다. 이 경우 *_async를 사용하세요.
서버는 sync 도구를 조용히 작업으로 변환하지 않습니다.
sync 사용 ( | async 사용 ( |
일반 diff / ~80k 프롬프트 문자에 맞는 계획 | ≥ ~80k 문자(~20k 토큰), 120k 한도에 가깝거나 잘린 경우 |
기본 / 중간 위험 |
|
후속 "이 파일 하나만 다시 확인" | 구현 핸드오프 ( |
호스트가 ~6분을 기다릴 수 있음 | 호스트 MCP 타임아웃 ≤ 2~3분; 대용량 로그; 다중 시도 디버그 |
Sync Grok/라우팅 결과에는 프롬프트가 잘렸거나, 예상 토큰이 ~20k(~80k 문자)를 초과하거나, risk_level=high / focus=security이거나, 스텁 자동 계속이 소진된 경우 추가 durationAdvisory가 포함될 수 있습니다. 예:
{
"durationAdvisory": "Grok sync reviews of this size often take 3–6 minutes. If your MCP client times out sooner, use peer_review_diff_async / peer_turn_async and poll peer_job_status."
}잘린 peer_review_diff는 여전히 동기적으로 실행됩니다(현재 작업 디렉터리 기준 도구 사용 지침이 앞에 추가됨). 다음에는 peer_review_diff_async를 사용하세요. 잘림을 완전한 거부로 취급하지 마세요.
장기 실행 async 작업
대규모 구현 핸드오프는 MCP 클라이언트의 동기 도구 타임아웃을 초과할 수 있습니다. peer_turn을 차단하는 대신 async 경로를 사용하세요:
peer_implement_async(콜드 스타트) 또는peer_turn_async(기존 세션)로 작업을 시작합니다.피어가 실행되는 동안 로컬 작업을 계속합니다.
30~60초마다
peer_job_status를 폴링합니다(과도한 폴링은 피하세요).status가running인 동안 선택적progress에는textSnippet,lastThought,eventCount가 포함될 수 있습니다(Grokstreaming-json/ agystream-json).status가succeeded이면result를 읽고 필요하면peer_turn으로 계속합니다.peer_job_cancel을 사용하여 이 MCP 프로세스가 소유한 대기 중/실행 중 작업을 중지합니다.
최종 상태: succeeded, failed, timed_out, cancelled, orphaned.
멱등성: 동일한 idempotency_key로 재시도하면 동일한 작업(실행 중 또는 고정 최종 상태)이 반환됩니다. timed_out / cancelled / failed 이후에는 새 키를 사용하여 작업을 재시도하세요.
작업과 완료된 결과는 ~/.peer-agents/jobs/ 아래에 저장됩니다. 실행 중인 공급자 프로세스는 MCP 서버 재시작 후에도 유지되지 않습니다. 최종 상태가 아닌 작업은 복원 시 orphaned로 표시됩니다(세션이 이미 작업을 커밋한 경우는 succeeded로 복구됨).
7일보다 오래된 최종 상태 작업은 복원 시 가비지 컬렉션됩니다(PEER_AGENTS_JOB_GC_MAX_AGE_MS로 재정의하거나 peer_jobs_gc로 수동 실행).
async 작업은 동기 턴과 별도의 타임아웃을 사용합니다:
PEER_AGENTS_JOB_TIMEOUT_MS— 기본 30분 (1800000)GROK_JOB_TIMEOUT_MS/ANTIGRAVITY_JOB_TIMEOUT_MS— 선택적 공급자별 재정의PEER_AGENTS_JOB_GC_MAX_AGE_MS— 최종 상태 작업 보존 기간(기본 7일)PEER_AGENTS_GROK_TRANSPORT— 웜 프로세스 풀을 위한headless(기본) 또는acpPEER_AGENTS_GROK_ACP_MAX_CLIENTS— 최대 동시 ACP 프로세스 수(기본 4)PEER_AGENTS_GROK_ACP_IDLE_MS— ACP 턴 사이 유휴 재활용(기본max(5 min, GROK_TURN_TIMEOUT_MS + 60s)). 유휴 상태는 작업 수명이 아닙니다. 진행 중인session/prompt는 이를 무시합니다.
작업이 진행되는 동안 MCP 서버 프로세스를 계속 실행 상태로 유지하세요.
Grok 전송 방식: headless vs ACP
|
| |
호출 | 매 턴 | cwd별 장기 실행 |
지연 시간 | 매 턴 콜드 스타트 | 웜 프로세스; 다중 턴이 프로세스 + 세션 재사용 |
CLI 기능 | 샌드박스, 워크트리, 발급된 | 하위 집합( |
활성화 | (기본) |
|
엄격한 샌드박싱이 필요한 일회성 리뷰에는 headless를 선호하세요. 후속 peer_turn을 많이 실행하고 프로세스 시작 비용을 줄이려면 acp를 선호하세요.
다른 에이전트가 사용하는 방법
Codex, Claude 또는 다른 MCP 클라이언트는 stdio를 통해 이 서버에 연결합니다. 연결되면 에이전트는 다른 도구와 똑같이 피어 도구를 호출할 수 있습니다.
일반적인 흐름:
에이전트가 diff, 오류 로그 또는 작업 설명을 준비합니다.
peer_review_diff,peer_plan,peer_debug등을 호출합니다.서버가 적절한 CLI를 headless 모드로 실행합니다.
피어 응답이
sessionId와 함께 반환됩니다.에이전트는 나중에 해당
sessionId를 사용하여peer_turn으로 후속 작업을 할 수 있습니다.
이를 통해 기본 에이전트가 CLI 호출을 직접 관리하지 않아도 지속적이고 맥락을 유지하는 피어 대화를 할 수 있습니다.
사전 요구 사항
Node.js ≥ 18
grokCLI(또는GROK_COMMAND설정)agyCLI(Antigravity, 또는ANTIGRAVITY_COMMAND설정)
두 CLI 모두 머신에서 인증되어 있고 정상 작동해야 합니다.
설치 및 사용
git clone https://github.com/Rakeen70210/peer-agents-mcp
cd peer-agents-mcp
npm install
npm run build직접 실행:
node dist/index.jsMCP 클라이언트 구성
클라이언트의 MCP 서버 구성에 추가하세요(일반적인 stdio 설정 예시):
{
"mcpServers": {
"peer-agents": {
"command": "node",
"args": ["/absolute/path/to/peer-agents-mcp/dist/index.js"],
"env": {
"GROK_COMMAND": "/home/you/.grok/bin/grok",
"ANTIGRAVITY_COMMAND": "/home/you/.local/bin/agy"
}
}
}
}환경 변수
GROK_COMMAND— grok 바이너리 경로(기본:grok)ANTIGRAVITY_COMMAND— agy 바이너리 경로(기본:agy)GROK_ARGS/ANTIGRAVITY_ARGS— 추가 CLI 인수의 JSON 배열ANTIGRAVITY_CONVERSATIONS_DIR— 대체 세션 ID 캡처에 사용되는 agy 대화 저장소 재정의(기본:~/.gemini/antigravity-cli/conversations)PEER_AGENTS_WORKTREE_DIR— 직접 구성한 Grok git 워크트리의 상위 디렉터리(기본:~/.peer-agents/worktrees)PEER_AGENTS_STORAGE_DIR— 세션이 유지되는 위치(기본:~/.peer-agents/sessions)PEER_AGENTS_ENABLED_PROVIDERS— 피어 CLI(grok,antigravity)의 쉼표 구분 허용 목록. 호스트가 Grok일 때는antigravity만 사용하여 피어가 다시 Grok에 진입하지 않도록 하세요.PEER_AGENTS_DISABLED_PROVIDERS— 쉼표 구분 차단 목록(PEER_AGENTS_ENABLED_PROVIDERS가 설정되면 무시됨)GROK_TURN_TIMEOUT_MS— headless 및 ACP용 Grok sync 타임아웃(기본 6분 /360000). 호출별timeoutMs외에 유일한 소스입니다. Grok은PEER_AGENTS_TURN_TIMEOUT_MS를 읽지 않습니다.PEER_AGENTS_TURN_TIMEOUT_MS— Antigravity sync 대체 전용(기본 300초). Grok을 고정하지 않습니다. 설정을 해제하거나GROK_TURN_TIMEOUT_MS를 명시적으로 설정하세요. 이전 120초 Grok 타임아웃을 원하는 운영자는GROK_TURN_TIMEOUT_MS=120000을 설정해야 합니다.ANTIGRAVITY_TURN_TIMEOUT_MS— 선택적 Antigravity sync 재정의(기본 300초)PEER_AGENTS_GROK_ACP_IDLE_MS— ACP 턴 사이 유휴 재활용(기본max(5 min, GROK_TURN_TIMEOUT_MS + 60s)). 진행 중인session/prompt는 유휴 상태를 무시합니다(promptDepth). 30분 작업 수명이 아닙니다.PEER_AGENTS_JOB_TIMEOUT_MS— async 작업 타임아웃(기본 30분)GROK_JOB_TIMEOUT_MS/ANTIGRAVITY_JOB_TIMEOUT_MS— 선택적 async 공급자별 재정의PEER_AGENTS_MAX_PROMPT_CHARS— 프롬프트 크기 안전 제한(기본 120000). 잘리면 현재 작업 디렉터리 기준 도구 사용 지침이 앞에 추가되고 sync 턴이 계속됩니다.
다중 턴 피어 세션
라우팅되는 각 호출은 sessionId를 반환합니다. peer_turn을 사용하여 대화를 계속하세요:
피어에게 무엇이 변경되었는지 알리기
새 diff 또는 파일 첨부
수정 사항을 다시 리뷰하거나 확인하도록 요청
세션은 디스크에 유지되므로 MCP 서버를 재시작해도 유지됩니다.
Grok 및 Antigravity 다중 턴은 첫 턴에서 대화/세션 ID가 캡처된 경우 네이티브 CLI 재개를 선호합니다. 그렇지 않으면 MCP가 최근 대화 기록을 프롬프트로 다시 복원합니다.
Grok CLI 통합 (1.0.x+)
Grok 피어 턴은 내부적으로 최신 headless 플래그를 사용합니다(호출자는 이를 전달하지 않습니다):
고려 사항 | 동작 |
대용량 프롬프트 | 항상 |
다중 턴 | 사용 가능 시 |
리뷰어 / 비평가 |
|
플래너 |
|
구현자 |
|
권한 | 리뷰어/비평가/플래너는 |
|
|
리뷰 결과 | 최종 텍스트에서 findings JSON을 최선 방식으로 파싱합니다. 산문도 유효한 리뷰입니다. Grok headless는 |
위험 / 보안 | 상향된 |
전문가 | 보안 검토 / 아키텍처 계획을 위한 패키징된 |
동기 + 비동기 출력 | Grok headless에서는 항상 |
ACP 풀(옵트인) |
|
비용 텔레메트리 | 결과의 |
Antigravity CLI 통합 (agy 1.1.8+)
Antigravity 피어 턴은 내부적으로 print 모드를 사용합니다(호출자는 이러한 플래그를 전달하지 않습니다):
고려 사항 | 동작 |
호출 |
|
다중 턴 | json |
리뷰 결과 | 리뷰어/비평가를 위한 |
리뷰어 / 비평가 |
|
플래너 |
|
구현자 |
|
위험 | Grok과 동일한 위험/복잡성 맵의 |
작업 공간 | 저장소 경로가 설정된 경우 |
에이전트 | 제공된 경우 선택적 |
슬래시/스킬 | 피어 프롬프트가 |
비동기 진행 | 비동기 작업의 |
상태 확인 |
|
비용 텔레메트리 | json 엔벨로프의 |
agy에는 아직 worktree, --prompt-file, ACP 전송이 없습니다. 동기 턴은 --output-format json을 유지합니다. 백그라운드 작업만 스트리밍합니다.
설계 노트
서버는 저장소 자체를 절대 수정하지 않습니다. 이미 보유한 CLI만 실행할 뿐입니다.
세션 트랜스크립트의 사용자 메시지는 호출자 관점에서 레이블이 지정됩니다(일반적으로 "Codex").
멱등성 키가 지원되므로 동일한 키로 반복 호출해도 안전합니다.
입력이 너무 빈약해 보이면(파일 누락, diff 누락 등) 컨텍스트 품질 힌트가 반환됩니다.
구현 핸드오프는 기본적으로 격리된 git worktree(
--cwd로 진입)를 사용하므로 피어가 더티 메인 트리를 덮어쓰지 않습니다.
라이선스
MIT(또는 저장소에 명시된 대로).
Available Tools
13 toolspeer_askC
Before calling: read relevant source files and attach full contents via files. Pass complete diffs/logs — never prose summaries. Set task with goals, affected behavior, and specific concerns. General knowledge or grounded Q&A — routes to Antigravity.
| Name | Required | Description | Default |
|---|---|---|---|
| question | Yes | Required. The decision or question, plus what constraints and tradeoffs the answer must address. | |
| repo_path | Yes | Absolute path to the repository root the peer should work in (e.g. /home/user/my-app). | |
| context | No | Background the peer needs: prior decisions, relevant code paths, docs links, or constraints. | |
| files | No | Changed source files and binary attachments (screenshots, PDFs). Use correct file extensions for images/PDFs and pass base64 or data-URI content. | |
| task | No | Human-readable session label: what you are trying to achieve, affected behavior, and specific concerns for the peer. | |
| idempotency_key | Yes | Stable key for this operation (e.g. review-auth-jwt-1). Reuse the same key when retrying after timeout. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses the routing behavior to Antigravity and mentions automatic staging of binaries. However, it omits details on mutation, authentication, rate limits, or side effects beyond the routing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences but dense and run-on. It mixes instructions, conditions, and routing info in a stream-like manner. Could be better organized with bullet points or clearer separation of purpose vs. usage.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 6 parameters, no output schema, and complex routing behavior, the description should explain what the tool returns or the outcome. It lacks any mention of return value, response format, or post-call state, leaving the agent uncertain about what to expect.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already explains all parameters. The description adds minimal extra meaning (e.g., 'Binary attachments are staged to disk...' in the files parameter is already covered by schema). Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description focuses on pre-call instructions rather than stating the tool's purpose. It vaguely mentions 'General knowledge or grounded Q&A — routes to Antigravity', but the primary verb and resource are unclear. It does not effectively distinguish from sibling tools like peer_debate or peer_plan.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit before-calling steps (read files, attach content, set task) and mentions routing to Antigravity for certain queries. However, it lacks a clear 'when to use' vs 'when not to use' and does not reference specific sibling tools as alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
peer_compareA
Before calling: read relevant source files and attach full contents via files. Pass complete diffs/logs — never prose summaries. Set task with goals, affected behavior, and specific concerns. Low-level dual-CLI comparison (prefer phase tools for routing).
| Name | Required | Description | Default |
|---|---|---|---|
| message | Yes | Exact question both peers must answer independently. | |
| repo_path | Yes | Absolute path to the repository root the peer should work in (e.g. /home/user/my-app). | |
| task | Yes | Short label for this comparison session. | |
| providers | No | ||
| diff | No | Full unified diff or patch output. Never substitute a prose summary for the actual diff. | |
| files | No | Changed source files and binary attachments (screenshots, PDFs). Use correct file extensions for images/PDFs and pass base64 or data-URI content. | |
| mode | No | ||
| system | No | ||
| parallel | No | ||
| idempotency_key | Yes | Stable key for this operation (e.g. review-auth-jwt-1). Reuse the same key when retrying after timeout. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full responsibility. It mentions 'dual-CLI comparison' but does not explain the internal behavior, such as whether it modifies state, runs external processes, or returns results. The focus is on input preparation rather than tool effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a few short sentences with clear front-loading of critical upfront instructions. Every sentence adds value, with no redundant or verbose phrases.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 10 parameters, no output schema, and no annotations, the description lacks detail on return values, completion behavior, or what happens after invocation. It explains preparation well but omits post-call context, leaving the agent unsure of the tool's overall operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 60%, and the description adds some context, e.g., for 'files' it says 'use correct file extensions...pass base64 or data-URI content.' However, it largely reiterates schema descriptions for parameters like message and repo_path, not adding substantial new meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states it is a 'low-level dual-CLI comparison' and instructs to attach files and diffs. It clearly indicates a comparison function, distinguishing it from sibling tools like peer_ask or peer_debate, but does not fully articulate the specific verb-resource relationship.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit instructions: 'Before calling: read relevant source files and attach full contents via files. Pass complete diffs/logs — never prose summaries.' It also advises to 'prefer phase tools for routing,' guiding when not to use this tool. This gives clear usage context and alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
peer_debateA
Before calling: read relevant source files and attach full contents via files. Pass complete diffs/logs — never prose summaries. Set task with goals, affected behavior, and specific concerns. Independently compare Plan A vs Plan B without cross-contamination.
| Name | Required | Description | Default |
|---|---|---|---|
| task | Yes | What decision this debate must resolve and what success looks like. | |
| plan_a | Yes | Full Plan A: steps, tradeoffs, risks, and verification approach. | |
| plan_b | Yes | Full Plan B: steps, tradeoffs, risks, and verification approach. | |
| repo_path | Yes | Absolute path to the repository root the peer should work in (e.g. /home/user/my-app). | |
| risk_level | No | Use high for auth, payments, migrations, concurrency, and public API changes. | |
| idempotency_key | Yes | Stable key for this operation (e.g. review-auth-jwt-1). Reuse the same key when retrying after timeout. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden for behavioral disclosure. It explains the need for independent comparison and idempotency key for retries, but does not describe side effects, output format, or behavior under error conditions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (4 sentences) and front-loaded with 'Before calling:', which is clear. However, it packs multiple instructions into a single paragraph, slightly reducing readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description does not explain what the tool returns or how results are presented. It covers preparation well but lacks information on the tool's output, which is needed for complete understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, baseline 3. The description adds meaning by instructing how to use risk_level (e.g., high for auth, payments) and advising on setting task with specific concerns. This goes beyond the schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool is for independently comparing Plan A vs Plan B, which aligns with the tool name 'peer_debate'. It specifies the input requirements (files, diffs, task) but does not explicitly distinguish from sibling tools like peer_compare.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides prerequisites and instructions for preparing inputs (read files, attach contents, set task with goals). However, it lacks explicit guidance on when to use this tool versus alternatives (e.g., peer_compare) and does not mention when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
peer_debugA
Before calling: read relevant source files and attach full contents via files. Pass complete diffs/logs — never prose summaries. Set task with goals, affected behavior, and specific concerns. Route a debugging request after failures.
| Name | Required | Description | Default |
|---|---|---|---|
| error_log | Yes | Required. Full stderr, stack trace, assertion text, and failing test output — not a one-line summary. | |
| repo_path | Yes | Absolute path to the repository root the peer should work in (e.g. /home/user/my-app). | |
| attempted_fixes | No | Everything already tried and why each failed. Required when failed_attempts > 0. | |
| failed_attempts | No | How many fix attempts have already failed on this bug. | |
| diff | No | Full unified diff or patch output. Never substitute a prose summary for the actual diff. | |
| files | No | Changed source files and binary attachments (screenshots, PDFs). Use correct file extensions for images/PDFs and pass base64 or data-URI content. | |
| task | No | Human-readable session label: what you are trying to achieve, affected behavior, and specific concerns for the peer. | |
| idempotency_key | Yes | Stable key for this operation (e.g. review-auth-jwt-1). Reuse the same key when retrying after timeout. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of disclosing behavioral traits. It does not mention whether the tool is read-only or destructive, what side effects occur (e.g., file stageing), or any required permissions. The only hint is the presence of an idempotency key, but its significance is not explained.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is structured with clear guidance starting with 'Before calling', and each sentence serves a purpose. It is not overly verbose, though it could be slightly more concise by reducing repetitions (e.g., 'Pass complete diffs/logs' and later 'Full unified diff or patch output'). Overall, it is well-organized and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 8 parameters and no output schema, the description covers the input side well but fails to explain what the tool returns or how to interpret the response. It does not address expected behavior after routing the request (e.g., synchronous vs. asynchronous, result format). This leaves the agent without a complete picture.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers 100% of parameters with descriptions, so the baseline is 3. The description adds valuable emphasis on how parameters should be used (e.g., 'Pass complete diffs/logs — never prose summaries', 'Set task with goals, affected behavior...'), which goes beyond the schema by providing behavioral instructions that improve correct invocation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool is for routing a debugging request after failures, and it distinguishes itself from sibling tools like peer_ask or peer_plan by specifying the context of debugging. The verb 'route' combined with 'debugging request' defines a specific action and resource.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly tells the user when to use the tool ('after failures') and provides preparatory instructions ('Before calling: read relevant source files...'). It does not explicitly state when not to use it or list alternatives, but the context is clear enough for an agent to infer appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
peer_healthA
Check whether Grok and Antigravity CLIs are responsive
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It states the action (check responsiveness) but lacks details on side effects (presumably none), required permissions, or output format. The verb 'check' implies read-only, but the description does not explicitly confirm safety or what happens on failure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with no filler. Every word contributes to the purpose. Front-loaded with the key action and target.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, no-output-schema tool, the description covers the essential behavior. However, it could briefly mention how the result is returned (e.g., boolean status) to avoid ambiguity. Still, the simplicity makes it mostly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has zero parameters (schema coverage 100% vacuously). Description adds no parameter info because none exist. Baseline for 0 parameters is 4, and the description does not need to elaborate further.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the verb 'Check' and the specific resources 'Grok and Antigravity CLIs', making the tool's purpose immediately clear. It distinguishes itself from sibling tools (e.g., peer_ask, peer_debate) which involve querying or discussing, while this is a simple health check.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description implies usage (when you need to check CLI responsiveness) but provides no explicit guidance on when to use alternatives or when not to use this tool. Given the many sibling tools, some contextual tips would help, but the use case is straightforward.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
peer_list_sessionsB
List persisted peer sessions, optionally filtered by repo path
| Name | Required | Description | Default |
|---|---|---|---|
| repo_path | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description adds minimal behavioral context beyond 'List' implying read-only. Does not disclose auth requirements, rate limits, or any side effects, though listing is inherently low-risk.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, 10 words, front-loaded with verb and resource. No wasted text; everything earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, no output schema, and only one parameter, the description omits return format, pagination, or any additional context about sessions. Incomplete for a tool with no other structured context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description partially compensates by stating 'repo_path' is an optional filter, but does not explain what the path refers to (e.g., local filesystem vs. remote repository).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the action ('List') and the resource ('persisted peer sessions') with a specific optional filter ('by repo path'), which distinguishes it from sibling tools like peer_ask or peer_reset.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives, such as checking existing sessions before starting a new one or debugging. Missing when-not-to-use scenarios or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
peer_planA
Before calling: read relevant source files and attach full contents via files. Pass complete diffs/logs — never prose summaries. Set task with goals, affected behavior, and specific concerns. Route an implementation planning request to the best peer model(s).
| Name | Required | Description | Default |
|---|---|---|---|
| task | Yes | Required. Goal, success criteria, affected modules, and what 'done' looks like. | |
| repo_path | Yes | Absolute path to the repository root the peer should work in (e.g. /home/user/my-app). | |
| constraints | No | Hard limits: API compatibility, performance budgets, forbidden approaches, deadlines, out-of-scope. | |
| repo_summary | No | How the repo is structured today — key modules, patterns, and entry points relevant to this task. | |
| risk_level | No | Use high for auth, payments, migrations, concurrency, and public API changes. | |
| complexity | No | complex when the change spans multiple modules, data paths, or deployment steps. | |
| files | No | Changed source files and binary attachments (screenshots, PDFs). Use correct file extensions for images/PDFs and pass base64 or data-URI content. | |
| idempotency_key | Yes | Stable key for this operation (e.g. review-auth-jwt-1). Reuse the same key when retrying after timeout. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses only that the tool routes to a peer model, but lacks details on side effects, permissions, rate limits, return values, or whether state is modified. This is insufficient for a tool with 8 parameters and no output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, concise and efficient. The first sentence sets a precondition, the second gives guidance, and the third states the purpose. However, the core purpose is last, not front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 8 parameters, 3 required, and no output schema, the description is brief and does not explain return values, error handling, or what happens after routing. It lacks completeness for a planning tool that delegates to another model.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions. The description adds context for `files` (attach full contents, never prose summaries) and `task` (goals, affected behavior), but does not mention other parameters like `repo_path`, `constraints`, `repo_summary`, `risk_level`, `complexity`, or `idempotency_key`. It adds moderate value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states this tool routes an implementation planning request to the best peer model, using verbs like 'Route' and 'planning request'. It distinguishes from sibling tools that focus on asking, debating, or debugging, though it doesn't explicitly differentiate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit pre-call instructions: read source files, attach full contents via `files`, pass diffs/logs, and set `task` with goals. It also prohibits prose summaries, offering clear guidance on proper usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
peer_resetC
Clear a session transcript or delete the session entirely
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | Yes | ||
| idempotency_key | Yes | Stable key for this operation (e.g. review-auth-jwt-1). Reuse the same key when retrying after timeout. | |
| expected_version | No | ||
| keep_metadata | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Destructive operation is implied but no details on irreversibility, auth requirements, or what exactly gets cleared/deleted. No annotations to supplement.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Too short and vague to convey essential context. Single sentence fails to explain tool behavior sufficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Missing output schema, no annotations, 4 parameters mostly undocumented; description incomplete for safe effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 25% (only idempotency_key described). Description adds no parameter meaning; does not compensate for missing schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description states it clears or deletes a session, but doesn't specify which condition triggers which action. It distinguishes from siblings as reset/delete operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus other peer tools, no context about prerequisites or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
peer_review_diffB
Before calling: read relevant source files and attach full contents via files. Pass complete diffs/logs — never prose summaries. Set task with goals, affected behavior, and specific concerns. Route a diff review to the best peer model(s) based on focus and risk.
| Name | Required | Description | Default |
|---|---|---|---|
| diff | Yes | Required. Full unified diff (`git diff`, `git diff --cached`, or patch file). Do not summarize. | |
| repo_path | Yes | Absolute path to the repository root the peer should work in (e.g. /home/user/my-app). | |
| focus | No | Primary review lens. Pair with a detailed diff, related files, and a rich `task` describing risks. | |
| risk_level | No | Use high for auth, payments, migrations, concurrency, and public API changes. | |
| files | No | Changed source files and binary attachments (screenshots, PDFs). Use correct file extensions for images/PDFs and pass base64 or data-URI content. | |
| task | No | Human-readable session label: what you are trying to achieve, affected behavior, and specific concerns for the peer. | |
| needs_speed | No | Prefer a faster peer when true; still include full context. | |
| idempotency_key | Yes | Stable key for this operation (e.g. review-auth-jwt-1). Reuse the same key when retrying after timeout. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavior but only mentions 'route to best peer model' without explaining routing logic, side effects, output format, or idempotency implications. The idempotency_key parameter suggests retry safety, but the description is silent on this.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences with zero wasted words. It front-loads the most critical instruction ('Before calling: read...') and provides crisp, actionable guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 8 parameters (3 required) and no output schema, the description covers only diff, files, and task. It omits context for repo_path, focus, risk_level, needs_speed, and idempotency_key, leaving the agent to rely solely on schema descriptions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description reinforces 'files' and 'task' usage (e.g., full contents, specific concerns) but adds no new meaning beyond the schema. It does not elaborate on repo_path, focus, risk_level, or other parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool routes a diff review to peer models based on focus and risk. However, it does not differentiate from sibling tools like peer_debate or peer_compare, leaving ambiguity about when each is appropriate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit prerequisites (read files, attach full contents, pass diffs, set task) and a 'never prose summaries' rule. It gives clear context for use but lacks exclusion criteria or comparison to the extensive list of peer sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
peer_summarizeC
Return the rolling session summary and unresolved issues
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must fully convey behavioral traits. It states 'Return' implying read-only, but does not confirm safety, auth needs, or whether the summary is stateful. The term 'rolling' introduces ambiguity about session state management.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no wasted words, achieving conciseness. However, it is so brief that it underspecifies the tool, sacrificing clarity for brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of output schema and annotations, the description should provide more context about the return format, the nature of the summary, and how unresolved issues are defined. It fails to do so, leaving significant gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The sole parameter 'session_id' has no schema description (0% coverage), and the tool description does not explain its purpose or format. The description adds no value beyond the parameter name.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns a rolling session summary and unresolved issues, which is distinct from sibling tools like peer_ask or peer_debate. However, it does not elaborate on what 'rolling' means or the context of sessions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description lacks any mention of use cases, prerequisites, or when to avoid it, leaving the agent to infer usage from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
peer_transcriptC
Export recent transcript turns
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | Yes | ||
| max_turns | No | ||
| format | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries full burden but only states 'export', implying a read operation. It does not disclose permission requirements, mutability, or side effects. No information on output format or behavior for edge cases.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise at 4 words, front-loading the core action. However, conciseness sacrifices necessary detail, making it under-specified for reliable use.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 3 parameters and no output schema or annotations, the description lacks information on 'recent' semantics, output structure, pagination, or error handling. Incomplete for effective agent use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%; description adds no meaning to parameters beyond their names. The required session_id, optional max_turns, and enum format are not explained. No examples or clarifications provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'export' and resource 'transcript turns', indicating functionality. It distinguishes from siblings like peer_list_sessions (list sessions) and peer_summarize (summarize) by focusing on exporting recent turns. However, it lacks explicit differentiation from similar tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like peer_turn, peer_list_sessions, or peer_summarize. Missing context about prerequisites or scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
peer_turnC
Before calling: read relevant source files and attach full contents via files. Pass complete diffs/logs — never prose summaries. Set task with goals, affected behavior, and specific concerns. Follow up in an existing routed peer session (use session_id from a prior result).
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | Yes | session_id from results.<cli>.sessionId in a prior routed tool response. | |
| message | Yes | What changed since the last turn, what you fixed, and what you want re-checked. | |
| diff | No | Full unified diff or patch output. Never substitute a prose summary for the actual diff. | |
| files | No | Changed source files and binary attachments (screenshots, PDFs). Use correct file extensions for images/PDFs and pass base64 or data-URI content. | |
| idempotency_key | Yes | Stable key for this operation (e.g. review-auth-jwt-1). Reuse the same key when retrying after timeout. | |
| expected_version | No | Pass version from the last turn to avoid stale-session races. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavior. It tells the agent what to prepare but not what the tool does internally (e.g., how it processes the turn, side effects, response format). The behavioral impact is largely hidden.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is relatively short but contains extraneous instructions that are more procedural than definitional. The mismatch between 'task' and 'message' wastes some clarity. Overall, it is acceptably concise but could be more focused.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a peer review tool with 6 parameters and no output schema, the description is incomplete. It fails to explain what the tool returns, how to continue the session, or what agents should expect after calling peer_turn. Key contextual gaps remain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds some context by instructing to attach full contents via `files` and never use prose summaries for diffs. However, it incorrectly refers to a 'task' parameter that does not exist in the schema, which detracts from semantic clarity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description implies the tool is for following up in an existing peer session, but it does not explicitly state that it sends a new turn in a peer review. The phrase 'Set `task` with goals, affected behavior, and specific concerns' conflicts with the schema, which uses 'message' instead of 'task'. This mismatch reduces clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides procedural instructions (read files, attach diffs) but does not explain when to use this tool versus sibling tools like peer_ask or peer_debate. There is no guidance on alternatives or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
peer_verifyB
Before calling: read relevant source files and attach full contents via files. Pass complete diffs/logs — never prose summaries. Set task with goals, affected behavior, and specific concerns. Route verification of tests/build output.
| Name | Required | Description | Default |
|---|---|---|---|
| test_output | Yes | Required. Complete test runner or build output, including failures, skips, and timing if relevant. | |
| repo_path | Yes | Absolute path to the repository root the peer should work in (e.g. /home/user/my-app). | |
| diff | No | Full unified diff or patch output. Never substitute a prose summary for the actual diff. | |
| files | No | Changed source files and binary attachments (screenshots, PDFs). Use correct file extensions for images/PDFs and pass base64 or data-URI content. | |
| task | No | Human-readable session label: what you are trying to achieve, affected behavior, and specific concerns for the peer. | |
| risk_level | No | Use high for auth, payments, migrations, concurrency, and public API changes. | |
| idempotency_key | Yes | Stable key for this operation (e.g. review-auth-jwt-1). Reuse the same key when retrying after timeout. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It discloses prerequisites and input requirements but fails to mention side effects, return values, error conditions, or any behavioral impacts beyond 'route verification.' This is insufficient for safe tool invocation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with four sentences and no wasted words. It is front-loaded with critical instructions, making it efficient for quick reading.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having 7 parameters and no output schema, the description omits key context: what the tool returns, error handling, idempotency key usage, and prerequisites like repo path accessibility. It feels incomplete for a tool that likely performs significant actions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description reinforces proper usage (e.g., 'never prose summaries' for diff) but does not add new semantic meaning beyond the schema's parameter descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Route verification of tests/build output,' which clearly indicates the tool's purpose. However, it does not explicitly differentiate from sibling tools like peer_review_diff or peer_debug, leaving some ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit instructions on how to prepare inputs ('read relevant source files and attach full contents via files', 'pass complete diffs/logs — never prose summaries', 'set task with goals'). It implies usage for verification tasks but lacks explicit when-not-to-use guidance or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
13 tool updates
v0.1.0- First observed
peer_ask - First observed
peer_compare - First observed
peer_debate - First observed
peer_debug - First observed
peer_health - First observed
peer_list_sessions - First observed
peer_plan - First observed
peer_reset - First observed
peer_review_diff - First observed
peer_summarize - First observed
peer_transcript - First observed
peer_turn - First observed
peer_verify
TDQS
While each tool has a distinct purpose, the descriptions share extensive boilerplate text (e.g., 'Before calling: read relevant source files...'), making it harder for an agent to quickly differentiate between tools like peer_ask, peer_compare, and peer_debate. The specific routing information at the end helps but requires careful reading.
All tools follow the snakename pattern with the consistent prefix 'peer', using varied but appropriate verbs/verb phrases. No mixing of conventions like camelCase or different prefixes.
13 tools is well within the ideal 3-15 range for a server focused on peer agent interactions. Each tool covers a distinct operation without unnecessary bloat or missing essentials.
The tool set covers a broad range of peer agent workflows: asking, comparing, debating, debugging, planning, reviewing, verifying, and session management. Minor gaps like explicit session creation are implicitly handled via peer_turn, so no critical missing operations.
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
Source-checked CLI guides and model-aware planning for Claude Code, Codex, and Grok Build.
- OolkinOAuthcom.oolkin
AI colleagues that keep your standards, your project and their reasoning between sessions
Shared control plane for AI coding agents — tasks, memory, decisions, file locks. 12 tools.
Agentic code review, no signup to try: reality gates + frontier-model review, with veto.
Related MCP Servers
- AlicenseAqualityCmaintenanceEnables Claude Code to request independent code reviews and second opinions from other AI models (like Gemini, GPT-OSS) via the Antigravity CLI, directly from the chat.147MIT
- FlicenseAqualityBmaintenanceEnables using the xAI Grok CLI as an MCP sub-agent for code review, asking questions, and continuing conversations within MCP hosts like Claude Code.4-
- AlicenseNot gradedqualityBmaintenanceConnects OpenAI Codex and Claude Code to the local Grok Build CLI for second-opinion code reviews, bounded coding tasks, web research, media generation, and TTS.2Apache 2.0
- AlicenseAqualityCmaintenanceEnables Codex to delegate coding tasks to Grok Build CLI, with Codex handling planning and review while Grok executes.63MIT
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/Rakeen70210/peer-agents-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server