Skip to main content
Glama

Get project vulnerabilities

gitlab_get_project_vulnerabilities
Read-onlyIdempotent

Retrieve security vulnerabilities for a GitLab project, including paginated results, to review exposure and support remediation tracking.

Instructions

Get a project's security vulnerabilities (Ultimate).

GET /projects/{project_id}/vulnerabilities

Args: **kwargs: project_id (required); optional pagination.

Returns: Response: wrapper containing the original response and the parsed vulnerabilities (list of dicts).

Raises: MissingParameterError: If project_id is missing. ParameterError: If invalid parameters are provided.

Input Schema

NameRequiredDescriptionDefault
dataNo
pageNo
group_idNo
per_pageNo
max_pagesNo
project_idNo
api_parametersNo
package_managerNo
vulnerability_idNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv27.3.13

TDQS

B3.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, and the description adds real value beyond them: the underlying REST path, the fact that the return value is a wrapper holding both the raw response and a parsed list of vulnerability dicts, and two named failure modes (MissingParameterError, ParameterError). It stops short of covering pagination limits or auth scope.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the purpose in the first sentence, then cleanly separated into endpoint, Args, Returns, and Raises blocks. The structure is efficient, with only minor boilerplate in the kwargs/Returns phrasing.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers the return shape and error conditions adequately for a tool with no output schema, but for a 9-parameter read tool with zero schema documentation it leaves too many filtering and pagination parameters (vulnerability_id, package_manager, max_pages, group_id) unexplained for an agent to invoke it confidently.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% across 9 parameters, so the description carries the full burden and largely fails: it only mentions project_id and unspecified "optional pagination." Filters present in the schema such as vulnerability_id, package_manager, and group_id are never explained, so an agent cannot tell whether they narrow results or alter behavior. It does correctly disclose that project_id is required at runtime despite the schema marking it nullable.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("Get a project's security vulnerabilities") and scopes it to the project level, which distinguishes it from the sibling gitlab_get_group_vulnerabilities. It also flags the Ultimate-tier licensing requirement, though it never explicitly names the group-level or single-vulnerability alternatives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The "(Ultimate)" marker is a genuine prerequisite that tells an agent the call will fail on lower tiers, and the endpoint path implies it is a read-only listing. However, there is no guidance on when to prefer this over gitlab_get_group_vulnerabilities or gitlab_get_vulnerability, and no exclusion criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Deploy Server

Other Tools