Summary
Gap analysis against GitLab REST API v4 identified 40 tools worth adding across 3 priority tiers. Current tool count: 76.
HIGH Priority (14 tools)
These are blocking for common AI assistant workflows:
| # |
Gap |
API Endpoint |
Tools to Add |
| 1 |
Approve/Unapprove MR |
POST .../approve, POST .../unapprove |
gitlab_approve_mr, gitlab_unapprove_mr |
| 2 |
Current user |
GET /user |
gitlab_get_current_user |
| 3 |
Search users |
GET /users?search= |
gitlab_search_users |
| 4 |
Read repository file |
GET .../repository/files/:path/raw |
gitlab_get_file |
| 5 |
File blame |
GET .../repository/files/:path/blame |
gitlab_get_file_blame |
| 6 |
List repository tree |
GET .../repository/tree |
gitlab_list_repository_tree |
| 7 |
Project/group members |
GET .../members, POST, DELETE |
gitlab_list_members, gitlab_add_member, gitlab_remove_member |
| 8 |
Protected branches |
GET/POST/PATCH/DELETE .../protected_branches |
gitlab_list_protected_branches, gitlab_protect_branch, gitlab_unprotect_branch |
| 9 |
Code search |
GET /search?scope=blobs |
gitlab_search_code |
Why these matter:
- Cannot complete a review workflow without approve/unapprove (rules exist but not the action)
- Cannot inspect files remotely without read file/tree (can write via commits but can't read)
- Cannot find reviewers or check access without user/member tools
MEDIUM Priority (14 tools)
| # |
Gap |
Tools to Add |
| 10 |
Environments |
gitlab_list_environments, gitlab_stop_environment |
| 11 |
Deployments |
gitlab_list_deployments, gitlab_get_deployment |
| 12 |
Pipeline schedules |
gitlab_list_pipeline_schedules, gitlab_create_pipeline_schedule, gitlab_play_pipeline_schedule |
| 13 |
Labels |
gitlab_list_labels, gitlab_create_label |
| 14 |
CI lint |
gitlab_ci_lint |
| 15 |
Todos |
gitlab_list_todos, gitlab_mark_todo_done |
| 16 |
Draft notes (batch review) |
gitlab_create_draft_note, gitlab_publish_draft_notes |
| 17 |
Milestones |
gitlab_list_milestones, gitlab_create_milestone |
| 18 |
Repository contributors |
gitlab_list_contributors |
| 19 |
Merge base |
gitlab_get_merge_base |
LOW Priority (12 tools)
| # |
Gap |
Tools to Add |
| 20 |
Webhooks |
gitlab_list_webhooks, gitlab_create_webhook |
| 21 |
Wikis |
gitlab_list_wiki_pages, gitlab_get_wiki_page |
| 22 |
Runners |
gitlab_list_runners |
| 23 |
Snippets |
gitlab_list_snippets |
| 24 |
Events/activity |
gitlab_list_events |
| 25 |
Merge trains |
gitlab_list_merge_trains |
| 26 |
Container registry |
gitlab_list_registry_repos |
| 27 |
Packages |
gitlab_list_packages |
| 28 |
Protected tags |
gitlab_list_protected_tags |
Implementation Notes
- All new tools should follow existing patterns:
@mcp.tool() decorator, _ok()/_err() return wrappers, _check_write() for mutations, proper readOnlyHint/destructiveHint annotations
- URL parsing via
_helpers.py parsers where applicable
- Tests: unit tests with httpx mock, matching existing coverage patterns
Summary
Gap analysis against GitLab REST API v4 identified 40 tools worth adding across 3 priority tiers. Current tool count: 76.
HIGH Priority (14 tools)
These are blocking for common AI assistant workflows:
POST .../approve,POST .../unapprovegitlab_approve_mr,gitlab_unapprove_mrGET /usergitlab_get_current_userGET /users?search=gitlab_search_usersGET .../repository/files/:path/rawgitlab_get_fileGET .../repository/files/:path/blamegitlab_get_file_blameGET .../repository/treegitlab_list_repository_treeGET .../members,POST,DELETEgitlab_list_members,gitlab_add_member,gitlab_remove_memberGET/POST/PATCH/DELETE .../protected_branchesgitlab_list_protected_branches,gitlab_protect_branch,gitlab_unprotect_branchGET /search?scope=blobsgitlab_search_codeWhy these matter:
MEDIUM Priority (14 tools)
gitlab_list_environments,gitlab_stop_environmentgitlab_list_deployments,gitlab_get_deploymentgitlab_list_pipeline_schedules,gitlab_create_pipeline_schedule,gitlab_play_pipeline_schedulegitlab_list_labels,gitlab_create_labelgitlab_ci_lintgitlab_list_todos,gitlab_mark_todo_donegitlab_create_draft_note,gitlab_publish_draft_notesgitlab_list_milestones,gitlab_create_milestonegitlab_list_contributorsgitlab_get_merge_baseLOW Priority (12 tools)
gitlab_list_webhooks,gitlab_create_webhookgitlab_list_wiki_pages,gitlab_get_wiki_pagegitlab_list_runnersgitlab_list_snippetsgitlab_list_eventsgitlab_list_merge_trainsgitlab_list_registry_reposgitlab_list_packagesgitlab_list_protected_tagsImplementation Notes
@mcp.tool()decorator,_ok()/_err()return wrappers,_check_write()for mutations, properreadOnlyHint/destructiveHintannotations_helpers.pyparsers where applicable