{"name":"io.github.structured-world/gitlab-mcp","slug":"structured-world-gitlab-mcp","title":"Advanced GitLab MCP server","description":"58 CQRS tools exposing 230 GitLab operations across 26 entity types","url":"https://mcp.market/server/structured-world-gitlab-mcp","rating":null,"grade":"A","score":85,"certified":false,"status":"active","category":"devtools","tags":["devtools"],"presence":{"score":41,"stars":6,"forks":2,"downloads_week":1080,"last_push_at":"2026-09-15T02:21:22.000Z","license":"Apache-2.0"},"uptime":null,"claimed":false,"transport":"mixed","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/structured-world/gitlab-mcp","website":"https://gitlab-mcp.sw.foundation","version":"9.1.4","remotes":[],"packages":[{"registryType":"npm","identifier":"@structured-world/gitlab-mcp","version":"9.1.4","transport":{"type":"stdio"},"environmentVariables":[{"description":"GitLab Personal Access Token with 'api' and 'read_user' scopes","isRequired":true,"format":"string","isSecret":true,"name":"GITLAB_TOKEN"},{"description":"GitLab instance API URL for self-hosted instances (defaults to https://gitlab.com)","format":"string","name":"GITLAB_API_URL"},{"description":"Enable read-only mode (disable all manage_* write operations)","format":"boolean","name":"GITLAB_READ_ONLY_MODE"}]},{"registryType":"mcpb","identifier":"https://github.com/structured-world/gitlab-mcp/releases/download/gitlab-mcp-v9.1.4/gitlab-mcp-9.1.4.mcpb","fileSha256":"73624bca96995b176aa934320aaeb130002ce3fd06a138bfc804a793fe9e602b","transport":{"type":"stdio"}}],"tools":[{"name":"browse_access_tokens","description":"Inspect access tokens (CI/automation credentials). Actions: list_personal (the current user's PATs; admins may filter by user_id), list_project / list_group (a project's or group's tokens), get (a single token by ID - pass project_id or group_id for project/group tokens, neither for personal). Related: manage_access_token to create, rotate, or revoke.","write_action":false,"price_micros":0,"input_schema":null},{"name":"browse_audit_events","description":"Inspect audit events: the immutable record of who did what, when. Actions: list_instance (instance-wide, admin-only), list_group / list_project (a group or project audit trail), get (a single event by ID - pass project_id or group_id for group/project events, neither for an instance event). Premium/Ultimate feature; there is no write counterpart because audit events cannot be modified.","write_action":false,"price_micros":0,"input_schema":null},{"name":"browse_commits","description":"Explore repository commit history and diffs. Actions: list (browse commits with filters), get (retrieve commit metadata and stats), diff (view code changes). Related: browse_refs for branch/tag info.","write_action":false,"price_micros":0,"input_schema":null},{"name":"browse_deploy_keys","description":"List and inspect deploy keys (SSH keys granting repo access to CI/automation). Actions: list (a project’s keys, or all instance keys when project_id is omitted — admin only), get (a single project key by ID). Related: manage_deploy_key to add/enable/update/delete.","write_action":true,"price_micros":0,"input_schema":null},{"name":"browse_environments","description":"Inspect project environments and their deployments. Actions: list (environments filtered by state/name), get (single environment with its last deployment), list_deployments (deployment history, filterable by environment and status). Related: manage_environment to create, update, stop, or delete environments and update deployment status.","write_action":false,"price_micros":0,"input_schema":null},{"name":"browse_events","description":"Track GitLab activity and events. Actions: user (your activity across all projects), project (specific project activity feed). Filter by date range, action type, or target type.","write_action":false,"price_micros":0,"input_schema":null},{"name":"browse_files","description":"Explore project file structure and read source code. Actions: tree (list directory contents with recursive depth control), content (read file at specific ref/branch), download_attachment (get uploaded file by secret+filename). Related: manage_files to create/update files.","write_action":false,"price_micros":0,"input_schema":null},{"name":"browse_integrations","description":"Discover active project integrations and their configuration. Actions: list (all active: Slack, Jira, Discord, Teams, Jenkins, etc.), get (specific integration settings by slug). Related: manage_integration to configure/disable.","write_action":false,"price_micros":0,"input_schema":null},{"name":"browse_iterations","description":"View group iterations for agile sprint planning. Actions: list (filter by state: current, upcoming, closed), get (retrieve specific iteration details). Related: browse_work_items for items in an iteration.","write_action":false,"price_micros":0,"input_schema":null},{"name":"browse_job_token_scope","description":"Inspect a project CI/CD job token inbound access scope. Actions: get (the inbound/outbound scope toggles), list_projects (projects allowed to reach this project via CI_JOB_TOKEN), list_groups (groups on the allowlist). Related: manage_job_token_scope to change the allowlist.","write_action":false,"price_micros":0,"input_schema":null},{"name":"browse_labels","description":"List and inspect project or group labels. Actions: list (all labels with search filtering), get (single label by ID or name). Related: manage_label to create/update/delete.","write_action":false,"price_micros":0,"input_schema":null},{"name":"browse_members","description":"View team members and access levels in projects or groups. Actions: list_project, list_group, get_project, get_group (direct members), list_all_project, list_all_group (includes inherited). Levels: Guest(10), Reporter(20), Developer(30), Maintainer(40), Owner(50). Related: manage_member to add/remove, browse_users to find users by name.","write_action":false,"price_micros":0,"input_schema":null},{"name":"browse_merge_requests","description":"Find and inspect merge requests. Actions: list (filter by state/author/reviewer/labels/branch), get (MR details by IID or source branch), diffs (file-level changes with inline suggestions), compare (diff between any two refs), versions (list diff versions from pushes), version (get specific version with diffs). Related: manage_merge_request to create/update/merge.","write_action":false,"price_micros":0,"input_schema":null},{"name":"browse_milestones","description":"Track milestone progress with associated issues and MRs. Actions: list (filter by state/title/search), get (milestone details), issues (items in milestone), merge_requests (MRs targeting milestone), burndown (chart data for sprint tracking). Related: manage_milestone to create/update.","write_action":false,"price_micros":0,"input_schema":null},{"name":"browse_mr_discussions","description":"Read discussion threads and draft review notes on merge requests. Actions: list (all threads with resolution status), drafts (unpublished draft notes), draft (single draft details). Related: manage_mr_discussion to comment, manage_draft_notes to create drafts.","write_action":false,"price_micros":0,"input_schema":null},{"name":"browse_namespaces","description":"Explore GitLab groups and user namespaces. Actions: list (discover available namespaces), get (retrieve details with storage stats), verify (check if path exists). Related: manage_namespace to create/update/delete groups.","write_action":false,"price_micros":0,"input_schema":null},{"name":"browse_pipelines","description":"Monitor CI/CD pipelines and read job logs. Actions: list (filter by status/ref/source/username), get (pipeline details), jobs (list pipeline jobs), triggers (bridge/trigger jobs), job (single job details), logs (job console output). Related: manage_pipeline to trigger/retry/cancel pipelines and play/retry/cancel individual jobs.","write_action":false,"price_micros":0,"input_schema":null},{"name":"browse_projects","description":"Find, list, or inspect GitLab projects. Actions: search (find by name/topic across GitLab), list (browse accessible projects or group projects), get (retrieve full project details). Related: manage_project to create/update/delete projects.","write_action":false,"price_micros":0,"input_schema":null},{"name":"browse_refs","description":"Inspect branches, tags, and their protection rules. Actions: list_branches, get_branch, list_tags, get_tag, list_protected_branches, get_protected_branch, list_protected_tags (protection details and access levels). Related: manage_ref to create/delete/protect, browse_commits for commit history.","write_action":false,"price_micros":0,"input_schema":null},{"name":"browse_registry","description":"Inspect the GitLab Container Registry. Actions: list_repositories (a project's image repositories), get_repository (single repository by ID), list_tags (tags of a repository), get_tag (single tag with manifest digest, size, and timestamps). Related: manage_registry to delete repositories and tags (including regex bulk cleanup).","write_action":false,"price_micros":0,"input_schema":null},{"name":"browse_releases","description":"View project releases and asset download links. Actions: list (releases sorted by date), get (release details by tag name), assets (download link list for release). Related: manage_release to create/publish.","write_action":false,"price_micros":0,"input_schema":null},{"name":"browse_runners","description":"Inspect CI runners. Actions: list_all (every runner on the instance - admin), list_owned (the current user's runners), list_project / list_group (runners available to a project/group), get (single runner by ID), list_jobs (jobs a runner has executed). Related: manage_runner to register, update, pause/resume, or delete runners.","write_action":false,"price_micros":0,"input_schema":null},{"name":"browse_search","description":"Search across GitLab resources globally or within a scope. Actions: global (entire instance), project (within specific project), group (within specific group). Searchable: projects, issues, merge_requests, milestones, users, blobs (code), commits, wiki_blobs, notes.","write_action":false,"price_micros":0,"input_schema":null},{"name":"browse_snippets","description":"Find and read code snippets with versioning support. Actions: list (personal/project/public scope with filtering), get (snippet metadata or raw file content). Related: manage_snippet to create/update.","write_action":false,"price_micros":0,"input_schema":null},{"name":"browse_todos","description":"View your GitLab todo queue (notifications requiring action). Actions: list (filter by state, action type, target type). Todos are auto-created for assignments, mentions, reviews, and pipeline failures. Related: manage_todos to mark done/restore.","write_action":false,"price_micros":0,"input_schema":null},{"name":"browse_users","description":"Find GitLab users with smart pattern detection. Actions: search (find users by name/email/username with transliteration support), get (retrieve specific user by ID). Related: browse_members for project/group membership.","write_action":false,"price_micros":0,"input_schema":null},{"name":"browse_variables","description":"List and inspect CI/CD variables for projects or groups. Actions: list (all variables with pagination), get (single variable by key with environment scope filter). Related: manage_variable to create/update/delete.","write_action":false,"price_micros":0,"input_schema":null},{"name":"browse_vulnerabilities","description":"Inspect security vulnerabilities (Ultimate). Actions: list (a project, a group, or the whole instance when neither id is given; filter by state, severity, report_type), get (a single vulnerability by ID with full detail). Related: manage_vulnerability to dismiss, confirm, resolve, or revert findings.","write_action":false,"price_micros":0,"input_schema":null},{"name":"browse_webhooks","description":"List and inspect webhook configurations for projects or groups. Actions: list (all webhooks with event types and status), get (webhook details by ID). Related: manage_webhook to create/update/delete/test.","write_action":false,"price_micros":0,"input_schema":null},{"name":"browse_wiki","description":"Read wiki pages in projects or groups. Actions: list (all pages with metadata), get (page content by slug). Related: manage_wiki to create/update/delete.","write_action":false,"price_micros":0,"input_schema":null},{"name":"browse_work_items","description":"Find and inspect issues, epics, tasks, and other work items. Actions: list (groups return epics, projects return issues/tasks, filter by type/state/labels), get (by numeric ID or namespace+iid from URL path). Related: manage_work_item to create/update/delete.","write_action":false,"price_micros":0,"input_schema":null},{"name":"manage_access_token","description":"Create, rotate, or revoke access tokens. Actions: create_project / create_group (issue a new token with name + scopes, returns the value once), rotate (revoke the old token and return a new value), revoke (delete a token permanently). For rotate/revoke pass project_id or group_id for project/group tokens, neither for personal. Related: browse_access_tokens to discover token IDs.","write_action":true,"price_micros":0,"input_schema":null},{"name":"manage_context","description":"View and manage runtime session configuration. Actions: show (current host/preset/scope/mode), list_presets (available tool configurations), list_profiles (OAuth users), whoami (token introspection with live refresh - detects permission changes and updates available tools), switch_preset (change active preset), switch_profile (change OAuth user), set_scope (restrict to namespace), reset (restore i","write_action":false,"price_micros":0,"input_schema":null},{"name":"manage_deploy_key","description":"Add, enable, update, or remove project deploy keys. Actions: add (register a new SSH public key with title and optional push access/expiry), enable (attach an existing key from another project), update (change title or can_push), delete (remove from this project). Related: browse_deploy_keys to inspect.","write_action":true,"price_micros":0,"input_schema":null},{"name":"manage_draft_notes","description":"Create and manage unpublished review comments on merge requests. Actions: create (new draft), update (modify text), publish (make single draft visible), publish_all (submit entire review), delete (discard draft). Related: browse_mr_discussions action 'drafts' to list existing drafts.","write_action":true,"price_micros":0,"input_schema":null},{"name":"manage_environment","description":"Create and control project environments and deployment status. Actions: create (new environment), update (external_url/tier/description), stop (required before delete), delete (stopped environment), update_deployment_status (set a non-pipeline deployment to running/success/failed/canceled). Related: browse_environments to list and inspect.","write_action":true,"price_micros":0,"input_schema":null},{"name":"manage_files","description":"Create, update, or upload repository files. Actions: single (create/update one file with commit message), batch (atomic multi-file commit), upload (add attachment returning markdown link). Related: browse_files to read existing files.","write_action":true,"price_micros":0,"input_schema":null},{"name":"manage_integration","description":"Configure or disable project integrations (50+ supported). Actions: update (enable/modify with integration-specific config), disable (deactivate integration). Note: gitlab-slack-application requires OAuth install from GitLab UI. Related: browse_integrations for discovery.","write_action":false,"price_micros":0,"input_schema":null},{"name":"manage_job_token_scope","description":"Manage a project CI/CD job token inbound allowlist. Actions: set_enabled (turn allowlist enforcement on/off), add_project / remove_project (grant or revoke a project), add_group / remove_group (grant or revoke a group). Required to allow cross-project CI_JOB_TOKEN access once the legacy open-access mode is removed. Related: browse_job_token_scope to inspect.","write_action":false,"price_micros":0,"input_schema":null},{"name":"manage_label","description":"Create, update, or delete project/group labels. Actions: create (name + hex color required), update (modify properties), delete (remove permanently). Related: browse_labels for discovery.","write_action":true,"price_micros":0,"input_schema":null},{"name":"manage_member","description":"Add, remove, or update access levels for project/group members. Actions: add_to_project, add_to_group (with access level + optional expiry), remove_from_project, remove_from_group, update_project, update_group (change access level). Related: browse_members for current membership.","write_action":false,"price_micros":0,"input_schema":null},{"name":"manage_merge_request","description":"Create, update, merge, or approve merge requests. Actions: create (new MR from source to target), update (title/description/assignees/reviewers/labels), merge (into target branch), approve/unapprove (review approval), get_approval_state (current approvals). Related: browse_merge_requests for discovery.","write_action":true,"price_micros":0,"input_schema":null},{"name":"manage_milestone","description":"Create, update, or delete project/group milestones. Actions: create (title + optional dates/description), update (modify properties or close/activate), delete (remove permanently), promote (elevate project milestone to group). Related: browse_milestones for progress tracking.","write_action":true,"price_micros":0,"input_schema":null},{"name":"manage_mr_discussion","description":"Post comments, start threads, and suggest code changes on merge requests. Actions: comment (simple note), thread (line-level discussion), reply (to existing thread), update (edit note text), resolve (toggle thread resolution), suggest (code suggestion block), apply_suggestion/apply_suggestions (accept code suggestions). Related: browse_mr_discussions to read threads.","write_action":true,"price_micros":0,"input_schema":null},{"name":"manage_namespace","description":"Create, update, or delete GitLab groups/namespaces. Actions: create (new group with visibility/settings), update (modify group settings), delete (remove permanently), restore (recover a soft-deleted group before purge; requires GitLab 18.0+). Related: browse_namespaces for discovery.","write_action":true,"price_micros":0,"input_schema":null},{"name":"manage_pipeline","description":"Trigger, retry, or cancel CI/CD pipelines and individual jobs. Pipeline actions: create (run pipeline on ref with variables or typed inputs), retry (re-run failed jobs), cancel (stop running pipeline). Job actions: play_job (trigger a manual/delayed job with variables), retry_job (re-run a single job), cancel_job (stop a running job). Related: browse_pipelines actions 'job'/'logs' for job details.","write_action":false,"price_micros":0,"input_schema":null},{"name":"manage_project","description":"Create, update, or manage GitLab projects. Actions: create (new project with settings), fork (copy existing project), update (modify settings), delete (remove permanently), restore (recover a soft-deleted project before purge), archive/unarchive (toggle read-only), transfer (move to different namespace). Related: browse_projects for discovery, including include_deleted to find restorable projects.","write_action":true,"price_micros":0,"input_schema":null},{"name":"manage_ref","description":"Create, delete, and protect branches and tags. Actions: create_branch (from ref), delete_branch, protect_branch (set allowed roles), unprotect_branch, update_branch_protection, create_tag (annotated or lightweight), delete_tag, protect_tag, unprotect_tag. Related: browse_refs for inspection.","write_action":true,"price_micros":0,"input_schema":null},{"name":"manage_registry","description":"Delete GitLab Container Registry repositories and tags. Actions: delete_repository (remove a whole repository), delete_tag (remove one tag), delete_tags_bulk (regex cleanup with keep_n/older_than retention - destructive). Related: browse_registry to inspect before deleting.","write_action":true,"price_micros":0,"input_schema":null},{"name":"manage_release","description":"Create, update, or delete project releases with asset management. Actions: create (release from tag with notes/assets), update (modify metadata), delete (remove release, tag preserved), create_link (add asset URL), delete_link (remove asset). Related: browse_releases for discovery.","write_action":true,"price_micros":0,"input_schema":null},{"name":"manage_runner","description":"Register and control CI runners. Actions: create_authentication_token (register a runner, GitLab 16+, returns a one-time token), update (settings), pause/resume (toggle job pickup), delete, reset_authentication_token (rotate the token). Related: browse_runners to discover runners.","write_action":false,"price_micros":0,"input_schema":null},{"name":"manage_snippet","description":"Create, update, or delete code snippets with multi-file support. Actions: create (new snippet with files and visibility), update (modify content/metadata, file operations), delete (remove permanently). Related: browse_snippets for discovery.","write_action":true,"price_micros":0,"input_schema":null},{"name":"manage_todos","description":"Manage your GitLab todo queue. Actions: mark_done (complete a single todo), mark_all_done (clear entire queue), restore (undo completion). Related: browse_todos to view your todo list.","write_action":false,"price_micros":0,"input_schema":null},{"name":"manage_variable","description":"Create, update, or delete CI/CD variables with environment scoping. Actions: create (key + value, set scope/protection/masking), update (modify value or settings), delete (remove permanently). Related: browse_variables for discovery.","write_action":true,"price_micros":0,"input_schema":null},{"name":"manage_vulnerability","description":"Drive the vulnerability state machine (Ultimate). Actions: dismiss (with optional dismissal_reason + comment), confirm (genuine finding), resolve (fixed), revert (back to detected). Related: browse_vulnerabilities to discover vulnerability IDs.","write_action":false,"price_micros":0,"input_schema":null},{"name":"manage_webhook","description":"Create, update, delete, or test webhooks for event-driven automation. Actions: create (URL + event types + optional secret), update (modify settings), delete (remove), test (trigger delivery for specific event). Related: browse_webhooks for inspection.","write_action":true,"price_micros":0,"input_schema":null},{"name":"manage_wiki","description":"Create, update, or delete wiki pages. Actions: create (new page with title/content/format), update (modify content or title), delete (remove permanently). Related: browse_wiki to read pages.","write_action":true,"price_micros":0,"input_schema":null},{"name":"manage_work_item","description":"Create, update, delete, or link work items (issues, epics, tasks). Actions: create (epics need GROUP namespace, issues/tasks need PROJECT), update (widgets: dates, time tracking, weight, iterations, health, progress, hierarchy), delete (permanent), delete_timelog (remove a time tracking entry by its global ID), add_link/remove_link (BLOCKS/BLOCKED_BY/RELATED). Related: browse_work_items for discov","write_action":true,"price_micros":0,"input_schema":null}],"scan":{"score":85,"grade":"A","scanned_at":"2026-09-20T11:37:35.167Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-20T11:37:35.119Z","components":{"code":{"score":25,"max":25,"notes":["462 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":6,"max":15,"notes":["static API keys via environment variables"]},"maintenance":{"score":15,"max":15,"notes":["last push 5 days ago"]},"identity":{"score":9,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[],"inputs":{"packages":[{"registryType":"npm","identifier":"@structured-world/gitlab-mcp","version":"9.1.4","found":true,"license":"Apache-2.0","hasInstallScripts":false,"dependencyCount":14,"publishedAt":"2026-09-05T17:23:49.799Z","repositoryUrl":"git+https://github.com/structured-world/gitlab-mcp.git","weeklyDownloads":1080}],"repo":{"found":true,"owner":"structured-world","repo":"gitlab-mcp","archived":false,"pushedAt":"2026-09-15T02:21:22Z","stars":6,"forks":2,"openIssues":1,"ownerType":"Organization","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/228206483?v=4","ownerCreatedAt":"2025-08-23T13:34:24Z","license":"Apache-2.0"},"icon":{"url":"https://avatars.githubusercontent.com/u/228206483?v=4&s=128","source":"github"},"presence":{"stars":6,"forks":2,"downloadsWeek":1080,"license":"Apache-2.0","lastPushAt":"2026-09-15T02:21:22.000Z","score":41}}}},"grade_history":[],"reviews":[]}