Skip to main content
Glama

GitLab MCP Proxy

사내 폐쇄망 GitLab 16.11 을 Claude Code 에서 MCP 로 사용하기 위한 프록시 서버 버전 0.4.0 · 연관 문서: docs/PRD.md, docs/test-design.md

GitLab REST API v4 를 MCP(Model Context Protocol) tool 로 래핑한다. Claude Code 에서 자연어로 MR 리뷰·이슈 확인·파이프라인 조회·브랜치 비교를 수행할 수 있다.

주요 특징

  • 분할 MCP 프로필 — 같은 바이너리를 --profile 로 기동해 세션 목적별 tool 만 노출 (Token Budget 절감)

  • 레지스트리 기반 확장 — TypeScript ToolGroup + YAML Spec 을 한 레지스트리로 통합, 코드 수정 없이 API 추가

  • OS 독립 토큰 저장 — Node 내장 crypto(AES-256-GCM) 암호화 파일. 외부 의존성/네이티브 모듈 없음

  • 폐쇄망 대응 — 인스턴스별 SSL 검증 비활성, 다중 인스턴스 라우팅

  • 응답 최적화 — 요약 필드 추출, 대용량 diff 파일 단위 분할, 민감 정보 자동 마스킹, 60초 캐시 + 쓰기 시 무효화

Related MCP server: GitLab MCP Server

요구 사항

  • Node.js 20 LTS 이상

  • TypeScript 5+

설치 및 빌드

npm install
npm run build        # tsc 컴파일 + src/specs/*.yaml → dist/specs 복사

설정

config/instances.yaml — GitLab 인스턴스

instances:
  - name: company-gitlab
    url: https://gitlab.internal.company.com
    default: true            # instance 미지정 시 이 인스턴스로 라우팅
    api_version: v4
    ssl_verify: false        # 폐쇄망 자체서명 인증서 대응

config/config.yaml — Tool Group 활성화

tool_groups:
  group:    { enabled: true }
  project:  { enabled: true }
  issue:    { enabled: true }
  mr:       { enabled: true }
  compare:  { enabled: true }
  pipeline: { enabled: false }   # 비활성 → tool 목록에서 제외 (Token Budget)
  repo:     { enabled: false }
  wiki:     { enabled: false }   # YAML 독립 등록 그룹
cache_ttl_seconds: 60
callback_port: 17432

Claude Code 연동

Step 1 — config/instances.yaml 에 GitLab 인스턴스 등록

instances:
  - name: company-gitlab
    url: http://localhost:8929   # 로컬 Docker 검증 시. 실서버는 사내 URL로 변경
    default: true
    api_version: v4
    ssl_verify: false

Step 2 — config/config.yaml 에서 사용할 Tool Group 활성화

tool_groups:
  group:    { enabled: true }
  project:  { enabled: true }
  issue:    { enabled: true }
  mr:       { enabled: true }
  compare:  { enabled: true }
  pipeline: { enabled: true }
  repo:     { enabled: true }
  wiki:     { enabled: true }
cache_ttl_seconds: 60
callback_port: 17432

필요 없는 그룹은 enabled: false 로 끄면 Claude 의 tool 목록에서 제외되어 Token Budget 을 절감한다.

Step 3 — 빌드

npm install
npm run build

Step 4 — Claude Code 에 MCP 서버 등록

claude mcp add 명령으로 등록한다. dist/index.jsconfig/절대 경로로 지정해야 Claude 가 어느 디렉토리에서 실행되든 올바르게 찾는다.

macOS / Linux

claude mcp add --scope user gitlab \
  -- node /Users/your-name/projects/gitlab-mcp/dist/index.js \
  --profile all \
  --config-dir /Users/your-name/projects/gitlab-mcp/config

Windows (PowerShell)

claude mcp add --scope user gitlab `
  -- node C:\Users\your-name\projects\gitlab-mcp\dist\index.js `
  --profile all `
  --config-dir C:\Users\your-name\projects\gitlab-mcp\config
  • --scope user~/.claude.json 에 저장되어 모든 프로젝트에서 전역으로 사용된다

  • --profile all — 8개 그룹 전체 활성화 (config.yaml 설정 무시)

  • --config-dirinstances.yaml 위치를 절대 경로로 지정

claude mcp list   # 등록 목록 + 연결 상태 확인

프로필 요약

프로필

노출 그룹

용도

all

전체 8개 그룹

기본 권장

project

group, project, issue, repo

프로젝트 탐색 + 코드

mr

mr, compare

코드 리뷰 전용

pipeline

pipeline

CI 모니터링 전용

(생략)

config.yaml 설정 그대로

커스텀

Token Budget 을 줄이려면 프로필별로 분리 등록한다:

# macOS / Linux
claude mcp add --scope user gitlab-mr \
  -- node /Users/your-name/projects/gitlab-mcp/dist/index.js \
  --profile mr \
  --config-dir /Users/your-name/projects/gitlab-mcp/config

claude mcp add --scope user gitlab-pipeline \
  -- node /Users/your-name/projects/gitlab-mcp/dist/index.js \
  --profile pipeline \
  --config-dir /Users/your-name/projects/gitlab-mcp/config

--profile 을 생략하면 config/config.yamltool_groups 설정을 그대로 따르므로, 아래처럼 모두 켜두고 등록해도 동일한 효과를 낸다.

claude mcp add gitlab -- node /Users/your-name/projects/gitlab-mcp/dist/index.js

방법

config.yaml 참조

wiki 포함 여부

--profile all

무시

항상 포함

--profile 생략

참조

설정값에 따라

인증 (토큰 등록)

토큰이 없으면 tool 호출 시 PAT 발행 페이지 URL 을 안내한다.

  1. 안내된 URL 로 GitLab 에서 Personal Access Token 발급 (scope: api, read_repository, write_repository)

  2. 로컬 콜백 페이지(http://localhost:17432)에 토큰을 붙여넣고 제출

  3. 서버가 GET /user 로 토큰을 검증 후 암호화 저장하고 콜백 서버를 즉시 종료

토큰 저장 방식 (OS 독립)

  • 위치: ~/.gitlab-mcp/credentials.enc

  • 암호화: AES-256-GCM. 키는 머신 고유값(hostname + 사용자명)에서 scrypt 로 파생

  • 인스턴스별 분리 저장. 동일 머신/사용자에서만 복호화 가능

  • 초기화: ~/.gitlab-mcp/credentials.enc 파일을 삭제하면 전체 재등록 상태로 돌아간다

폐쇄망에서 콜백 접근이 막히는 경우(V-05), tool 인자로 토큰을 직접 전달하는 폴백 경로를 사용한다.

YAML Spec 으로 API 추가 (코드 수정 없이)

src/specs/*.yaml 에 spec 을 추가하면 빌드 시 자동 등록된다.

# group 이 기존 TS ToolGroup 과 일치하면 병합, 없으면 독립 그룹으로 등록
group: wiki
description: GitLab Wiki 관리
tools:
  - name: list_wiki_pages
    description: Wiki 페이지 목록 조회
    method: GET
    path: /projects/{project_id}/wikis
    params:
      - { name: project_id, in: path, required: true }
      - { name: with_content, in: query, default: false, type: boolean }

독립 그룹은 기본 비활성이므로 config.yaml 에서 wiki: { enabled: true } 로 켜야 노출된다.

OpenAPI → YAML 변환 보조 CLI

npm run spec -- spec extract --source specs/gitlab-v4.yaml --tag wikis --output src/specs/wiki.yaml

테스트

npm test              # 전체 (Unit + Integration + Contract)
npm run test:cov      # 커버리지 (전체 80%+ 게이트)
  • Unit: 마스킹, 캐시, 토큰 저장, 설정/프로필, 레지스트리, 콜백 서버, 에러 매핑

  • Integration: GitLab 클라이언트 ↔ Mock, 도메인 tool, 인증 흐름, YAML generic handler

  • Contract: 실제 MCP Client ↔ Server (InMemoryTransport) tools/list·call 계약

Mock GitLab 은 fetch 주입 방식(tests/mock/mock-gitlab.ts)으로 결정적·고속이다.

Docker GitLab 16.11 CE (E2E 선검증)

사내 이관 전 로컬에서 실 GitLab API 계약을 검증한다. CE 전용이므로 EE 기능(MR 승인)은 사내 검증 대상이다.

docker compose -f tests/docker/docker-compose.yml up -d
docker compose -f tests/docker/docker-compose.yml ps      # healthy 대기 (부팅 5~10분+)
docker exec gitlab-test cat /etc/gitlab/initial_root_password

디렉토리 구조

src/
  index.ts            진입점 (--profile, stdio)
  server.ts           MCP 서버 조립 (tools/list·call)
  types/              ToolGroup, 설정, spec, GitLab 응답 타입
  config/             설정 로더 + 프로필
  auth/               토큰 저장(crypto), 콜백 서버, PAT URL, AuthService
  client/             GitLab REST 클라이언트, ClientManager
  registry/           ToolRegistry(병합/독립등록), spec→tool 변환
  tools/              도메인 ToolGroup (group/project/issue/mr/compare/pipeline/repo)
  specs/              YAML Spec (mr-extra, wiki)
  util/               마스킹, 캐시, 에러, 응답
config/               instances.yaml, config.yaml
tests/                unit / integration / contract / mock / fixtures / docker

보안 주의

  • 토큰은 암호화 저장되며 *.enc.gitignore 에 포함된다. 절대 커밋하지 않는다

  • API 응답의 private_token, runners_token, *_secret, webhook url token 등은 자동 마스킹된다

  • 폐쇄망 SSL 비활성은 ssl_verify: false 인스턴스에만 적용된다

Available Tools

37 tools
approve_mrC

MR 승인 (EE 전용)

ParametersJSON Schema
NameRequiredDescriptionDefault
mr_iidYesMR iid
instanceNo대상 GitLab 인스턴스명 (생략 시 default)
project_idYes프로젝트 ID

TDQS

C2.8/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, and the description only mentions 'EE only'. No disclosure of behavioral traits such as permissions, idempotency, or side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very short (one phrase), which is concise but not overly terse for a simple action. It gets to the point.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, and the description does not explain return values or effects. For an approval action, it is minimally adequate but lacks completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema parameter descriptions cover 100% of parameters. The description adds no extra meaning beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'MR approval (EE only)', indicating it approves a merge request and is restricted to EE. It distinguishes from 'unapprove_mr' but not from other MR tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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. The 'EE only' note is a restriction, not usage context or when-not-to-use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compare_refsC

두 ref 간 diff 비교 (브랜치/태그/커밋)

ParametersJSON Schema
NameRequiredDescriptionDefault
toYes대상 ref (브랜치/태그/SHA)
fromYes기준 ref (브랜치/태그/SHA)
instanceNo대상 GitLab 인스턴스명 (생략 시 default)
straightNo직선 비교 여부
file_pathNo특정 파일만 조회
max_linesNo파일당 최대 라인 (기본 1000)
project_idYes프로젝트 ID

TDQS

C2.7/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden for behavioral disclosure. It only states 'diff between two refs' without explaining what is returned, permission requirements, error cases, or details about parameters like 'straight'. This is severely lacking.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very short (7 words in Korean), making it concise but not well-structured. It lacks any logical breakdown or hierarchy, though it does not waste words. It is average because it is too minimal.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 7 parameters, no output schema, and no annotations, the description is grossly incomplete. It does not cover return format, pagination, limitations, or integration context, leaving significant gaps for agent understanding.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so each parameter has a description in the schema. The tool description does not add meaningful additional information beyond what the schema already provides, keeping the score at the baseline of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool compares differences between two refs (branches, tags, commits). It uses a specific verb 'compare' and resource 'refs', and distinguishes from sibling tools like get_mr_diff (for merge requests) and get_commit_diff (for a single commit).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives like get_mr_diff or get_commit_diff. The description does not mention scenarios, prerequisites, or exclusions, forcing the agent to infer usage from context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_commit_commentC

커밋 일반 코멘트 작성

ParametersJSON Schema
NameRequiredDescriptionDefault
shaYes커밋 SHA
noteYes코멘트 내용
instanceNo대상 GitLab 인스턴스명 (생략 시 default)
project_idYes프로젝트 ID

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description solely indicates creation ('작성') but does not disclose any behavioral traits such as required permissions, side effects, or reversibility. The one-word description is insufficient for an agent to understand runtime implications.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise at one short sentence, front-loading the key action. It could be considered efficient, but the brevity comes at the cost of missing important details. Still, it earns its place by stating the purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema or annotations, and a moderate task with 4 parameters, the description is too sparse. It does not explain what a 'general comment' is, how it differs from a discussion, or any return behavior. The agent would need to infer significant context from the tool name and schema alone.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage for all 4 parameters, so the baseline is 3. The description adds no additional semantics beyond the schema, such as formatting notes or constraints on instance. It merely restates the tool's high-level action.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description '커밋 일반 코멘트 작성' clearly indicates it creates a general comment on a commit. The term '일반 코멘트' distinguishes it from the sibling tool 'create_commit_discussion' which handles discussion threads. However, it is minimal and lacks explicit verb-resource structure.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 (e.g., create_commit_discussion) is provided. There is no mention of prerequisites, context, 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.

create_commit_discussionC

커밋 라인 단위 인라인 코멘트 작성

ParametersJSON Schema
NameRequiredDescriptionDefault
shaYes커밋 SHA
lineYes대상 라인 번호
noteYes코멘트 내용
pathYes대상 파일 경로
instanceNo대상 GitLab 인스턴스명 (생략 시 default)
line_typeNo라인 타입 (기본 new)
project_idYes프로젝트 ID

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, and the description does not disclose side effects, permissions, or success/failure behavior. The minimal description adds no value beyond the tool name.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence with no unnecessary words. However, it lacks structure or additional details that could improve clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 7 parameters and no output schema, the description should provide more context about the tool's purpose and usage. It only states the basic action, leaving the agent without sufficient guidance.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so parameters are already documented. The tool description adds no additional meaning beyond what is in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it creates an inline comment on a commit line, distinguishing it from general commit comments. However, it does not explicitly differentiate from similar tools like create_commit_comment or create_mr_discussion.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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. Given sibling tools for commit comments and MR discussions, explicit usage context is lacking.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_issueD

이슈 생성

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYes이슈 제목
labelsNo레이블 (쉼표 구분)
instanceNo대상 GitLab 인스턴스명 (생략 시 default)
project_idYes프로젝트 ID 또는 경로
descriptionNo이슈 설명
assignee_idsNo담당자 ID 배열

TDQS

D1.9/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, but the description provides no behavioral information such as side effects, permissions, or destructive actions. The agent has no insight beyond the name.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely short (two words), which is underspecified rather than concise. It fails to provide value beyond the tool name.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 6 parameters, no output schema, and no annotations, the description completely fails to provide adequate context for an agent to use the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all parameters. The description adds no additional meaning beyond what is in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description is '이슈 생성' which translates to 'Create issue', a direct tautology of the tool name. It does not differentiate from sibling tools like update_issue or list_issues.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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. There is no mention of prerequisites or context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_issue_noteD

이슈 코멘트 작성

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYes코멘트 내용
instanceNo대상 GitLab 인스턴스명 (생략 시 default)
issue_iidYes이슈 내부 번호
project_idYes프로젝트 ID 또는 경로

TDQS

D1.9/5.0
Behavior1/5

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 does not mention side effects, permissions, or any operational details, leaving the agent with virtually no behavioral insight.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise but under-specified. It consists of a single phrase that does not convey enough context, thus failing the balance between conciseness and informativeness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 4 parameters, no output schema, and no annotations, the description is grossly incomplete. It provides no context on usage, behavior, or outcomes, making it inadequate for effective agent guidance.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds no extra parameter meaning beyond the schema, which is acceptable but not compensatory.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description '이슈 코멘트 작성' is a Korean translation of the tool name 'create_issue_note', essentially restating the name without adding any specific action or resource details beyond what the name already conveys. It qualifies as a tautology.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives such as create_mr_note or list_issue_notes. It lacks any context about preferred scenarios or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_merge_requestD

MR 생성

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesMR 제목
instanceNo대상 GitLab 인스턴스명 (생략 시 default)
project_idYes프로젝트 ID
descriptionNoMR 설명
source_branchYes소스 브랜치
target_branchYes타깃 브랜치

TDQS

D1.5/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must expose behavioral traits, but it only states 'MR 생성'. It fails to disclose that this tool creates a new merge request, what permissions are needed, what the side effects are (e.g., state changes), or what the response contains. The description adds zero behavioral detail.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness1/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single word in Korean, which is severely under-specified for a tool with 6 parameters and many siblings. It is not appropriately sized; it sacrifices all information for brevity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (6 params, 4 required, no output schema, no annotations), the description is wholly inadequate. It does not explain the tool's purpose, return value, constraints, or relationship to sibling tools, leaving the agent with no useful context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so each parameter already has a description in the schema (though minimal). The tool description does not add any extra meaning or context for the parameters beyond what the schema provides, resulting in a baseline score of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose1/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'MR 생성' is a tautology that restates the tool name 'create_merge_request' in Korean. It provides no additional specificity about what an MR is or distinguishes this tool from sibling tools like update_merge_request or approve_mr.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 such as update_merge_request, approve_mr, or list_merge_requests. The description lacks any context about prerequisites, workflow position, 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.

create_mr_discussionC

MR 인라인 코멘트(Discussion) 작성

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYes코멘트 내용
pathYes대상 파일 경로 (new_path)
mr_iidYesMR iid
base_shaYesdiff_refs.base_sha
head_shaYesdiff_refs.head_sha
instanceNo대상 GitLab 인스턴스명 (생략 시 default)
new_lineYes대상 라인 번호
start_shaYesdiff_refs.start_sha
project_idYes프로젝트 ID

TDQS

C2.4/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, and the description gives no behavioral details such as idempotency, permission requirements, or side effects. For a mutation tool, this is a significant gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single phrase, which is concise but lacks structure or additional sentences. It does not waste words but is too minimal to be considered well-organized.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has 9 parameters (8 required) and no output schema or annotations. The description fails to explain the relationship between parameters (e.g., SHA values) or how to construct a valid discussion, leaving the agent underinformed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so each parameter has a description. The tool description adds no extra meaning beyond the schema, meeting the baseline for adequate schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states 'MR 인라인 코멘트(Discussion) 작성' which clearly indicates the tool creates an inline comment on a merge request. It distinguishes from siblings like create_mr_note (general note) and reply_mr_discussion (reply), but does not explicitly differentiate them in the description.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool vs alternatives (e.g., create_mr_note vs create_mr_discussion). No prerequisites, context, or when-not-to-use information is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_mr_noteC

MR 일반 코멘트 작성

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYes코멘트 내용
mr_iidYesMR iid
instanceNo대상 GitLab 인스턴스명 (생략 시 default)
project_idYes프로젝트 ID

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, and the description does not disclose any behavioral aspects such as whether the operation is idempotent, what happens on duplicate, or authorization requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Extremely concise (single phrase). No wasted words, but could benefit from a slightly longer description to provide context. Appropriate for a simple tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Lacks a complete description of tool behavior, return value, or error conditions. With no output schema and minimal description, the agent lacks key information for reliable invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with clear parameter descriptions. The description adds no further semantic value beyond the schema, but the baseline is adequate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description 'MR 일반 코멘트 작성' clearly specifies the action (create) and resource (MR comment). Differentiates from sibling discussion tools by explicitly stating '일반 코멘트' (general comment).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 create_mr_discussion. Agent must infer from tool name and sibling context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_projectC

프로젝트 생성

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes프로젝트 이름
instanceNo대상 GitLab 인스턴스명 (생략 시 default)
visibilityNo공개 범위
descriptionNo프로젝트 설명
namespace_idNo네임스페이스(그룹) ID

TDQS

C2.7/5.0
Behavior2/5

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 only states the obvious action (creating a project) but does not mention side effects, required permissions, rate limits, or irreversible consequences. A tool that creates resources should clarify that it modifies data.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single phrase ('Create project'), which is overly minimal. While concise, it does not provide enough information to be useful. It should include at least one sentence explaining the tool's purpose or usage context.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 5 parameters, no output schema, and no annotations, the description should explain what happens after creation (e.g., returns project details), any restrictions, or required inputs. It fails to provide a complete picture, leaving agents with insufficient context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema covers 100% of parameter descriptions, so the schema already defines each parameter. The description adds no additional meaning beyond the schema, meeting the baseline of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description states 'Create project', which is a specific verb+resource. It clearly indicates the tool's action, but does not differentiate from sibling tools (e.g., why use this over create_issue?). While the name itself is descriptive, the description lacks context to distinguish it from similar creation tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 create_issue or create_merge_request. Prerequisites (e.g., authentication, permissions) are not mentioned, nor are any conditions for successful use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_commitB

단일 커밋 상세 조회

ParametersJSON Schema
NameRequiredDescriptionDefault
shaYes커밋 SHA
instanceNo대상 GitLab 인스턴스명 (생략 시 default)
project_idYes프로젝트 ID

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, and the description does not disclose behavioral traits such as being read-only, authentication requirements, or response format specifics.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise phrase that efficiently conveys the tool's purpose without unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description could mention the kind of details returned, but it remains adequate for a straightforward retrieval tool given its simplicity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions for each parameter. The description adds no additional semantic meaning beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description '단일 커밋 상세 조회' clearly states the tool retrieves details of a single commit, differentiating it from sibling tools like get_commit_diff or list_commit_comments.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool over alternatives (e.g., get_commit_diff) or any context about prerequisites or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_commit_diffC

단일 커밋 변경 내용 조회 (parent 기준)

ParametersJSON Schema
NameRequiredDescriptionDefault
shaYes커밋 SHA
instanceNo대상 GitLab 인스턴스명 (생략 시 default)
file_pathNo특정 파일만 조회
max_linesNo파일당 최대 라인 (기본 1000)
project_idYes프로젝트 ID

TDQS

C2.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, so the description must carry full burden. It does not disclose whether the operation is read-only, what format the diff is returned in, or any side effects. The single line provides minimal behavioral insight.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very short, which is concise, but it lacks necessary detail. It is front-loaded as a single sentence, but earns its place only partially due to missing critical information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description should explain what the tool returns (e.g., diff content, stats). It only mentions 'parent 기준' without elaboration. The tool's purpose is partially clear but incomplete for effective use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema coverage is 100% with descriptions for all 5 parameters. The description adds no additional semantic information beyond the schema, meeting the baseline for full coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description mentions viewing single commit changes based on parent, which is a specific verb and resource. However, it does not clearly differentiate from sibling tools like get_commit or compare_refs, and the meaning of 'parent 기준' is ambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 such as get_commit, get_mr_diff, or compare_refs. The description lacks context for appropriate usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_groupC

그룹 상세 조회

ParametersJSON Schema
NameRequiredDescriptionDefault
group_idYes그룹 ID 또는 경로
instanceNo대상 GitLab 인스턴스명 (생략 시 default)

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, so the description must disclose behavior. It only states a read operation ('조회') but fails to mention any details about return values, permission requirements, or side effects, making it insufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise (a single phrase), which is efficient but lacks structure and informative content. It is not a model of conciseness as it omits necessary details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simplicity of the tool and absence of an output schema, the description should at least indicate what the return value represents. It does not, leaving the agent with incomplete information.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and both parameters are already described in the schema. The description adds no additional meaning beyond the schema, so a baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description '그룹 상세 조회' clearly indicates the tool retrieves group details, distinguishing it from list_groups and other siblings. However, it is minimal and does not explicitly state the resource is a GitLab group, though the name and schema imply it.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 is provided. The description lacks context for preferred usage or exclusions, leaving the agent to infer from the name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_issueC

이슈 상세 조회

ParametersJSON Schema
NameRequiredDescriptionDefault
instanceNo대상 GitLab 인스턴스명 (생략 시 default)
issue_iidYes이슈 내부 번호
project_idYes프로젝트 ID 또는 경로

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided and description does not disclose behavioral traits such as read-only nature, authentication needs, or error handling. For a read operation, description should indicate it is non-destructive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is a single short sentence (3 Korean words) which is concise but barely adds value beyond the name. Could be front-loaded with more context.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, yet description does not mention what is returned (e.g., issue details, fields). Incomplete for an agent to infer response structure.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has 100% coverage with descriptions for all three parameters. Description adds no additional meaning beyond schema; baseline score of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description '이슈 상세 조회' (View issue details) combined with the name 'get_issue' and required parameters issue_iid and project_id clearly indicates it retrieves a single issue. It distinguishes from sibling tools like list_issues, but could be more explicit in English.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool vs siblings like list_issues, create_issue, or update_issue. Does not mention prerequisites or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_merge_requestB

MR 상세 조회 (diff_refs 포함)

ParametersJSON Schema
NameRequiredDescriptionDefault
mr_iidYesMR iid
instanceNo대상 GitLab 인스턴스명 (생략 시 default)
project_idYes프로젝트 ID

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It mentions inclusion of diff_refs but does not disclose read-only nature, authentication requirements, or any side effects. For a read operation, minimal behavioral context is given.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, concise sentence that front-loads the core purpose. Every word is informative, with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema and no annotations, the description is minimal. It does not explain the return format or the extent of 'detailed MR' beyond diff_refs. The agent may need additional context to fully understand the tool's output.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all parameters. The description adds no additional parameter meaning beyond the schema's 'MR iid' and 'project ID' descriptions. Baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'MR 상세 조회 (diff_refs 포함)' meaning detailed MR view including diff_refs. It succinctly communicates the tool's function and distinguishes it from siblings like list_merge_requests (listing) and get_mr_diff (diff only).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for obtaining detailed MR info with diff_refs, but does not explicitly state when to use it versus alternatives like list_merge_requests or get_mr_diff. No exclusions or prerequisites are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_mr_diffB

MR diff 조회 (/diffs, 파일 단위 분할)

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo페이지 번호 (1부터)
mr_iidYesMR iid
instanceNo대상 GitLab 인스턴스명 (생략 시 default)
per_pageNo페이지당 개수 (기본 20)
file_pathNo특정 파일만 조회 (선택)
max_linesNo파일당 최대 라인 (기본 1000)
project_idYes프로젝트 ID

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of behavioral disclosure. It only states the basic purpose and endpoint but does not reveal behavior such as pagination limits, error handling, authentication needs, or implications of the 'file unit split' (e.g., how diffs are aggregated).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very short and to the point, containing only essential information (endpoint and file-splitting aspect). No redundant words, though it could benefit from a brief English equivalent for wider clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 7 parameters, no output schema, and no annotations, the single-sentence description is insufficient. It does not explain the return format, pagination behavior, or how file-splitting works, leaving gaps for an AI agent to infer.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with all parameters described in the input schema. The description adds no extra parameter-level meaning beyond what the schema already provides, so a baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'MR diff 조회' (MR diff query) and the endpoint '/diffs' with '파일 단위 분할' (file unit split), which precisely defines the tool's function. It is distinct from siblings like `get_mr_discussions` or `get_mr_participants`.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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. For example, it doesn't mention that `get_mr_discussions` should be used for comments instead of diffs. The description also lacks prerequisites or context for invocation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_mr_participantsC

MR 참여자 목록 조회

ParametersJSON Schema
NameRequiredDescriptionDefault
mr_iidYes
instanceNo대상 GitLab 인스턴스명 (생략 시 default)
project_idYes

TDQS

C2.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, and the description only states a read-like action ('조회') without confirming read-only behavior, permission requirements, or other traits. The agent gains no insight into side effects or constraints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise but lacks substantive content. While it is front-loaded, it sacrifices necessary detail for brevity, making it minimally adequate.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and three parameters, the description is incomplete. It fails to explain what participants are, the return format, or any constraints like required permissions or pagination.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 33% (instance parameter described). The description adds no parameter-level details, so it does not compensate for the gap. The meaning of mr_iid and project_id is left implicit.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the tool retrieves a list of MR participants. It uses a specific verb ('조회') and resource ('MR 참여자 목록'), and the name aligns. While it does not explicitly differentiate from siblings like get_merge_request, the purpose is distinct by context.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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. There is no mention of prerequisites, filters, or comparison with sibling tools like list_merge_requests or get_merge_request.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_projectB

프로젝트 상세 조회

ParametersJSON Schema
NameRequiredDescriptionDefault
instanceNo대상 GitLab 인스턴스명 (생략 시 default)
project_idYes프로젝트 ID 또는 경로

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden for behavioral disclosure. It only states 'View project details' without mentioning authentication requirements, error handling (e.g., if project not found), or any side effects. For a read operation, transparency is minimal.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise—a single sentence with no wasted words. However, it is so brief that it omits potentially useful details (e.g., output format). For conciseness, it scores well, but structure could be improved by front-loading a more informative verb phrase.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description should ideally explain what is returned (e.g., full project details). It lacks that. Still, for a simple retrieval tool with well-defined parameters and no complex nesting, the description is minimally adequate but not complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with all parameters explained in the schema (instance optional, project_id required with 'ID or path'). The description adds no additional meaning beyond these schema definitions, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description '프로젝트 상세 조회' clearly means 'View project details', a specific verb+resource. It distinguishes from siblings like list_projects (list vs detail) and get_group (different resource). The purpose is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool vs alternatives. While it's implied for retrieving a single project, the description does not mention when not to use it (e.g., for listing all projects) or provide context like expected project_id format. The absence of explicit usage guidance reduces utility.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

gitlab_auth_startA

인스턴스 토큰 등록 플로우 시작 (콜백 서버 기동 + 브라우저 안내)

ParametersJSON Schema
NameRequiredDescriptionDefault
instanceNo등록할 인스턴스명 (미지정 시 default)

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It discloses that the tool starts a callback server and browser guidance, which is useful. However, it does not disclose important behaviors such as whether the flow is destructive, whether it requires user interaction, or what happens if called multiple times. More detail about expected behavior would be beneficial.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that conveys the core purpose without any unnecessary words. It is maximally concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of annotations and output schema, the description is too brief. It does not explain what happens after calling the tool (e.g., returns a URL, prompts a callback), how to complete the flow, or any prerequisites. For an auth flow tool, more contextual completeness is needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and the parameter description is identical in meaning to the schema. The description adds no additional value or context beyond what is already in the schema, resulting in a baseline score.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'start' and the resource 'instance token registration flow', and mentions specific actions (callback server + browser guidance). It distinguishes from sibling 'gitlab_auth_status' by indicating this is the initiation step.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool is for starting authentication, but it does not explicitly state when to use it, when not to use it, or mention alternatives like gitlab_auth_status. The guidance is implicit rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

gitlab_auth_statusA

저장된 인스턴스 토큰 목록 및 진행 중인 등록 세션 확인

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden but only states the tool's purpose. It does not disclose safety (read-only vs mutating), side effects, prerequisites, or what happens if no tokens/sessions exist. Minimal behavioral insight.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence with the key verb and resource front-loaded. No extraneous words or repetition. Every part earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Although the tool has no parameters and no output schema, the description fails to mention the return format or structure of the results. An agent needs to know what 'token list' and 'registration sessions' look like (e.g., array of objects, status fields). This gap limits effective use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are zero parameters, so schema coverage is 100%. The description adds value by explaining what the tool does in context, which is necessary since the schema is empty. Baseline 4 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: to check saved instance tokens and ongoing registration sessions. It uses a specific verb ('check') and resource ('tokens and sessions'), and distinguishes itself from the sibling 'gitlab_auth_start' which initiates registration.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for verifying authentication status but does not explicitly state when to use it (e.g., after starting a session) or when to avoid it (e.g., when no token exists). No alternatives are mentioned despite having a sibling auth tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_commit_commentsC

커밋 코멘트 목록 조회

ParametersJSON Schema
NameRequiredDescriptionDefault
shaYes커밋 SHA
instanceNo대상 GitLab 인스턴스명 (생략 시 default)
project_idYes프로젝트 ID

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, and the description does not disclose any behavioral traits such as read-only nature, pagination, sorting, or rate limits. It fails to inform the agent about safety or side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single short sentence, which is concise and front-loaded. However, it could be slightly more informative without being lengthy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and no annotations, the description is severely lacking. It does not explain the return format, pagination, or any details about the comment objects. This is inadequate for a tool with three parameters.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents parameters. The description adds no extra meaning beyond what is in the schema, meeting the baseline for this dimension.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description "커밋 코멘트 목록 조회" (List commit comments) clearly states the verb 'list' and the resource 'commit comments'. It is more than a tautology but does not differentiate from siblings like 'get_commit' or 'get_commit_diff'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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. The description does not specify that it lists comments for a specific commit (project_id and sha required), nor does it mention any exclusions or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_group_membersB

그룹 멤버 목록 조회

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo페이지 번호 (1부터)
group_idYes그룹 ID 또는 경로
instanceNo대상 GitLab 인스턴스명 (생략 시 default)
per_pageNo페이지당 개수 (기본 20)

TDQS

B3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must compensate. It does not disclose whether the tool is read-only, requires authentication, or handles pagination behavior beyond the schema. Only minimal info is given.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely short (one phrase), but it is front-loaded and clear for a simple listing tool. However, it lacks structure and deeper context expected for a tool with 4 parameters.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has 4 parameters and no output schema, yet the description does not explain what information is returned (e.g., member details). It is too minimal for the complexity of the tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds no additional meaning beyond the schema, but it does not contradict or detract from the parameter descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action and resource: '그룹 멤버 목록 조회' means 'retrieve group member list'. It uses a specific verb and resource, leaving no ambiguity about what the tool does.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 list_groups or get_group. No prerequisites or scenarios provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_group_projectsC

그룹 하위 프로젝트 목록

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo페이지 번호 (1부터)
searchNo검색어 필터
group_idYes그룹 ID 또는 경로
instanceNo대상 GitLab 인스턴스명 (생략 시 default)
per_pageNo페이지당 개수 (기본 20)

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description carries full responsibility. It does not mention read-only behavior, pagination, rate limits, or any side effects. The presence of pagination parameters in the schema is not reflected in the description.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Extremely concise single noun phrase. No redundant information, but could be improved by forming a complete sentence. Still efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the absence of output schema and annotations, the description lacks information about return values, pagination defaults, or filtering behavior. For a 5-parameter tool, more context is needed for effective use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% with each parameter having a brief Korean description. The tool description adds no additional meaning beyond what the schema already provides, so baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description '그룹 하위 프로젝트 목록' clearly indicates listing projects under a group. The name and sibling tools (list_projects, list_subgroups) help distinguish its scope, though the description is a noun phrase rather than an explicit verb+resource statement.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 list_projects or list_subgroups. No prerequisites or context for filtering provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_groupsC

그룹 목록 조회 (검색·페이징)

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo페이지 번호 (1부터)
searchNo검색어 필터
instanceNo대상 GitLab 인스턴스명 (생략 시 default)
per_pageNo페이지당 개수 (기본 20)

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It only states 'list with search/paging' but does not disclose behavioral traits such as authentication requirements, default sorting, rate limits, or what fields are returned. A listing tool should at least mention that it returns all accessible groups or that it's paginated (which is implied by paging params but not stated).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very short (a noun phrase), which is efficient but omits critical context. It is front-loaded with key words but lacks a complete sentence or actionable verb. It is not overly verbose, but the conciseness comes at the cost of completeness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 4 parameters, no output schema, and no annotations, the description should explain what the tool returns (e.g., list of group objects with fields). It only mentions listing with search/paging but does not describe the output format or behavior like default ordering or whether instance is required. The description is incomplete for an agent to fully understand the tool's behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% (each parameter has a description). The description adds the context '검색·페이징' confirming search and paging, but does not add meaning beyond the schema. The instance parameter is already documented in schema. Thus, the description does not significantly enrich parameter understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description '그룹 목록 조회 (검색·페이징)' clearly indicates a query/list action on groups resource with search/paging. The tool name 'list_groups' aligns. However, it does not explicitly differentiate from sibling tools like 'list_subgroups' or 'list_group_projects', though the resource focus is evident.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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. For example, it doesn't distinguish from 'list_subgroups' for listing subgroups under a specific group, or 'list_group_projects' for projects within a group. The description lacks any usage conditions or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_issue_notesC

이슈 코멘트 목록 조회

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo페이지 번호 (1부터)
instanceNo대상 GitLab 인스턴스명 (생략 시 default)
per_pageNo페이지당 개수 (기본 20)
issue_iidYes이슈 내부 번호
project_idYes프로젝트 ID 또는 경로

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description carries full burden. It fails to disclose behavior such as pagination, ordering, authentication needs, or whether all notes are returned. The one-line translation only states the action.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Extremely concise single sentence, front-loaded with the core purpose. However, it may be too terse, omitting useful context without becoming verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 5 parameters, no output schema, and no annotations, the description lacks completeness. It does not explain the concept of an 'issue note' or the pagination behavior, leaving significant gaps for an AI agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema has 100% description coverage, so schema already documents each parameter. The description adds no extra meaning beyond the schema, meeting the baseline of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description '이슈 코멘트 목록 조회' clearly states the action (list) and resource (issue comments), distinguishing it from siblings like 'list_issues' and 'create_issue_note'. However, it does not explicitly contrast with 'list_mr_notes' for merge requests.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 'list_issues' or 'create_issue_note'. No prerequisites or context for use are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_issuesB

이슈 목록 조회 (상태·레이블·담당자 필터)

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo페이지 번호 (1부터)
stateNo이슈 상태 필터
labelsNo레이블 필터 (쉼표 구분)
instanceNo대상 GitLab 인스턴스명 (생략 시 default)
per_pageNo페이지당 개수 (기본 20)
project_idYes프로젝트 ID 또는 경로
assignee_usernameNo담당자 사용자명

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden for behavioral disclosure. It lists filters, implying non-destructive read behavior, but does not explicitly state read-only, auth requirements, rate limits, or behavior when no results exist.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence with parenthetical filter summary is concise and front-loaded. However, it could be more structured by separating key features (e.g., pagination, project requirement) for clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 7 parameters, 1 required, and no output schema, the description is incomplete. It misses critical context such as the mandatory project_id, pagination behavior, and response format. It covers filters but not the broader operational context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 groups filters (status, label, assignee) but adds no additional meaning beyond the schema for these or other parameters like page, per_page, or project_id.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the tool retrieves a list of issues with filtering by status, label, and assignee. This distinguishes it from single-issue retrieval (get_issue) and other issue-related tools. However, it does not explicitly mention that it operates within a project context or supports pagination.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives like get_issue for a single issue. The description implies usage for filtered listing but does not state prerequisites (e.g., project_id required) or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_merge_requestsA

MR 목록 조회 (상태·브랜치 필터)

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo페이지 번호 (1부터)
stateNoMR 상태
instanceNo대상 GitLab 인스턴스명 (생략 시 default)
per_pageNo페이지당 개수 (기본 20)
project_idYes프로젝트 ID 또는 경로
source_branchNo소스 브랜치 필터
target_branchNo타깃 브랜치 필터

TDQS

A3.5/5.0
Behavior2/5

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 only states the core purpose and filtering options. It omits details like pagination behavior, rate limits, or required permissions. For a listing tool, this is insufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single short line in Korean, which is concise and front-loaded. It contains no wasted words, though it could benefit from slightly more detail. Still, it earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (7 parameters, many sibling tools) and lack of output schema or annotations, the description is too minimal. It does not explain how to choose between this and other MR listing tools (e.g., get_merge_request) or clarify behavior like pagination. Incomplete for a tool with many filtering options.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All 7 parameters have descriptions in the input schema (100% coverage). The description adds no extra meaning beyond the schema. Per guidelines, baseline is 3 when schema coverage is high, and no additional value is provided.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'MR 목록 조회 (상태·브랜치 필터)' translates to 'List MRs (status/branch filter)', clearly stating the tool retrieves a list of merge requests with filtering options. This distinguishes it from siblings like get_merge_request (single MR) and list_mr_notes (notes).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for listing MRs with status and branch filters. It clearly indicates the tool is for filtered listing, but does not explicitly state when not to use it or mention alternatives among the many MR-related siblings. Still, the context is adequate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_mr_discussionsC

MR Discussion 목록 조회

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo페이지 번호 (1부터)
mr_iidYesMR iid
instanceNo대상 GitLab 인스턴스명 (생략 시 default)
per_pageNo페이지당 개수 (기본 20)
project_idYes프로젝트 ID

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of behavioral disclosure. It only states the action without any mention of read-only nature, pagination, permissions, or side effects. This is insufficient for safe invocation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, short phrase with no redundancy. It is appropriately sized for a simple list operation. Every word serves a purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity and lack of output schema, the description fails to provide context about return values (e.g., discussion fields, pagination metadata). The agent lacks essential information to interpret the tool's results.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage for all 5 parameters, so the schema itself provides clear semantics. The description adds no additional meaning beyond the 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.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'MR Discussion 목록 조회' translates to 'List MR Discussions', which clearly states the verb (list) and resource (MR discussions). It is specific enough to identify the tool's purpose among siblings like list_mr_notes. However, it does not explicitly differentiate 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.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No usage guidelines are provided. The description does not indicate when to use this tool versus alternatives such as list_mr_notes or get_mr_diff. The agent receives no context for decision-making.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_mr_notesC

MR 코멘트 목록 조회

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo페이지 번호 (1부터)
mr_iidYesMR iid
instanceNo대상 GitLab 인스턴스명 (생략 시 default)
per_pageNo페이지당 개수 (기본 20)
project_idYes프로젝트 ID

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description bears full responsibility for disclosing behavioral traits. It only says 'list' without mentioning pagination, ordering, or any side effects. Given the schema includes page and per_page, pagination is implied but not described.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise, consisting of a single Korean phrase. It front-loads the purpose but may be too brief. No wasted words, but could benefit from slight expansion.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the absence of output schema and annotations, the description is incomplete. It does not explain return values, default behavior, or differentiate from closely related tools like list_mr_discussions. The agent would need to infer too much.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and all parameters are well-described in the input schema. The tool description adds no additional meaning beyond the schema. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'MR 코멘트 목록 조회' clearly states it lists MR notes (comments). It distinguishes from sibling tools like list_mr_discussions and create_mr_note. However, it could be more specific about the scope (e.g., notes on a specific MR).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No usage guidelines are provided. The description does not indicate when to use this tool versus alternatives, nor does it mention any preconditions or context where it is applicable. The usage is implied but not explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_namespacesC

네임스페이스 목록 조회

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo페이지 번호 (1부터)
searchNo검색어 필터
instanceNo대상 GitLab 인스턴스명 (생략 시 default)
per_pageNo페이지당 개수 (기본 20)

TDQS

C2.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full responsibility for disclosing behavioral traits. It merely states it retrieves a list, without mentioning pagination, search, or instance selection parameters already defined in the schema. The description adds no behavioral context beyond the tool's basic function.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single short sentence, but it is under-specified rather than efficiently concise. It repeats the tool's name without providing essential details, making it too brief to be useful for an AI agent.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is severely incomplete given the tool's complexity (4 parameters, no output schema). It fails to explain the scope of namespaces listed, the return format, or how it differs from closely related sibling tools like list_groups.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema covers all four parameters with descriptions (page, search, instance, per_page), achieving 100% coverage. The description does not add any additional meaning to these parameters, so it meets the baseline expectation for this dimension.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description '네임스페이스 목록 조회' is essentially a tautology of the tool name 'list_namespaces', restating the same idea without adding specificity. It does not distinguish the tool from siblings like list_groups, which also lists namespaces but more specifically for groups.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 such as list_groups or list_projects. The description lacks any context about the tool's scope or filtering capabilities that would help an agent decide when to invoke it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_projectsC

프로젝트 목록 조회 (검색·페이징)

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo페이지 번호 (1부터)
searchNo검색어 필터
instanceNo대상 GitLab 인스턴스명 (생략 시 default)
per_pageNo페이지당 개수 (기본 20)

TDQS

C2.9/5.0
Behavior2/5

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 only states 'list' with search/pagination, omitting safety guarantees, authentication needs, or rate limits. It does not contradict, but is insufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely brief (one sentence in Korean). No wasted words, but it could be more informative while remaining concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema and no annotations, the description should cover return format, pagination details, and instance behavior. It does not address these, leaving gaps for an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so parameters are already documented. The description adds only the generic 'search/pagination' note, which matches param names but provides no additional meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it lists projects with search and pagination (프로젝트 목록 조회). It distinguishes from create/update/delete tools but does not explicitly differentiate from sibling list tools like list_groups.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool over alternatives. No exclusions, prerequisites, or context about when search or pagination should be used.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_subgroupsC

서브그룹 목록 조회

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo페이지 번호 (1부터)
group_idYes그룹 ID 또는 경로
instanceNo대상 GitLab 인스턴스명 (생략 시 default)
per_pageNo페이지당 개수 (기본 20)

TDQS

C2.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must disclose behavior. It implies read-only and pagination via schema parameters but does not explicitly state that it is safe or describe pagination behavior, ordering, or limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise (one short phrase), which is efficient but lacks essential context for a tool with multiple siblings and paginated results.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 4 parameters, no output schema, and no annotations, the description is incomplete. It does not explain output format, relationship to group_id, or pagination details.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema provides full coverage (100%) for all 4 parameters. The description adds no extra meaning, but the schema descriptions are adequate, so baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description '서브그룹 목록 조회' is a tautology of the tool name 'list_subgroups', adding no new information. It fails to clarify what subgroups are or how they relate to groups.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 siblings like list_groups or list_group_projects. An agent cannot distinguish appropriate contexts from the description alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

reply_mr_discussionC

Discussion 답글 작성

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYes답글 내용
mr_iidYesMR iid
instanceNo대상 GitLab 인스턴스명 (생략 시 default)
project_idYes프로젝트 ID
discussion_idYesDiscussion ID

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, and the description gives no information about side effects, auth requirements, error behavior, or response format; the tool appears to perform a write operation but lacks transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single short phrase, which is concise but too sparse; it lacks any structural elements like bullet points or examples.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 5 parameters (4 required) and no output schema or annotations, the description does not provide sufficient context about the operation's effects, return values, or usage constraints.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 descriptions are minimal (e.g., '답글 내용' for body, 'MR iid'), adding little extra meaning beyond field names.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Discussion 답글 작성' clearly states the action (reply) and the object (discussion), but it is in Korean and does not distinguish from sibling tools like create_mr_discussion.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 create_mr_discussion or list_mr_discussions; no context on prerequisites or conditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

resolve_mr_discussionD

Discussion 해결(resolved) 처리

ParametersJSON Schema
NameRequiredDescriptionDefault
mr_iidYesMR iid
instanceNo대상 GitLab 인스턴스명 (생략 시 default)
resolvedYes해결 여부
project_idYes프로젝트 ID
discussion_idYesDiscussion ID

TDQS

D1.6/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description lacks any disclosure of behavioral traits. It does not indicate that the tool modifies the discussion's resolved state, nor does it mention side effects, permissions, or idempotency. No annotations are present to compensate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness1/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single incomplete sentence that fails to convey the tool's purpose effectively. While short, it is not informative and wastes the opportunity to provide crucial details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool that mutates state and has 5 parameters, the description is severely incomplete. It does not explain the effect of the 'resolved' parameter, the expected input format, or the return value. No output schema exists.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema provides descriptions for all 5 parameters (100% coverage), so the description needs to add little. However, the description adds no additional context or meaning beyond what the schema already states.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Discussion 해결(resolved) 처리' is vague and essentially restates the tool name without adding clarity. It does not specify that the tool toggles the resolved status of a discussion, nor does it differentiate from sibling tools like reply_mr_discussion or create_mr_discussion.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

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 compared to other discussion-related tools. There is no mention of prerequisites, such as needing to be a participant or having certain permissions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

unapprove_mrB

MR 승인 취소 (EE 전용)

ParametersJSON Schema
NameRequiredDescriptionDefault
mr_iidYesMR iid
instanceNo대상 GitLab 인스턴스명 (생략 시 default)
project_idYes프로젝트 ID

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, and the description does not disclose behavioral traits such as idempotency, required permissions, or whether the action is reversible. For a mutation tool, this is insufficient beyond the obvious purpose.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that is front-loaded and to the point. It is concise, but could be expanded slightly for clarity without losing efficiency.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of annotations, output schema, and the tool's mutating nature, the description is too sparse. It does not cover error conditions, response format, or prerequisites, leaving important gaps for agent decision-making.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema covers 100% of parameter descriptions, so the description need not add more. It does not, but the schema itself provides adequate meaning for the parameters. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (cancel MR approval) and the resource (merge request). The 'EE only' suffix and sibling 'approve_mr' help distinguish it from related tools. However, it's brief and doesn't elaborate on the cancellation scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The 'EE only' note provides a usage restriction, but no explicit guidance on when to use versus alternatives like 'approve_mr' or when not to use. Sibling tool names imply the primary alternative, but no further context is given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_issueB

이슈 수정 (제목·설명·상태·레이블)

ParametersJSON Schema
NameRequiredDescriptionDefault
titleNo새 제목
labelsNo레이블 (쉼표 구분)
instanceNo대상 GitLab 인스턴스명 (생략 시 default)
issue_iidYes이슈 내부 번호
project_idYes프로젝트 ID 또는 경로
descriptionNo새 설명
state_eventNo상태 변경 이벤트

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must convey behavioral traits. It mentions editing but does not state that it persists changes, requires authorization, or how partial updates work. It lacks detail expected for a mutation tool with zero annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single line with no redundancy, perfectly front-loaded with the core purpose. Every word is necessary.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 7 parameters and no output schema or annotations, the description is too brief. It omits explanation of parameters like instance, issue_iid, and does not describe return behavior. For a tool of this complexity, more detail is needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 adds no extra meaning beyond listing fields (title, description, status, labels) already documented in the schema. No examples or constraints are provided.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool edits issues and lists editable fields (title, description, status, labels). The verb '수정' (edit) plus resource '이슈' (issue) is specific and distinguishes from siblings like create_issue or get_issue.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies use for editing existing issues but provides no explicit guidance on when to use vs. alternatives, no prerequisites, and no when-not scenarios. With siblings like get_issue, this lack of differentiation is a minor gap.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_merge_requestC

MR 상태 변경 (merge/close)

ParametersJSON Schema
NameRequiredDescriptionDefault
mergeNotrue 면 merge 수행
titleNo제목 수정
mr_iidYesMR iid
instanceNo대상 GitLab 인스턴스명 (생략 시 default)
project_idYes프로젝트 ID
descriptionNo설명 수정
state_eventNo상태 변경 이벤트

TDQS

C2.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so the description must fully disclose behavioral traits. It only hints at state changes but omits that it can also update strings (title, description), has no information about permissions, idempotency, or side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single short sentence, which is concise but critically under-specified. It fails to convey the full scope of the tool, making it less useful.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 7 parameters, no output schema, and no annotations, the description should summarize all actions. It only covers merge/close, ignoring the title and description updates. The complexity is moderate, but the description is incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so each parameter has a description. The tool description adds no additional meaning beyond the schema. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'MR 상태 변경 (merge/close)' indicates a merge request status change, but it only mentions merge and close, while the schema also allows reopening and updating title/description. The purpose is somewhat clear but incomplete.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 siblings like approve_mr or create_merge_request. The description does not state prerequisites or context.

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.

  1. 37 tool updatesv0.5.1
    • First observedapprove_mr
    • First observedcompare_refs
    • First observedcreate_commit_comment
    • First observedcreate_commit_discussion
    • First observedcreate_issue
    • First observedcreate_issue_note
    • First observedcreate_merge_request
    • First observedcreate_mr_discussion
    • First observedcreate_mr_note
    • First observedcreate_project
    • First observedget_commit
    • First observedget_commit_diff
    • First observedget_group
    • First observedget_issue
    • First observedget_merge_request
    • First observedget_mr_diff
    • First observedget_mr_participants
    • First observedget_project
    • First observedgitlab_auth_start
    • First observedgitlab_auth_status
    • First observedlist_commit_comments
    • First observedlist_group_members
    • First observedlist_group_projects
    • First observedlist_groups
    • First observedlist_issue_notes
    • First observedlist_issues
    • First observedlist_merge_requests
    • First observedlist_mr_discussions
    • First observedlist_mr_notes
    • First observedlist_namespaces
    • First observedlist_projects
    • First observedlist_subgroups
    • First observedreply_mr_discussion
    • First observedresolve_mr_discussion
    • First observedunapprove_mr
    • First observedupdate_issue
    • First observedupdate_merge_request

TDQS

B3.1/5.0
Disambiguation5/5

Each tool targets a distinct resource and action: groups, projects, issues, merge requests, commits, and authentication. There is no overlap; even within merge requests, tools differentiate between notes, discussions, diffs, and approvals.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern (e.g., list_groups, get_project, create_issue_note). The authentication tools use a separate prefix (gitlab_auth_) but remain internally consistent.

Tool Count4/5

37 tools is above the typical range but justified by the breadth of GitLab's API coverage. The count is not excessive; each tool serves a clear purpose without redundancy.

Completeness5/5

The tool surface covers full CRUD for groups, projects, issues, and merge requests, including notes, discussions, diffs, and approvals. Commit operations and authentication are also included, leaving no obvious gaps for common workflows.

Maintenance

ActivitySlowing
ResponsivenessSyncing

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

  • F
    license
    A
    quality
    C
    maintenance
    Connects AI assistants to GitLab to interact with merge requests, reviews, discussions, pipelines, and test results through natural language queries. Supports viewing MR details, responding to comments, checking test summaries, and analyzing job logs.
    12
    2
    -
  • F
    license
    Not graded
    quality
    Not graded
    maintenance
    Connects AI assistants to GitLab projects, enabling users to query merge requests, review discussions, view test results and pipelines, search by branch, and respond to comments through natural language commands.
    -
  • F
    license
    Not graded
    quality
    Not graded
    maintenance
    Connects AI assistants to GitLab projects, enabling natural language queries for merge requests, code reviews, test results, pipelines, and discussions. Supports viewing MR details, responding to comments, and analyzing CI/CD job logs.
    -
  • F
    license
    Not graded
    quality
    Not graded
    maintenance
    Enables AI assistants to manage GitLab projects by providing tools for issues, milestones, and team reports through a read/write interface. Users can interact with project data using natural language directly within Claude Desktop or Claude Code.
    -

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/wisesky0/gitlab-mcp'

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