gitlab-mcp
Provides tools for interacting with GitLab's REST API v4, enabling AI agents to manage projects, issues, merge requests, pipelines, branches, wikis, and perform code reviews and comparisons on a GitLab instance.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@gitlab-mcpreview my latest merge request"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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: 17432Claude Code 연동
Step 1 — config/instances.yaml 에 GitLab 인스턴스 등록
instances:
- name: company-gitlab
url: http://localhost:8929 # 로컬 Docker 검증 시. 실서버는 사내 URL로 변경
default: true
api_version: v4
ssl_verify: falseStep 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 buildStep 4 — Claude Code 에 MCP 서버 등록
claude mcp add 명령으로 등록한다. dist/index.js 와 config/ 는 절대 경로로 지정해야 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/configWindows (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-dir—instances.yaml위치를 절대 경로로 지정
claude mcp list # 등록 목록 + 연결 상태 확인프로필 요약
프로필 | 노출 그룹 | 용도 |
| 전체 8개 그룹 | 기본 권장 |
| group, project, issue, repo | 프로젝트 탐색 + 코드 |
| mr, compare | 코드 리뷰 전용 |
| pipeline | CI 모니터링 전용 |
(생략) |
| 커스텀 |
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.yaml 의 tool_groups 설정을 그대로 따르므로, 아래처럼 모두 켜두고 등록해도 동일한 효과를 낸다.
claude mcp add gitlab -- node /Users/your-name/projects/gitlab-mcp/dist/index.js방법 |
| wiki 포함 여부 |
| 무시 | 항상 포함 |
| 참조 | 설정값에 따라 |
인증 (토큰 등록)
토큰이 없으면 tool 호출 시 PAT 발행 페이지 URL 을 안내한다.
안내된 URL 로 GitLab 에서 Personal Access Token 발급 (scope:
api,read_repository,write_repository)로컬 콜백 페이지(
http://localhost:17432)에 토큰을 붙여넣고 제출서버가
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 toolsapprove_mrC
MR 승인 (EE 전용)
| Name | Required | Description | Default |
|---|---|---|---|
| mr_iid | Yes | MR iid | |
| instance | No | 대상 GitLab 인스턴스명 (생략 시 default) | |
| project_id | Yes | 프로젝트 ID |
TDQS
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.
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.
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.
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.
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.
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 비교 (브랜치/태그/커밋)
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | 대상 ref (브랜치/태그/SHA) | |
| from | Yes | 기준 ref (브랜치/태그/SHA) | |
| instance | No | 대상 GitLab 인스턴스명 (생략 시 default) | |
| straight | No | 직선 비교 여부 | |
| file_path | No | 특정 파일만 조회 | |
| max_lines | No | 파일당 최대 라인 (기본 1000) | |
| project_id | Yes | 프로젝트 ID |
TDQS
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.
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.
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.
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.
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.
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
커밋 일반 코멘트 작성
| Name | Required | Description | Default |
|---|---|---|---|
| sha | Yes | 커밋 SHA | |
| note | Yes | 코멘트 내용 | |
| instance | No | 대상 GitLab 인스턴스명 (생략 시 default) | |
| project_id | Yes | 프로젝트 ID |
TDQS
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.
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.
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.
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.
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.
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
커밋 라인 단위 인라인 코멘트 작성
| Name | Required | Description | Default |
|---|---|---|---|
| sha | Yes | 커밋 SHA | |
| line | Yes | 대상 라인 번호 | |
| note | Yes | 코멘트 내용 | |
| path | Yes | 대상 파일 경로 | |
| instance | No | 대상 GitLab 인스턴스명 (생략 시 default) | |
| line_type | No | 라인 타입 (기본 new) | |
| project_id | Yes | 프로젝트 ID |
TDQS
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.
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.
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.
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.
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.
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
이슈 생성
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | 이슈 제목 | |
| labels | No | 레이블 (쉼표 구분) | |
| instance | No | 대상 GitLab 인스턴스명 (생략 시 default) | |
| project_id | Yes | 프로젝트 ID 또는 경로 | |
| description | No | 이슈 설명 | |
| assignee_ids | No | 담당자 ID 배열 |
TDQS
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.
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.
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.
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.
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.
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
이슈 코멘트 작성
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | 코멘트 내용 | |
| instance | No | 대상 GitLab 인스턴스명 (생략 시 default) | |
| issue_iid | Yes | 이슈 내부 번호 | |
| project_id | Yes | 프로젝트 ID 또는 경로 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It 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.
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.
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.
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.
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.
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 생성
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | MR 제목 | |
| instance | No | 대상 GitLab 인스턴스명 (생략 시 default) | |
| project_id | Yes | 프로젝트 ID | |
| description | No | MR 설명 | |
| source_branch | Yes | 소스 브랜치 | |
| target_branch | Yes | 타깃 브랜치 |
TDQS
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.
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.
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.
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.
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.
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) 작성
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | 코멘트 내용 | |
| path | Yes | 대상 파일 경로 (new_path) | |
| mr_iid | Yes | MR iid | |
| base_sha | Yes | diff_refs.base_sha | |
| head_sha | Yes | diff_refs.head_sha | |
| instance | No | 대상 GitLab 인스턴스명 (생략 시 default) | |
| new_line | Yes | 대상 라인 번호 | |
| start_sha | Yes | diff_refs.start_sha | |
| project_id | Yes | 프로젝트 ID |
TDQS
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.
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.
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.
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.
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.
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 일반 코멘트 작성
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | 코멘트 내용 | |
| mr_iid | Yes | MR iid | |
| instance | No | 대상 GitLab 인스턴스명 (생략 시 default) | |
| project_id | Yes | 프로젝트 ID |
TDQS
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.
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.
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.
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.
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.
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
프로젝트 생성
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | 프로젝트 이름 | |
| instance | No | 대상 GitLab 인스턴스명 (생략 시 default) | |
| visibility | No | 공개 범위 | |
| description | No | 프로젝트 설명 | |
| namespace_id | No | 네임스페이스(그룹) ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It 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.
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.
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.
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.
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.
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
단일 커밋 상세 조회
| Name | Required | Description | Default |
|---|---|---|---|
| sha | Yes | 커밋 SHA | |
| instance | No | 대상 GitLab 인스턴스명 (생략 시 default) | |
| project_id | Yes | 프로젝트 ID |
TDQS
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.
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.
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.
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.
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.
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 기준)
| Name | Required | Description | Default |
|---|---|---|---|
| sha | Yes | 커밋 SHA | |
| instance | No | 대상 GitLab 인스턴스명 (생략 시 default) | |
| file_path | No | 특정 파일만 조회 | |
| max_lines | No | 파일당 최대 라인 (기본 1000) | |
| project_id | Yes | 프로젝트 ID |
TDQS
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.
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.
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.
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.
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.
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
그룹 상세 조회
| Name | Required | Description | Default |
|---|---|---|---|
| group_id | Yes | 그룹 ID 또는 경로 | |
| instance | No | 대상 GitLab 인스턴스명 (생략 시 default) |
TDQS
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.
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.
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.
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.
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.
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
이슈 상세 조회
| Name | Required | Description | Default |
|---|---|---|---|
| instance | No | 대상 GitLab 인스턴스명 (생략 시 default) | |
| issue_iid | Yes | 이슈 내부 번호 | |
| project_id | Yes | 프로젝트 ID 또는 경로 |
TDQS
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.
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.
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.
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.
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.
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 포함)
| Name | Required | Description | Default |
|---|---|---|---|
| mr_iid | Yes | MR iid | |
| instance | No | 대상 GitLab 인스턴스명 (생략 시 default) | |
| project_id | Yes | 프로젝트 ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It 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.
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.
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.
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.
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.
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, 파일 단위 분할)
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | 페이지 번호 (1부터) | |
| mr_iid | Yes | MR iid | |
| instance | No | 대상 GitLab 인스턴스명 (생략 시 default) | |
| per_page | No | 페이지당 개수 (기본 20) | |
| file_path | No | 특정 파일만 조회 (선택) | |
| max_lines | No | 파일당 최대 라인 (기본 1000) | |
| project_id | Yes | 프로젝트 ID |
TDQS
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.
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.
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.
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.
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.
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 참여자 목록 조회
| Name | Required | Description | Default |
|---|---|---|---|
| mr_iid | Yes | ||
| instance | No | 대상 GitLab 인스턴스명 (생략 시 default) | |
| project_id | Yes |
TDQS
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.
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.
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.
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.
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.
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
프로젝트 상세 조회
| Name | Required | Description | Default |
|---|---|---|---|
| instance | No | 대상 GitLab 인스턴스명 (생략 시 default) | |
| project_id | Yes | 프로젝트 ID 또는 경로 |
TDQS
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.
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.
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.
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.
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.
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
인스턴스 토큰 등록 플로우 시작 (콜백 서버 기동 + 브라우저 안내)
| Name | Required | Description | Default |
|---|---|---|---|
| instance | No | 등록할 인스턴스명 (미지정 시 default) |
TDQS
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.
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.
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.
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.
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.
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
저장된 인스턴스 토큰 목록 및 진행 중인 등록 세션 확인
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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
커밋 코멘트 목록 조회
| Name | Required | Description | Default |
|---|---|---|---|
| sha | Yes | 커밋 SHA | |
| instance | No | 대상 GitLab 인스턴스명 (생략 시 default) | |
| project_id | Yes | 프로젝트 ID |
TDQS
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.
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.
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.
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.
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.
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
그룹 멤버 목록 조회
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | 페이지 번호 (1부터) | |
| group_id | Yes | 그룹 ID 또는 경로 | |
| instance | No | 대상 GitLab 인스턴스명 (생략 시 default) | |
| per_page | No | 페이지당 개수 (기본 20) |
TDQS
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.
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.
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.
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.
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.
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
그룹 하위 프로젝트 목록
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | 페이지 번호 (1부터) | |
| search | No | 검색어 필터 | |
| group_id | Yes | 그룹 ID 또는 경로 | |
| instance | No | 대상 GitLab 인스턴스명 (생략 시 default) | |
| per_page | No | 페이지당 개수 (기본 20) |
TDQS
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.
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.
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.
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.
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.
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
그룹 목록 조회 (검색·페이징)
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | 페이지 번호 (1부터) | |
| search | No | 검색어 필터 | |
| instance | No | 대상 GitLab 인스턴스명 (생략 시 default) | |
| per_page | No | 페이지당 개수 (기본 20) |
TDQS
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.
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.
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.
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.
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.
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
이슈 코멘트 목록 조회
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | 페이지 번호 (1부터) | |
| instance | No | 대상 GitLab 인스턴스명 (생략 시 default) | |
| per_page | No | 페이지당 개수 (기본 20) | |
| issue_iid | Yes | 이슈 내부 번호 | |
| project_id | Yes | 프로젝트 ID 또는 경로 |
TDQS
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.
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.
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.
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.
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.
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
이슈 목록 조회 (상태·레이블·담당자 필터)
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | 페이지 번호 (1부터) | |
| state | No | 이슈 상태 필터 | |
| labels | No | 레이블 필터 (쉼표 구분) | |
| instance | No | 대상 GitLab 인스턴스명 (생략 시 default) | |
| per_page | No | 페이지당 개수 (기본 20) | |
| project_id | Yes | 프로젝트 ID 또는 경로 | |
| assignee_username | No | 담당자 사용자명 |
TDQS
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.
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.
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.
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.
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.
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 목록 조회 (상태·브랜치 필터)
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | 페이지 번호 (1부터) | |
| state | No | MR 상태 | |
| instance | No | 대상 GitLab 인스턴스명 (생략 시 default) | |
| per_page | No | 페이지당 개수 (기본 20) | |
| project_id | Yes | 프로젝트 ID 또는 경로 | |
| source_branch | No | 소스 브랜치 필터 | |
| target_branch | No | 타깃 브랜치 필터 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It 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.
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.
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.
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.
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.
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 목록 조회
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | 페이지 번호 (1부터) | |
| mr_iid | Yes | MR iid | |
| instance | No | 대상 GitLab 인스턴스명 (생략 시 default) | |
| per_page | No | 페이지당 개수 (기본 20) | |
| project_id | Yes | 프로젝트 ID |
TDQS
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.
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.
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.
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.
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.
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 코멘트 목록 조회
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | 페이지 번호 (1부터) | |
| mr_iid | Yes | MR iid | |
| instance | No | 대상 GitLab 인스턴스명 (생략 시 default) | |
| per_page | No | 페이지당 개수 (기본 20) | |
| project_id | Yes | 프로젝트 ID |
TDQS
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.
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.
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.
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.
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.
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
네임스페이스 목록 조회
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | 페이지 번호 (1부터) | |
| search | No | 검색어 필터 | |
| instance | No | 대상 GitLab 인스턴스명 (생략 시 default) | |
| per_page | No | 페이지당 개수 (기본 20) |
TDQS
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.
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.
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.
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.
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.
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
프로젝트 목록 조회 (검색·페이징)
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | 페이지 번호 (1부터) | |
| search | No | 검색어 필터 | |
| instance | No | 대상 GitLab 인스턴스명 (생략 시 default) | |
| per_page | No | 페이지당 개수 (기본 20) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It 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.
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.
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.
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.
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.
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
서브그룹 목록 조회
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | 페이지 번호 (1부터) | |
| group_id | Yes | 그룹 ID 또는 경로 | |
| instance | No | 대상 GitLab 인스턴스명 (생략 시 default) | |
| per_page | No | 페이지당 개수 (기본 20) |
TDQS
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.
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.
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.
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.
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.
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 답글 작성
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | 답글 내용 | |
| mr_iid | Yes | MR iid | |
| instance | No | 대상 GitLab 인스턴스명 (생략 시 default) | |
| project_id | Yes | 프로젝트 ID | |
| discussion_id | Yes | Discussion ID |
TDQS
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.
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.
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.
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.
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.
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) 처리
| Name | Required | Description | Default |
|---|---|---|---|
| mr_iid | Yes | MR iid | |
| instance | No | 대상 GitLab 인스턴스명 (생략 시 default) | |
| resolved | Yes | 해결 여부 | |
| project_id | Yes | 프로젝트 ID | |
| discussion_id | Yes | Discussion ID |
TDQS
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.
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.
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.
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.
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.
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 전용)
| Name | Required | Description | Default |
|---|---|---|---|
| mr_iid | Yes | MR iid | |
| instance | No | 대상 GitLab 인스턴스명 (생략 시 default) | |
| project_id | Yes | 프로젝트 ID |
TDQS
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.
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.
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.
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.
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.
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
이슈 수정 (제목·설명·상태·레이블)
| Name | Required | Description | Default |
|---|---|---|---|
| title | No | 새 제목 | |
| labels | No | 레이블 (쉼표 구분) | |
| instance | No | 대상 GitLab 인스턴스명 (생략 시 default) | |
| issue_iid | Yes | 이슈 내부 번호 | |
| project_id | Yes | 프로젝트 ID 또는 경로 | |
| description | No | 새 설명 | |
| state_event | No | 상태 변경 이벤트 |
TDQS
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.
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.
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.
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.
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.
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)
| Name | Required | Description | Default |
|---|---|---|---|
| merge | No | true 면 merge 수행 | |
| title | No | 제목 수정 | |
| mr_iid | Yes | MR iid | |
| instance | No | 대상 GitLab 인스턴스명 (생략 시 default) | |
| project_id | Yes | 프로젝트 ID | |
| description | No | 설명 수정 | |
| state_event | No | 상태 변경 이벤트 |
TDQS
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.
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.
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.
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.
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.
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.
37 tool updates
v0.5.1- First observed
approve_mr - First observed
compare_refs - First observed
create_commit_comment - First observed
create_commit_discussion - First observed
create_issue - First observed
create_issue_note - First observed
create_merge_request - First observed
create_mr_discussion - First observed
create_mr_note - First observed
create_project - First observed
get_commit - First observed
get_commit_diff - First observed
get_group - First observed
get_issue - First observed
get_merge_request - First observed
get_mr_diff - First observed
get_mr_participants - First observed
get_project - First observed
gitlab_auth_start - First observed
gitlab_auth_status - First observed
list_commit_comments - First observed
list_group_members - First observed
list_group_projects - First observed
list_groups - First observed
list_issue_notes - First observed
list_issues - First observed
list_merge_requests - First observed
list_mr_discussions - First observed
list_mr_notes - First observed
list_namespaces - First observed
list_projects - First observed
list_subgroups - First observed
reply_mr_discussion - First observed
resolve_mr_discussion - First observed
unapprove_mr - First observed
update_issue - First observed
update_merge_request
TDQS
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.
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.
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.
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
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
Persistent memory for Claude Code and Cursor. Stop re-explaining your project every session.
Code intelligence for LLMs. Analyze, search, and retrieve code from any public git repository.
Share context and questions between Claude instances — VS Code, claude.ai web, and mobile.
Persistent context for Claude. Your AI always knows your projects and next actions across sessions.
Related MCP Servers
- FlicenseAqualityCmaintenanceConnects 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.122-
- FlicenseNot gradedqualityNot gradedmaintenanceConnects 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.-
- FlicenseNot gradedqualityNot gradedmaintenanceConnects 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.-
- FlicenseNot gradedqualityNot gradedmaintenanceEnables 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
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/wisesky0/gitlab-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server