Skip to main content
Glama

Update project level rule

gitlab_update_project_level_rule
Idempotent

Updates an existing project-level merge request approval rule so you can adjust required approvals, approvers, rule type, or protected-branch scope.

Instructions

Update an existing project-level merge request approval rule.

Args: **kwargs: Additional parameters for the request (e.g., project_id, approval_rule_id).

Returns: Response: A wrapper containing the original response and an ApprovalRule model.

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

Input Schema

NameRequiredDescriptionDefault
dataNo
nameNo
group_idNo
user_idsNo
group_idsNo
rule_typeNo
project_idNo
report_typeNo
approval_rule_idNo
merge_request_iidNo
approvals_requiredNo
protected_branch_idsNo
applies_to_all_protected_branchesNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv27.3.13

TDQS

C2.8/5.0
Behavior2/5

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

Annotations already declare readOnly=false, idempotent=true, destructive=false and openWorld=true. The description adds nothing about what fields change, whether omitted fields are reset, permission requirements, or side effects on in-flight merge requests — it only restates a wrapper return type and error names, and its 'kwargs' framing does not even match the actual schema parameters.

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

Conciseness3/5

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

The opening sentence is front-loaded and useful, but the Args/Returns/Raises block is boilerplate that describes a **kwargs signature rather than the actual schema, so space is spent without informing the agent. Net: short, but partly wasted.

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

Completeness4/5

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

Given a 13-parameter mutation tool with no annotations on fields and no output schema, an agent is left guessing which parameters are required, which are optional, and how the rule is identified. The description confirms it mutates an existing rule but omits the operational detail needed to call it confidently across two competing update siblings.

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% across 13 parameters, so the description is the only source of meaning — yet it mentions only project_id and approval_rule_id as examples. The substantive fields (name, approvals_required, user_ids, group_ids, rule_type, applies_to_all_protected_branches, protected_branch_ids) get no explanation of effect or constraints.

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: 'Update an existing project-level merge request approval rule.' An agent can tell it mutates an approval rule scoped to a project. However, it does not differentiate itself from the sibling gitlab_edit_project_level_rule, which appears to be an alternate mutation path for the same resource.

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

Usage Guidelines2/5

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

No guidance on when to use this versus gitlab_edit_project_level_rule, gitlab_create_project_level_rule, or gitlab_get_project_level_merge_request_rule. The only conditional information is the exceptions section, which is about failure modes, not selection.

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