Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
GITLAB_API_URLNoYour GitLab API URL. Defaults to https://gitlab.com/api/v4https://gitlab.com/api/v4
GITLAB_PERSONAL_ACCESS_TOKENYesYour GitLab personal access token.

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}
prompts
{
  "listChanged": true
}
resources
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
get_merge_request_approval_stateA

Get merge request approval details including approvers. Inspect approval rules and approvers before merging. Use approve_merge_request to change approval state.

search_repositoriesA

Search for GitLab projects. If the identifier is known, use a typed get or list tool.

get_file_contentsC

Get contents of a file or directory from a GitLab project.

create_issueB

Create a new issue. Open a new issue. Use update_issue for an existing issue and create_issue_note for discussion.

create_merge_requestA

Create a new merge request. Open a merge request from an existing source branch to a target. Use update_merge_request after it exists.

get_branchA

Get branch details (commit, protection status). To find resources, use the matching list or search tool.

list_branchesA

List branches in project with search filter. For one known resource, use the matching get tool.

get_merge_requestA

Get details of a merge request (merge_request_iid or source_branch required). Set include_summaries=true for deployment/commit/approval summaries. To find resources, use the matching list or search tool.

get_merge_request_diffsA

Get the changes/diffs of a merge request (merge_request_iid or source_branch required). To find resources, use the matching list or search tool.

list_merge_request_changed_filesA

List changed file paths in a merge request without diff content (merge_request_iid or source_branch required).

list_merge_request_diffsA

List merge request diffs with pagination (merge_request_iid or source_branch required). For one known resource, use the matching get tool.

get_merge_request_file_diffA

Get diffs for specific files from a merge request (merge_request_iid or source_branch required).

update_merge_requestA

Update a merge request (merge_request_iid or source_branch required). Use the create tool for new resources and a note tool for comments.

create_merge_request_threadA

Create a new thread on a merge request. Start a review thread. Use create_merge_request_note for an unthreaded note and create_merge_request_discussion_note to reply.

resolve_merge_request_threadA

Resolve a thread on a merge request. Mark an existing review thread resolved. Use update_merge_request_discussion_note to change note text.

mr_discussionsA

List discussion items for a merge request. List complete discussion threads. Use get_merge_request_notes for flat notes.

get_merge_request_discussionA

Get a single discussion item for a merge request. Fetch one discussion by id. Use mr_discussions for a collection and get_merge_request_note for a flat note.

get_merge_request_noteA

Get a specific note for a merge request. Fetch one note by id. Use get_merge_request_notes for a collection and mr_discussions for threads.

get_merge_request_notesA

List notes for a merge request. List flat notes. Use mr_discussions when thread structure and resolution state are required.

create_issue_noteA

Add a note to an issue, optionally replying to a discussion thread. Add a note to an existing issue, optionally as a reply. Use update_issue for issue fields.

list_issuesA

List issues (default: created by current user; use scope='all' for all). Use this for issue management: list GitLab issues, optionally scoped with project_id. Use get_issue when the iid is known and my_issues for the current user's assignments.

my_issuesA

List issues assigned to the authenticated user. Use this for issue management: list issues assigned to the authenticated user. Use list_issues for project-wide listing and get_issue for one issue. Requires classic read_user or fine-grained User:Read.

get_issueA

Get details of a specific issue. Returns the issue with a slim nested milestone by default; set full_response=true for the complete milestone object. Use this for issue management: inspect one issue. Use list_issues or my_issues to discover issues first.

update_issueA

Update an issue. Returns a slim confirmation by default; set full_response=true for the complete updated issue object. Change fields on an existing issue. Use update_issue_description_patch for a targeted description edit and create_issue_note for discussion.

update_issue_description_patchB

Apply a patch (search/replace or unified diff) to an issue description. Reduces token usage by allowing small changes without sending the full description. Supports dry_run to preview changes and create_note to summarize updates.

list_issue_discussionsA

List discussions for an issue. List threaded discussions for an issue. Use list_issues or get_issue for issue records.

get_projectB

Get details of a specific project. To find resources, use the matching list or search tool.

list_projectsA

List projects accessible by the current user. For one known resource, use the matching get tool.

list_project_membersA

List members of a GitLab project. Search project members by name or username. Use list_group_members for a group.

list_labelsB

List labels for a project. For one known resource, use the matching get tool.

get_repository_treeC

List files and directories in a repository.

list_merge_requestsA

List merge requests (without project_id: user's MRs; with project_id: project MRs). For one known resource, use the matching get tool.

whoamiA

Get current authenticated user details. Requires classic read_user or fine-grained User:Read. Use get_user or get_users to look up another user.

list_commitsB

List repository commits with filtering options. For one known resource, use the matching get tool.

get_commitB

Get details of a specific commit. To find resources, use the matching list or search tool.

get_commit_diffA

Get changes/diffs of a specific commit. Return the file diffs for one commit. Use get_commit for metadata without the patch.

get_file_blameA

Get git blame for a file at a given ref. Each entry maps a contiguous range of source lines to the commit that last changed them (id, author, authored_date, message). Use range_start/range_end to limit blame to specific lines.

health_checkA

Verify server status and authentication. Always reports the MCP server version (mcp_server_version). When authenticated, also reports the GitLab instance version from GET /api/v4/version (version, revision, enterprise). Version lookup failures do not fail the health check — those fields are omitted.

discover_toolsA

Discover and activate additional tool categories for this session. Available categories: core, merge_requests, issues, repositories, branches, projects, labels, ci, groups, pipelines, milestones, wiki, releases, tags, snippets, users, workitems, webhooks, search, variables, dependency_proxy, vulnerabilities, orbit. Already-active categories are listed in the response. Explicit-only toolsets are omitted; list them in GITLAB_TOOLSETS.

helpA

Return a short GitLab workflow guide. Omit topic for the overview and topic list. Use this for a short workflow guide (code-review, pipelines, issues, token-saving). Omit topic for the overview. Detailed GitLab operations stay on the typed tools.

Prompts

Interactive templates invoked by user choice

NameDescription
review_merge_requestReview a merge request's diff in batches and leave threaded comments.
triage_pipeline_failureFind the failing job in a pipeline and pull its log tail for diagnosis.
triage_vulnerabilitiesList a project's open vulnerabilities and propose a remediation priority order.

Resources

Contextual data attached and managed by the client

NameDescription
auth-setupLocal token auth and browser OAuth.
toolsetsHow the enabled toolset list is chosen.
permission-modesHow permission mode limits tool calls.

TDQS

B3.3/5.0

Scored across 40 tools

Disambiguation3/5

The set has many closely related merge-request tools (note vs notes vs discussions, diffs vs changed files vs file diff vs list diffs), which creates real overlap. Descriptions usually clarify the intended distinction, but several references point to tools not present in the active surface, which can still mislead selection.

Naming Consistency4/5

Most tools follow a clear snake_case verb_noun pattern such as get_issue, create_merge_request, and list_branches. There are a few notable deviations like mr_discussions, whoami, help, and health_check, but the overall convention is still readable.

Tool Count2/5

At 40 tools, the set is heavy and includes many granular merge-request diff, note, and discussion variants. GitLab is a broad domain, but this surface feels over-expanded for a coherent single toolset and would benefit from consolidation.

Completeness3/5

Core read/create/update operations are present for issues, merge requests, repositories, branches, and projects. However, notable lifecycle operations are missing or only referenced indirectly, such as deleting/closing issues, merging MRs, and approving MRs, leaving some workflow dead ends.

Maintenance

ActivityActive
ResponsivenessWithin a week