md-gitlab-mcp
Provides tools for interacting with GitLab's REST API, enabling AI agents to manage projects, merge requests, issues, global search, and more across GitLab instances, data centers, and cloud.
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., "@md-gitlab-mcpcreate a merge request from branch 'feature' to 'main' with title 'Add login'"
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.
md-gitlab-mcp π¦
A fully-featured GitLab MCP Server tailored to behave like the GitHub MCP but specifically engineered for GitLab Data Centers, Instances, and Cloud.
md-gitlab-mcp is a Model Context Protocol (MCP) server written in TypeScript. It gives AI agents the powerful ability to interact deeply with GitLab via the REST API. This goes far beyond basic issue tracking and provides 25 advanced capabilities, identically structured to the famous GitHub MCP tools.
Features
This server exports an extensive list of tools allowing AI agents to:
Repositories: Search projects, create projects, get file contents, and importantly, push multi-file commits correctly using branching.
Merge Requests (PR Equivalents): Create MRs, approve MRs, list files changed globally, merge them, check CI/CD pipeline status, rebase, and comprehensively read notes/comments.
Issues: Create, list, search, update, and comment on issues seamlessly.
Search: Access Global Search to easily find issues, users, and code snippets across your entire GitLab instance.
Related MCP server: GitLab MCP Server
Why this exists?
The default @modelcontextprotocol/server-gitlab provides very limited tools (around 9 commands) and completely lacks operations regarding code review, reading pull request/merge request threads, or resolving discussions.
md-gitlab-mcp bridges this gap, adopting GitHub's best-practice MCP schema standards and flawlessly translating semantics (projects -> repos, merge requests -> pull requests internally but honoring GitLab's API structure) while delivering complete access to GitLab's API.
Usage
Agents powered by this MCP will see properly annotated tools with parameter descriptions via zod-to-json-schema, meaning the AI inherently knows exactly how to query your repositories without hallucination.
Quick Start (Roo Code / Cline)
You can directly add this to your mcp_settings.json:
{
"mcpServers": {
"gitlab": {
"command": "node",
"args": [
"/path/to/md-gitlab-mcp/build/index.js"
],
"env": {
"GITLAB_API_URL": "https://gitlab.example.dev/api/v4",
"GITLAB_PERSONAL_ACCESS_TOKEN": "your-access-token"
}
}
}
}Connecting with the Author
This tool is handcrafted and maintained by Mikita Dusmikeev. Check out my work and connect on social media:
π Website: md-code.space
π» GitHub: github.com/DrBoria
π VS Code Marketplace: drboria Extensions
π LinkedIn: Mikita Dusmikeev
πΈ Instagram: @mdcode.official
π± TikTok: @mdcode.official
Created in 2026. Code like there's no tomorrow.
Available Tools
27 toolsadd_issue_commentB
Add a comment to an existing issue
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | The comment body text | |
| repo | Yes | Project path/name (e.g. 'pro-portal-onboarding-and-retention') | |
| owner | Yes | Project namespace/path (e.g. 'pro/portal/frontends') or numeric Project ID | |
| issueIid | Yes | The IID of the issue to comment on |
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 of behavioral disclosure. It only names the action and target; it does not state whether adding a comment is idempotent, what side effects occur, what permissions are needed, or what the response contains.
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 seven words, front-loaded, and contains no filler or redundant restatement. Every word 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?
For a mutating tool with no annotations and no output schema, the description is too thin. It omits usage context, side effects, and behavioral guarantees that an agent would need to call it correctly and anticipate consequences.
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 four parameters, including body, repo, owner, and issueIid. The description adds no parameter-level detail, but the structured schema already carries that burden.
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 the exact operation: 'Add a comment to an existing issue', with a specific verb and resource. It clearly distinguishes this from sibling tools like create_issue, update_issue, and merge-request comment 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 is given about when to use this tool versus alternatives. It does not mention that update_issue is for editing issue fields, that list_issues/get_issue are for reading, or any prerequisites like issue existence or permissions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_branchB
Create a new branch in a GitLab repository
| Name | Required | Description | Default |
|---|---|---|---|
| repo | Yes | Project path/name (e.g. 'pro-portal-onboarding-and-retention') | |
| owner | Yes | Project namespace/path (e.g. 'pro/portal/frontends') or numeric Project ID | |
| branch | Yes | Name for the new branch | |
| fromBranch | No | Optional: source branch to create from (defaults to the repository's default branch) |
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 of behavioral disclosure. It does not mention behavior such as failure if the branch already exists, required permissions, or whether the branch is created from the default branch unless fromBranch is specified.
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 with no wasted words. It communicates the essence of the tool efficiently.
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 is simple and the schema covers the parameters, but there is no output schema and no behavioral context such as error cases or result format. The definition is minimally viable for invocation but leaves some operational expectations unstated.
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 input schema already documents all parameters, including the optional fromBranch behavior. The description adds no parameter-specific meaning, but the baseline of 3 is appropriate when the schema handles parameter documentation.
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 a specific action ('Create') on a specific resource ('a new branch in a GitLab repository'), making the tool's purpose immediately clear. It is distinct from sibling tools like create_repository or fork_repository because it targets branches, not repositories.
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 update_merge_request_branch or create_merge_request. There is no mention of scenarios, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_issueB
Create a new issue in a GitLab repository
| Name | Required | Description | Default |
|---|---|---|---|
| body | No | Issue description/body | |
| repo | Yes | Project path/name (e.g. 'pro-portal-onboarding-and-retention') | |
| owner | Yes | Project namespace/path (e.g. 'pro/portal/frontends') or numeric Project ID | |
| title | Yes | Issue title | |
| labels | No | Array of label names | |
| assignees | No | Array of usernames to assign | |
| milestone | No | Milestone ID or title |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure, but it only says 'Create'. It does not mention that this is a persistent write operation, that repository write permissions are required, whether duplicates are possible, or what the response will be. For a mutation tool with no annotations, this is a meaningful 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?
A single focused sentence states exactly what the tool does with no filler. All parameter details are delegated to the schema, which is appropriate.
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 schema provides complete parameter semantics, so an agent can construct the required owner/repo/title call correctly. However, with no annotations, the description leaves out return value expectations, authentication/write-permission prerequisites, and duplicate/error behavior, so it is only minimally complete for a create operation.
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 describes all 7 parameters with examples (e.g. owner as namespace, repo as project path) and covers 100% of the schema. The description adds no parameter-level information, so it does not elevate above the schema baseline.
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 names a specific action ('Create'), resource ('a new issue'), and context ('GitLab repository'). This clearly distinguishes the tool from siblings like update_issue, list_issues, get_issue, and create_merge_request.
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?
There is no guidance about when to use this tool versus alternatives such as update_issue or add_issue_comment, nor any mention of prerequisites. The only contextual signal is the creation verb, which leaves usage decisions to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_merge_requestB
Create a new merge request in a GitLab repository
| Name | Required | Description | Default |
|---|---|---|---|
| base | Yes | The name of the target branch you want the changes pulled into | |
| body | No | Merge request body/description | |
| head | Yes | The name of the source branch where your changes are implemented | |
| repo | Yes | Project path/name (e.g. 'pro-portal-onboarding-and-retention') | |
| draft | No | Whether to create the merge request as a draft | |
| owner | Yes | Project namespace/path (e.g. 'pro/portal/frontends') or numeric Project ID | |
| title | Yes | Merge request title |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden, but it only restates the basic creation action. It does not disclose side effects, required branch existence, permissions, or what response to expect, which is meaningful for a mutating tool with no output schema.
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 with no filler. It states the core action immediately and stops, which is appropriately concise even though it sacrifices usage and behavioral detail.
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 complete schema compensates for much of the missing parameter context, making the tool minimally viable. However, with no output schema and no annotations, the description does not convey the head-to-base branch relationship, return behavior, or when to select this tool among the large sibling group.
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 7 parameters documented meaningfully, including head/source branch, base/target branch, title, body, draft, owner, and repo. The description adds no parameter-level detail, but the schema already carries that weight, so the baseline 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?
The description clearly identifies the verb ('Create') and resource ('new merge request in a GitLab repository'), so an agent knows this is the MR-creation operation. It does not explicitly differentiate itself from siblings like create_merge_request_review or merge_merge_request, but the action 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?
The description offers no guidance on when to use this tool over the many sibling merge-request tools (get, list, update, merge, review). There are no preconditions, exclusions, or alternative routing, so an agent must infer usage entirely from the name and schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_merge_request_reviewC
Create a review/approval on a merge request
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | The body text of the review or comment | |
| repo | Yes | Project path/name (e.g. 'pro-portal-onboarding-and-retention') | |
| event | Yes | The review action to perform (e.g. APPROVE, COMMENT) | |
| owner | Yes | Project namespace/path (e.g. 'pro/portal/frontends') or numeric Project ID | |
| mergeRequestIid | Yes | The IID of the merge request |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral implications. It only states 'create,' implying a mutation, but does not explain the effects of different event values (e.g., APPROVE vs COMMENT), potential side effects, required permissions, or whether the action is idempotent.
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 with no filler or redundant words. It directly states the action and object, earning its place efficiently.
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 mutation tool with no annotations and no output schema, the description is too sparse. It lacks essential context about how the event parameter controls behavior, what happens to existing reviews, and what the caller should expect after 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 description coverage is 100%, so the schema already documents all five parameters clearly. The description adds no additional meaning beyond the schema, which is acceptable given the high 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 uses a specific verb ('Create') and a clear resource ('review/approval on a merge request'), making the core action obvious. It is distinguishable from sibling tools like get_merge_request_reviews (read operation) and merge_merge_request (merge operation), though it does not explicitly name them.
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_merge_request_reviews or get_merge_request_comments. There is no mention of prerequisites, intended 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_repositoryA
Create a new GitLab project in your namespace
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Repository name | |
| autoInit | No | Initialize with README.md | |
| isPrivate | No | Whether the repository should be private | |
| description | No | Repository description |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral disclosure burden. It clearly communicates that this is a mutating create operation scoped to the user's namespace, but it does not disclose potential side effects, permissions needed, default visibility/README behavior, or error cases like name conflicts.
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 with no filler or redundant phrasing. Every word contributes to stating what the tool does.
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 is simple and the schema fully documents parameters, but there is no output schema and no annotations. The description does not mention what the tool returns, how conflicts are handled, or any prerequisites, so an agent is left with some uncertainty about expected outcomes.
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 all four parameters are already documented in the schema. The description adds minimal extra meaning beyond 'your namespace' slightly clarifying where the project is created, but it does not elaborate on defaults or parameter interdependencies.
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 a specific action, 'Create', and a specific resource, 'a new GitLab project in your namespace'. This clearly distinguishes it from sibling tools like create_merge_request, create_branch, and fork_repository, which target different resources.
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 creating a new project, but it does not provide explicit guidance on when to choose this over related tools such as fork_repository or search_repositories. No exclusions or alternative routing are mentioned, so the agent must infer usage from the name and context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fork_repositoryA
Fork a GitLab project to your account or specified namespace
| Name | Required | Description | Default |
|---|---|---|---|
| repo | Yes | Project path/name (e.g. 'pro-portal-onboarding-and-retention') | |
| owner | Yes | Project namespace/path (e.g. 'pro/portal/frontends') or numeric Project ID | |
| organization | No | Optional: organization to fork to (defaults to your personal account) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of disclosing behavior. It states the destination but does not disclose that forking creates a copy, requires certain permissions on the source project, or returns the created fork's details. The side effects and operational requirements are left largely to inference.
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, front-loaded sentence conveys the essential action and destination with no filler. Every word contributes meaning, and the sentence structure makes the tool's purpose immediately scannable.
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 relatively simple 3-parameter tool with complete schema descriptions, this is adequate for basic invocation. However, the absence of an output schema and annotations means the description could usefully explain side effects, permission needs, or when to choose an alternative tool. It is minimally sufficient but not thoroughly 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?
The input schema already provides detailed descriptions for all three parameters, including examples and the default behavior of 'organization'. The description adds little beyond restating the destination concept, so the score stays at the baseline 3 since schema coverage is 100%.
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 starts with a specific verb ('Fork') and identifies both the resource ('a GitLab project') and the destination ('to your account or specified namespace'). This clearly distinguishes fork_repository from sibling tools like create_repository, which would create a new project rather than duplicate an existing one.
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?
Usage context is implied by the verb 'Fork' β an agent can infer this is for duplicating an existing project into the user's own namespace. However, there is no explicit guidance about when to prefer this over create_repository or any exclusions, such as permission requirements on the source project.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_file_contentsC
Get the contents of a file or directory from a GitLab repository
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Path to the file or directory | |
| repo | Yes | Project path/name (e.g. 'pro-portal-onboarding-and-retention') | |
| owner | Yes | Project namespace/path (e.g. 'pro/portal/frontends') or numeric Project ID | |
| branch | No | Branch to get contents from |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations to cover safety or behavior, so the description must carry the burden. It only says 'Get the contents' without disclosing important behavior such as whether it returns raw content or metadata, what happens for directories, default branch behavior, authentication requirements, or rate 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 a single, front-loaded sentence with no wasted words. It is concise and immediately clear about the core operation, though it lacks some supporting detail that would improve its overall utility.
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 annotations and no output schema, the description is incomplete for full correct usage. It does not mention default branch, return format, behavior for directories or missing files, or any prerequisites. An agent would need to infer or discover these details elsewhere.
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 already documents all parameters with useful descriptions, and coverage is high. The description adds little beyond the schema, but it does clarify that the path can point to either a file or a directory, which slightly supports the 'path' parameter meaning.
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 a specific verb ('Get') and resource ('contents of a file or directory from a GitLab repository'). It clearly communicates what the tool does, but it does not explicitly differentiate it from sibling tools by name or mention when this tool is preferred over related 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 is provided about when to use this tool versus alternatives such as get_merge_request_files, search_code, or list_commits. The description only states the operation without any context about conditions, exclusions, or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_issueA
Get details of a specific issue in a GitLab repository
| Name | Required | Description | Default |
|---|---|---|---|
| repo | Yes | Project path/name (e.g. 'pro-portal-onboarding-and-retention') | |
| owner | Yes | Project namespace/path (e.g. 'pro/portal/frontends') or numeric Project ID | |
| issueIid | Yes | The IID of the issue to retrieve |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the full burden of behavioral disclosure. It only says 'Get details,' which conveys a read-only intent but does not mention authentication needs, potential error behavior, or what fields/details are included in the response. For a tool with no output schema and no annotations, this is a meaningful transparency 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, direct sentence with no filler or redundancy. It is front-loaded with the core action and resource, making it easy for an agent to parse.
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 simple retrieval tool with fully documented parameters, this is minimally sufficient. However, the lack of annotations and absence of an output schema mean the description should say a bit more about what 'details' includes or what to expect from the response.
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%, and each parameter already has a clear description, so the description does not need to add much. The phrase 'specific issue' weakly reinforces the issueIid parameter, but the description adds no new parameter-level 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 uses a specific verb ('Get details') and names the exact resource ('a specific issue in a GitLab repository'). This clearly distinguishes it from siblings like list_issues, which retrieve multiple issues, and from creating or updating 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?
The description implies that the tool is for retrieving a single issue, which is useful context, but it does not explicitly state when to prefer it over alternatives like list_issues or search_issues. No when-not-to-use guidance or alternative tool names are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_merge_requestC
Get details of a specific merge request
| Name | Required | Description | Default |
|---|---|---|---|
| repo | Yes | Project path/name (e.g. 'pro-portal-onboarding-and-retention') | |
| owner | Yes | Project namespace/path (e.g. 'pro/portal/frontends') or numeric Project ID | |
| mergeRequestIid | Yes | The IID of the merge request to retrieve |
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 of behavioral disclosure. 'Get details' only implies a read operation; it does not describe the response shape, what 'details' includes, authentication requirements, or error behavior.
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, front-loaded with the verb and resource, and contains no filler or redundant wording.
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, no annotations, and a large set of closely related sibling tools, the description is too sparse. It does not clarify what 'details' includes, how it differs from get_merge_request_by_url, or what output the agent should expect, leaving significant context gaps.
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% for all three required parameters, so the schema already documents their meaning. The description adds no parameter-level semantics, making the baseline 3 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 ('Get') and resource ('a specific merge request'), and the qualifier 'specific' distinguishes it from list-style tools. However, it does not distinguish it from sibling get_merge_request_by_url, which also retrieves a specific merge request.
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 like get_merge_request_by_url, list_merge_requests, get_merge_request_files, or get_merge_request_status. The agent must infer usage solely from parameter names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_merge_request_by_urlA
Fetch merge request details using a full URL
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Full GitLab Merge Request URL (e.g. 'https://gitlab.com/owner/repo/-/merge_requests/123'). Use this if you have the URL. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description clearly frames this as a read-only fetch operation, which is the main behavioral trait. With no annotations, it does not disclose response shape, error behavior, or access requirements, but for a simple single-URL fetch tool this is reasonably adequate.
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, front-loaded sentence that captures the action, target resource, and input requirement without any filler. It is concise while still being informative.
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 one-parameter tool, the essential invocation information is present. However, there is no output schema and the description only says 'details' without indicating what the response contains or how this tool differs from get_merge_request, leaving minor completeness gaps.
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 already covers the only parameter fully with a clear description and an example URL. The tool description adds the requirement that the URL be 'full,' providing a small but useful extra constraint 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 states a specific verb ('Fetch') and resource ('merge request details') and identifies the distinguishing input mechanism ('full URL'). It is clear, though it does not explicitly contrast with the sibling get_merge_request tool.
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 parameter description provides explicit usage guidance: 'Use this if you have the URL.' This tells the agent when to select this tool, though it does not mention alternatives for cases where only a merge request ID is available.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_merge_request_commentsB
Get the review comments/notes on a merge request
| Name | Required | Description | Default |
|---|---|---|---|
| repo | Yes | Project path/name (e.g. 'pro-portal-onboarding-and-retention') | |
| owner | Yes | Project namespace/path (e.g. 'pro/portal/frontends') or numeric Project ID | |
| mergeRequestIid | Yes | The IID of the merge request |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states that the tool fetches comments/notes, but it does not mention pagination, ordering, response format, or any other runtime behavior. This is a meaningful gap for a list-returning API.
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 clear sentence with no filler or redundant detail. It is appropriately front-loaded and every word contributes to understanding the tool's 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?
The tool is simple and the parameter schema is complete, so the description is minimally viable. However, because there is no output schema or annotations, the description should ideally clarify what the agent will receive (e.g., a list of note objects) and any pagination behavior. This keeps it at a 3 rather than higher.
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 input schema already fully documents owner, repo, and mergeRequestIid. The description adds no parameter-level meaning beyond that, so the 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 identifies the verb ('Get') and resource ('review comments/notes on a merge request'), making the tool's basic purpose obvious. However, it does not explicitly distinguish itself from the sibling tool 'get_merge_request_reviews' or 'get_merge_request_comments_by_url', so it is clear but lacks sibling differentiation.
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 'get_merge_request_reviews' or 'get_merge_request_comments_by_url'. An agent receives no context about which tool fits which scenario, so the usage guidance is essentially absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_merge_request_comments_by_urlA
Fetch merge request comments using a full URL
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Full GitLab Merge Request URL (e.g. 'https://gitlab.com/owner/repo/-/merge_requests/123'). Use this to fetch comments if you have the URL. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It clearly conveys that this is a read-only fetch operation, but it does not disclose response shape, pagination, or access requirements. For a simple non-destructive tool, this is adequate but not rich.
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 clear sentence with no wasted words. The action and the key input requirement are both front-loaded, making it easy for an agent to parse quickly.
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 one-parameter tool with no output schema and no annotations, the definition is reasonably complete: an agent knows what to fetch and what input to provide. It could be improved by explicitly differentiating from get_merge_request_comments or describing the returned comment structure, but this is not essential for 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?
The schema already documents the single 'url' parameter with format and an example at 100% coverage. The description mainly reiterates 'using a full URL' and does not need to add much, so the 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 clearly states the action (Fetch), the resource (merge request comments), and the input mode (full URL). It is clear enough to distinguish from get_merge_request_comments, though it does not explicitly name the sibling or explain the difference.
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 parameter description explicitly says 'Use this to fetch comments if you have the URL', giving a clear condition for when to use the tool. It does not explicitly state when not to use it or point to the ID-based alternative, but the URL-based trigger is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_merge_request_filesA
Get the list of files changed in a merge request
| Name | Required | Description | Default |
|---|---|---|---|
| repo | Yes | Project path/name (e.g. 'pro-portal-onboarding-and-retention') | |
| owner | Yes | Project namespace/path (e.g. 'pro/portal/frontends') or numeric Project ID | |
| mergeRequestIid | Yes | The IID of the merge request |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. 'Get' correctly implies a read-only operation, but the description does not specify what 'list of files changed' includes (e.g., paths, statuses, diffs) or whether pagination or other limits apply. It is accurate but minimally transparent.
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, focused sentence with no filler or redundancy. It is appropriately sized for a simple retrieval tool and clearly front-loads the primary action and resource.
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 is simple, but the description lacks usage differentiation from sibling tools and does not clarify the return structure beyond 'list of files changed.' With no output schema, an agent cannot tell whether the list contains filenames, statuses, or diffs. Still, for a three-parameter getter it is minimally adequate.
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 three parameters (owner, repo, mergeRequestIid). The tool description adds no parameter-specific meaning, so the 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?
The description clearly states a specific verb ('Get') and resource ('list of files changed in a merge request'). This distinguishes it from sibling tools like get_merge_request (general MR info) and get_merge_request_status (status details), even without naming them.
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. It does not mention context, prerequisites, or exclusions, leaving the agent to infer usage solely from the tool name and description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_merge_request_reviewsB
Get the reviews/approvals on a merge request
| Name | Required | Description | Default |
|---|---|---|---|
| repo | Yes | Project path/name (e.g. 'pro-portal-onboarding-and-retention') | |
| owner | Yes | Project namespace/path (e.g. 'pro/portal/frontends') or numeric Project ID | |
| mergeRequestIid | Yes | The IID of the merge request |
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 of behavioral disclosure. It only says 'Get', implying a read operation, but does not disclose return shape, pagination, authentication needs, failure behavior, or whether approvals include state details. For an unannotated tool, this is insufficient 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 sentence with zero filler words. It front-loads the action and resource clearly, making it highly scannable for an agent. There is no redundant or unnecessary content.
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 is simple and all required parameters are documented, but no output schema is present and the description does not explain the return value structure, pagination, or ordering of reviews/approvals. It is minimally adequate for selecting the tool, though not fully complete for an agent that needs to interpret the response.
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 fully documents owner, repo, and mergeRequestIid with examples. The description adds no parameter-level meaning beyond identifying the target as a merge request, which is appropriate for the baseline since the schema handles the heavy lifting.
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 uses a specific verb ('Get') and resource ('reviews/approvals on a merge request'). It clearly distinguishes this tool from siblings like get_merge_request_comments, get_merge_request_status, and create_merge_request_review by targeting the approval/review aspect of a merge request.
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 about when to use this tool versus alternatives such as get_merge_request_comments or get_merge_request_status. The description does not state exclusions, prerequisites, or conditions, leaving the agent to infer usage solely from the tool name and sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_merge_request_statusA
Get the combined status of all status checks (pipelines) for a merge request
| Name | Required | Description | Default |
|---|---|---|---|
| repo | Yes | Project path/name (e.g. 'pro-portal-onboarding-and-retention') | |
| owner | Yes | Project namespace/path (e.g. 'pro/portal/frontends') or numeric Project ID | |
| mergeRequestIid | Yes | The IID of the merge request |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries the behavioral disclosure burden. It does add meaningful behavior ('combined status of all status checks' and equating them to pipelines), but it does not disclose response format, possible status values, or access requirements. It is adequate for a simple read operation but not rich.
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 exact scope without filler. Every word 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?
The description plus schema is sufficient for making the call, but there is no output schema and no description of the returned 'combined status' values or structure. An agent must infer what the response looks like.
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 owner, repo, and mergeRequestIid each documented. The tool description does not add parameter-level meaning beyond the schema, so the baseline 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?
The description uses a specific verb ('Get') and a precise resource ('combined status of all status checks (pipelines) for a merge request'). This clearly differentiates it from sibling tools like get_merge_request or list_merge_requests, which target different aspects of a merge request.
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 checking the aggregate pipeline/status-check result of a merge request, but it does not state when to prefer it over related tools such as get_merge_request or list_merge_requests. There is no explicit exclusion or alternative guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_commitsA
Get list of commits of a branch in a GitLab repository
| Name | Required | Description | Default |
|---|---|---|---|
| sha | No | Branch name or commit SHA | |
| page | No | Page number for pagination | |
| repo | Yes | Project path/name (e.g. 'pro-portal-onboarding-and-retention') | |
| owner | Yes | Project namespace/path (e.g. 'pro/portal/frontends') or numeric Project ID | |
| perPage | No | Number of results per page |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description must carry the burden. 'Get list' clearly implies a read-only operation with no destructive side effects, but the description does not disclose default behavior when sha is omitted, ordering, or pagination characteristics. These gaps are minor for a simple read tool, so a mid score is appropriate.
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 with no filler. Every word contributes to the purpose, and it is concise without being tautological.
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 simple list call, the description plus schema is enough to make a basic request using owner/repo and optionally sha. However, it does not mention what happens when sha is absent (e.g., default branch) or describe the returned commit data, and there is no output schema to fill that gap. This is 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?
The input schema already documents all five parameters with 100% coverage, so the description does not need to restate them. It adds only that the list is tied to a branch, which aligns with the sha parameter. No additional semantic detail is provided 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 names the operation ('Get list'), the resource ('commits'), and the scope ('of a branch in a GitLab repository'), which is specific enough to distinguish it from sibling tools like get_file_contents or list_merge_requests. It does slightly narrow the sha parameter to 'branch' when it may also be a commit SHA, but the core 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 is given about when to choose this tool over alternatives, nor any exclusion such as 'use list_merge_requests for merge request history'. The description only states what it does, leaving the agent to infer its appropriate use from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_issuesB
List issues in a GitLab repository with filtering options
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number of the results | |
| repo | Yes | Project path/name (e.g. 'pro-portal-onboarding-and-retention') | |
| owner | Yes | Project namespace/path (e.g. 'pro/portal/frontends') or numeric Project ID | |
| state | No | State of issues to return (e.g., opened, closed, all) | |
| labels | No | Filter by labels | |
| perPage | No | Results per page |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears the full burden of disclosing behavior. It only says 'List', which implies a read operation, but it does not explain pagination defaults, state defaults, issue ordering, or any other observable behavior an agent would need to anticipate when invoking the tool.
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 with no filler. It immediately communicates the action, resource, and the existence of filtering options, making it appropriately concise for the tool's simplicity.
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 minimally adequate for a straightforward list operation, especially with full schema coverage. However, with no output schema, no annotations, and a large sibling set, it does not mention pagination behavior, default issue state, or when to prefer search_issues over list_issues, leaving meaningful gaps.
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 parameters with individual descriptions, so the baseline is 3. The tool description adds no extra parameter-level meaning beyond 'filtering options', but because the schema already documents page, repo, owner, state, labels, and perPage, the description does not need to compensate.
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 a clear verb and resource: 'List issues in a GitLab repository' and signals filtering. It is unambiguous about the core operation, but it does not explicitly differentiate itself from the sibling search_issues or get_issue tools, so it falls short of a 5.
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 when to use the tool: to list and filter issues in a repository. However, it provides no explicit guidance about when not to use it or which alternative sibling tool to choose, such as search_issues for cross-repository search or get_issue for a single issue.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_merge_requestsC
List and filter repository merge requests
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number | |
| repo | Yes | Project path/name (e.g. 'pro-portal-onboarding-and-retention') | |
| owner | Yes | Project namespace/path (e.g. 'pro/portal/frontends') or numeric Project ID | |
| state | No | State of merge requests (e.g., opened, closed, merged, all) | |
| perPage | No | Results per page |
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 for behavioral disclosure. 'List' implies a read-only operation, but the description does not mention pagination behavior, default state filtering, ordering, or the shape of the returned data, leaving meaningful gaps.
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 front-loaded: 'List and filter repository merge requests' states the operation and scope with no wasted words. It sacrifices depth, but for sheer conciseness and structure it is effective.
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 five-parameter tool with no annotations and no output schema, the description is too thin to be fully complete. It does not indicate what the response looks like, what the default state filter is, or how pagination works, so an agent may need to rely on external knowledge.
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%, and the schema already documents owner, repo, state, page, and perPage with examples. The description adds only the generic notion of filtering, 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 uses a clear verb ('List and filter') and names the resource ('repository merge requests'), so an agent can tell this is a collection operation rather than a single-item one. It does not explicitly differentiate from siblings like get_merge_request, but the list-vs-single distinction is inferable from the wording.
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?
There is no guidance on when to use this tool versus alternatives such as get_merge_request for a single merge request or create_merge_request for creating one. The intended use is only implied by the name and description, with no explicit context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
merge_merge_requestC
Merge a merge request
| Name | Required | Description | Default |
|---|---|---|---|
| repo | Yes | Project path/name (e.g. 'pro-portal-onboarding-and-retention') | |
| owner | Yes | Project namespace/path (e.g. 'pro/portal/frontends') or numeric Project ID | |
| commitMessage | No | Optional detail to append to the automatic commit message | |
| mergeRequestIid | Yes | The IID of the merge request to merge |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full responsibility for disclosing behavioral traits. 'Merge a merge request' implies a mutating operation but does not disclose side effects, required permissions, failure conditions, conflicts, or what happens after a successful merge. This is a significant transparency gap for a destructive/persistent 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?
The description is extremely concise and contains no filler, but it is under-specified rather than efficiently detailed. The single sentence states the core action yet omits the behavioral and contextual information an agent would need, so it errs on the side of being too sparse.
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?
There is no output schema and no annotations, so the description is the only source of context. A merge operation involves mergeability checks, permissions, side effects, and result expectations, none of which are mentioned. The description is not complete enough for an agent to use this tool correctly in real-world scenarios.
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 description coverage is 100%, so parameters such as owner, repo, mergeRequestIid, and commitMessage are already documented. The description itself adds no parameter-specific meaning, but the schema carries the burden well enough to meet the baseline.
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 a clear verb and resource: 'Merge a merge request'. It also differentiates itself from siblings because no other sibling tool performs the actual merge, so an agent can select it among create/get/list/update merge-request tools. However, it is very close to a paraphrase of the tool name and adds no scope or outcome 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?
There is no guidance about when to use this tool versus alternatives, nor any mention of prerequisites such as mergeability, approved reviews, or pipeline status. The description only states the action and gives the agent no decision guidance about when merging is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
push_filesB
Push multiple files to a GitLab repository in a single commit
| Name | Required | Description | Default |
|---|---|---|---|
| repo | Yes | Project path/name (e.g. 'pro-portal-onboarding-and-retention') | |
| files | Yes | Array of files to push | |
| owner | Yes | Project namespace/path (e.g. 'pro/portal/frontends') or numeric Project ID | |
| branch | Yes | Branch to push to (e.g., 'main' or 'master') | |
| message | Yes | Commit message |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It does disclose batch capability and single-commit semantics, but it omits important mutating behaviors such as whether existing files are overwritten, whether the branch must already exist, and what permissions are required. For a write operation this is a significant transparency 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 focused sentence with no filler. The most important qualifiers ('multiple files' and 'single commit') are front-loaded, making it easy for an agent to parse quickly.
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 covers the core operation and the schema fully documents parameters, but there are no annotations and no output schema. It omits when-to-use guidance and important behavioral details like overwrite semantics and branch prerequisites. This is adequate for a simple push operation but leaves clear gaps for an autonomous 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 description coverage is 100%, so the input schema already documents all five parameters clearly. The description adds no per-parameter detail beyond what the schema provides, which matches 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 states a specific verb ('Push'), a clear resource ('GitLab repository'), and a useful qualifier ('multiple files... in a single commit'). This makes the tool's purpose immediately distinguishable from siblings such as create_merge_request or create_branch.
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 gives no guidance on when to choose this tool over alternatives, such as create_merge_request or create_branch. It does not mention any exclusions, prerequisites, or conditions that would make a different sibling tool more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_codeC
Search for code across GitLab repositories
| Name | Required | Description | Default |
|---|---|---|---|
| q | Yes | Search query (see GitLab code search syntax) | |
| page | No | Page number | |
| perPage | No | Results per page |
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 of behavioral disclosure. It only states the search scope and implies a read-only operation via 'search'. It does not mention authentication, rate limits, result format, pagination behavior, or any side effects, leaving significant behavioral context undisclosed.
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 clear sentence with no wasted words, and the primary action ('Search') is front-loaded. It is appropriately concise, though it is so brief that it under-specifies usage and behaviorβan issue more related to completeness than structure.
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 annotations and no output schema, the one-line description is insufficient for an agent to fully understand the tool's return value, pagination semantics, or when to choose it over siblings. It conveys the basic search intent but omits practical details needed for confident 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 description coverage is 100%: q, page, and perPage each have descriptions, and the q parameter even points to GitLab code search syntax. The tool description adds no parameter-level meaning beyond the schema, so the 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 states a specific verb ('Search') and a clear resource ('code across GitLab repositories'). This differentiates it from sibling tools like search_repositories and search_issues by the noun 'code', but it does not explicitly name alternatives or exclusions, so it falls just short of full differentiation.
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 offers no guidance on when to use search_code versus the many sibling search tools (search_repositories, search_issues, search_users). There are no context cues, exclusions, or alternative recommendations; the agent must infer usage purely from the word 'code'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_issuesA
Search for issues and merge requests across GitLab repositories
| Name | Required | Description | Default |
|---|---|---|---|
| q | Yes | Search query for issues/merge requests | |
| page | No | Page number | |
| perPage | No | Results per page |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the behavioral disclosure burden. It does add meaningful context by clarifying the search spans both issues and merge requests across repositories. However, it does not disclose result format, pagination behavior, ordering, or whether only accessible projects are searched.
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 with no redundant words. It conveys the action, resource, and scope efficiently, which is ideal for agent parsing.
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 is a low-complexity search with fully documented parameters, and the description covers the core behavior. However, the absence of an output schema and any mention of what the search returns leaves a moderate gap for an agent, though not a critical one for basic selection.
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 q, page, and perPage clearly. The description adds no parameter-level detail beyond the schema, which matches the baseline for fully documented parameters.
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 uses a specific verb ('Search') with a clear resource ('issues and merge requests') and scope ('across GitLab repositories'). This distinguishes it from sibling search tools like search_repositories, search_code, and search_users, as well as from list_issues and 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 does not explicitly name alternatives or conditions, but 'Search for...' implies this tool is for finding issues and merge requests matching a query, as opposed to listing or fetching a single item. Usage guidance is present only implicitly, not explicitly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_repositoriesC
Search for GitLab projects
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number for pagination (default: 1) | |
| query | Yes | Search query (see GitLab search syntax) | |
| perPage | No | Number of results per page (default: 30, max: 100) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the full burden of behavioral disclosure. It only says 'Search for GitLab projects' and does not describe result behavior, pagination defaults beyond the schema, search syntax nuances, authentication needs, or any side effects. It is minimally implied to be read-only, but lacks meaningful 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 sentence with no waste, but it is under-specified rather than efficiently comprehensive. It is readable and front-loaded, yet lacks enough substance to be considered well-structured.
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 annotations, no output schema, and only a one-line description, the tool is not fully contextualized. Important aspects like return format, result structure, and when to choose this over sibling search tools are absent, leaving an agent 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 description coverage is 100%, and each parameter (query, page, perPage) is already documented in the input schema. The description adds little beyond the resource context, so it meets the baseline but does not enhance parameter understanding further.
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 a specific verb ('Search') and a resource ('GitLab projects'), which distinguishes it from sibling search tools like search_code, search_issues, and search_users. It is clear but minimal, and could be slightly more explicit about what kind of projects and search scope is covered.
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 about when to use this tool versus alternatives such as search_code, search_issues, or search_users. The description merely states the action without explaining selection criteria, exclusions, or related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_usersB
Search for users on GitLab
| Name | Required | Description | Default |
|---|---|---|---|
| q | Yes | Search query for users | |
| page | No | Page number | |
| perPage | No | Results per page |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are absent, so the description must disclose behavioral traits itself. It only states 'Search for users on GitLab' with no mention of read-only semantics, pagination behavior, auth requirements, result limits, or search specificity, providing 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, front-loaded sentence with no filler or redundant phrasing. Every word contributes to the meaning, making it appropriately 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?
The tool has no output schema and the description mentions no return format or matching semantics, leaving an agent uncertain about what results look like or how 'q' is matched. Given the available schema/annotations richness, the description is thin and incomplete for a three-parameter 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?
Input schema has 100% description coverage for all three parameters (q, page, perPage), so the schema already conveys their meaning. The description adds no additional semantic detail beyond what the schema provides, matching the baseline 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 states a specific verb and resource ('Search for users'), which clearly distinguishes it from sibling search tools like search_repositories and search_code by resource type. It does not elaborate on search scope (e.g., by username, name, or email), but the core 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 explicit guidance on when to use this tool versus alternatives is provided. Usage context is only implied by the resource name 'users' contrasted with sibling tools like search_repositories and search_issues, earning an implied-usage score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_issueC
Update an existing issue in a GitLab repository
| Name | Required | Description | Default |
|---|---|---|---|
| body | No | New description/body for the issue | |
| repo | Yes | Project path/name (e.g. 'pro-portal-onboarding-and-retention') | |
| owner | Yes | Project namespace/path (e.g. 'pro/portal/frontends') or numeric Project ID | |
| state | No | State to update the issue to (opened or closed) | |
| title | No | New title for the issue | |
| labels | No | Array of labels to set | |
| issueIid | Yes | The IID (Internal ID) of the issue |
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 of behavioral disclosure, yet it only reveals that the issue is mutated. It does not state that labels are replaced rather than merged, that state can transition between opened and closed, or what happens to fields that are not passed. The schema hints at some of this, but the description itself adds almost no behavioral context beyond the verb 'update'.
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 seven-word sentence that front-loads the action verb and names the target resource. It is efficient and scannable, though the brevity borders on under-specification since it omits usage and behavior guidance that would make it more 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?
For a 7-parameter mutation tool with no annotations and no output schema, this description is incomplete. It does not clarify label replacement semantics, whether omitted fields are left untouched, or what the tool returns on success. The schema documents parameters, but key behavioral and return-value context is absent.
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 all 7 parameters already have type, purpose, and example documentation in the schema. The description adds no parameter-level meaning beyond what the schema provides, so the baseline 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?
The description states a specific verb ('Update') and resource ('an existing issue in a GitLab repository'), and the qualifier 'existing' implicitly separates it from the sibling create_issue. However, it does not explicitly name or differentiate against other overlapping siblings like add_issue_comment or the update_merge_request_branch tool, so it stops short of full sibling differentiation.
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 given on when to use this tool versus alternatives. Siblings such as create_issue, get_issue, and add_issue_comment exist, but the description offers no conditions, exclusions, or routing hints to help an agent choose between creating, reading, commenting on, or updating an issue.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_merge_request_branchA
Update a merge request branch with the latest changes from the target branch (rebase)
| Name | Required | Description | Default |
|---|---|---|---|
| repo | Yes | Project path/name (e.g. 'pro-portal-onboarding-and-retention') | |
| owner | Yes | Project namespace/path (e.g. 'pro/portal/frontends') or numeric Project ID | |
| mergeRequestIid | Yes | The IID of the merge request |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the disclosure burden. It does reveal the important behavioral trait of rebasing, which implies the branch history may be rewritten, but it does not mention side effects, failure conditions, or whether the operation is a no-op when already up to date.
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 with no wasted words, and the core operation is front-loaded. The parenthetical 'rebase' usefully clarifies the mechanism without adding bulk.
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 simple three-parameter mutation with no output schema, the description plus complete parameter documentation is largely sufficient to call the tool correctly. It could be more complete with explicit caveats around side effects, but the operation is straightforward and well-scoped.
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 three parameters are already fully documented in the schema, so the description does not need to add parameter-level detail. The description adds no specific parameter semantics beyond what the schema provides, which meets the baseline.
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 names a specific operation (update the merge request branch), specifies the mechanism (rebase with latest changes from target branch), and is distinct from sibling operations like merge_merge_request or create_branch. It leaves no doubt 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?
The intended use is implied: invoke this when you need to bring a merge request's branch up to date with its target branch. However, the description does not explicitly state when to prefer this over merge_merge_request or mention any alternatives or exclusions.
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.
27 tool updates
v1.0.0- First observed
add_issue_comment - First observed
create_branch - First observed
create_issue - First observed
create_merge_request - First observed
create_merge_request_review - First observed
create_repository - First observed
fork_repository - First observed
get_file_contents - First observed
get_issue - First observed
get_merge_request - First observed
get_merge_request_by_url - First observed
get_merge_request_comments - First observed
get_merge_request_comments_by_url - First observed
get_merge_request_files - First observed
get_merge_request_reviews - First observed
get_merge_request_status - First observed
list_commits - First observed
list_issues - First observed
list_merge_requests - First observed
merge_merge_request - First observed
push_files - First observed
search_code - First observed
search_issues - First observed
search_repositories - First observed
search_users - First observed
update_issue - First observed
update_merge_request_branch
TDQS
Most tools target a distinct resource/action, and search/create/get/list are clearly separated. The main ambiguity is among the many merge request tools, especially get_merge_request_comments vs get_merge_request_reviews and their by_url variants, though the descriptions do help.
All tool names follow a consistent verb_noun pattern: search_, create_, get_, list_, update_, add_, merge_, push_, fork_. Minor quirks like merge_merge_request are still predictable.
With 27 tools the set is above the threshold for a focused MCP server. The merge request surface alone accounts for over a dozen tools, making the overall tool count feel heavy and harder for an agent to navigate.
Core GitLab workflows are covered: repository searching/creation, file pushes, issues with comments, and a thorough merge request lifecycle including reviews, status, and rebase. Missing operations like updating MR metadata or deleting repositories are minor gaps that agents can often work around.
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
Go MCP server for GitLab: 2 dynamic tools reach 1000+ REST/GraphQL actions. Free/CE, no paid tier.
GitLab MCP β wraps the GitLab REST API v4 (BYO API key)
A MCP server built for developers enabling Git based project management with project and personalβ¦
GitLab Public MCP β wraps the GitLab REST API v4 (public endpoints, no auth)
Related MCP Servers
- AlicenseCqualityDmaintenanceAn MCP server that enables communication with GitLab repositories, allowing interaction with GitLab's API to manage projects, issues, and repositories through natural language.45123,8991MIT
- FlicenseNot gradedqualityCmaintenanceAn MCP server for the GitLab API that enables comprehensive project management, file operations, and issue tracking. It supports automated branch creation, batch file pushes, and interaction with merge requests and CI/CD logs.-
- AlicenseNot gradedqualityDmaintenanceMCP server for interacting with GitLab API, supporting both self-hosted instances and gitlab.com. Provides tools for managing issues, merge requests, code review, pipelines, milestones, releases, search, and file access.302MIT
- AlicenseNot gradedqualityAmaintenanceMCP server for the GitLab REST API providing tools to manage projects, merge requests, pipelines, CI/CD variables, approvals, issues, and code reviews.6MIT
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/DrBoria/md-gitlab-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server