GitMCPServer exhibits significant quality gaps across naming, descriptions, and schemas. Tool names are verb-prefixed (get_, create_, etc.) but descriptions are minimal, most are 1-3 words in Korean, far below the 50-200 char LLM-optimized baseline. Input schemas are present but lack descriptions for parameters; e.g., commit_changes has 'message' and 'files' with minimal guidance. No output schemas are documented. Error handling is generic (bare Exception raises). The server relies on environment variables (GIT_REPO_PATH, GITHUB_TOKEN) without validation or clear guidance. No tool annotations (readOnlyHint, destructiveHint) despite clear risk stratification (READ_ONLY, WRITE, DESTRUCTIVE). Parameter constraints are absent, e.g., limit in get_commit_history has no min/max bounds. The create_pull_request tool is incomplete in the source (truncated at 'raise Excepti'). Overall, this is a functional but poorly documented toolkit typical of early-stage community servers.
원격 저장소 추가
변경사항 커밋
새 브랜치 생성
풀 리퀘스트 생성
태그 생성
태그 삭제
브랜치 정보 조회
커밋 히스토리 조회
Descriptions are 1-3 words in Korean (e.g., '저장소 상태 조회', '변경사항 커밋'). LLMs cannot determine when/why to select tools without English, context-rich descriptions (50-200 chars baseline). All 20 tools affected.
Parameter descriptions are missing or minimal. E.g., commit_changes has 'message' and 'files' with only 1-2 word descriptions. LLMs cannot infer parameter semantics without explicit guidance (pattern baseline: 100% of A+ tools have param descriptions).
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 36 | <=2025-11-25 | v2 |
변경사항 통계 조회
풀 리퀘스트 조회
저장소 상태 조회
풀 리퀘스트 목록 조회
원격 저장소 목록 조회
태그 목록 조회
브랜치 병합
변경사항 풀
변경사항 푸시
원격 저장소 제거
원격 저장소 URL 변경
브랜치 전환
No output schemas documented. LLMs cannot plan downstream tool calls or extract required fields without knowing response structure. E.g., get_repo_status returns a dict but no schema is declared.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite clear risk stratification in metadata (READ_ONLY, WRITE, DESTRUCTIVE). Agents cannot distinguish safe from destructive operations.
Generic error handling: all tools raise bare Exception(str(e)). No recovery guidance, categorization (retryable vs fatal), or actionable error messages. E.g., 'Branch not found' vs 'Invalid branch name: must match [a-z0-9-]+'.