Skip to main content
Glama

Get Vulnerability

gitlab_get_vulnerability
Read-onlyIdempotent

Retrieve a single GitLab vulnerability with its description, identifiers, links, and location for a specified project to support security review.

Instructions

Get one vulnerability with its description, identifiers, links, and location. The vulnerability must belong to project_id. Ultimate.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "vulnerability_id": "<vulnerability_id>"
    },
    "name": "gitlab_get_vulnerability"
  }
}

Input Schema

NameRequiredDescriptionDefault
project_idNo
vulnerability_idYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv1.7.0

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety profile is covered. The description adds two genuinely new facts not in annotations: the returned field set and the "Ultimate" tier requirement. It stops short of describing not-found behavior or what happens if the vulnerability is outside the given project.

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?

Two short sentences, front-loaded with the core action and payload, with no filler. The trailing one-word fragment "Ultimate." is terse to the point of being slightly cryptic, but it is efficient rather than wasteful.

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?

With no output schema, listing the returned fields is a useful compensating detail, and annotations cover the safety semantics. Still missing for a two-parameter getter: the meaning of a null project_id, the identifier format, and behavior when the vulnerability is absent from the project.

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 description coverage is 0% for both parameters, so the description must carry the load. It adds meaning only for project_id (it defines the owning scope), and says nothing about vulnerability_id's expected form or the fact that project_id is nullable in the schema — a notable ambiguity left unresolved.

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?

The description opens with a specific verb and resource ("Get one vulnerability") and enumerates the payload (description, identifiers, links, location), so an agent knows exactly what comes back. It does not explicitly distinguish itself from the vulnerability-mutating siblings gitlab_confirm_vulnerability and gitlab_dismiss_vulnerability, though "Get one" implies read-only retrieval.

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 vulnerability must belong to project_id" gives a scoping precondition, and "Ultimate" signals a licensing/tier prerequisite for use. However, there is no explicit statement of when to pick this over the sibling getters or the confirm/dismiss tools, so usage is only implied.

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