Skip to main content
Glama

Opsphere — DevOps & SRE Intelligence

GitLab MR search

gl_mr_search
Read-only

Search merge requests by state, author and/or branches.

Input Schema

NameRequiredDescriptionDefault
limitNo
stateNo
authorNoauthor username
projectYesProject path, ID, or repo slug under namespace
namespaceNo
context_idNoOptional explicit Connection Hub work context (ctx_*). Omit to use the conversation's active workspace; global Hub tools ignore it.
sourceBranchNo
targetBranchNo

Output Schema

NameRequiredDescriptionDefault
okYes
dataYes
contractVersionYes
dataSchemaVersionYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed21 schema fields changed
    • changedOutput schema / properties / data / additionalProperties
      Previous value: -trueNew value: +false
    • removedOutput schema / properties / data / properties / count
      Removed value: -{
      -  "type": "number"
      -}
    • addedOutput schema / properties / data / properties / family
      Added value: +{
      +  "const": "gitlab",
      +  "type": "string"
      +}
    • addedOutput schema / properties / data / properties / gaps
      Added value: +{
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • removedOutput schema / properties / data / properties / issues
      Removed value: -{
      -  "$ref": "#/properties/data/properties/items"
      -}
    • removedOutput schema / properties / data / properties / items
      Removed value: -{
      -  "items": {
      -    "additionalProperties": true,
      -    "properties": {},
      -    "type": "object"
      -  },
      -  "type": "array"
      -}
    • removedOutput schema / properties / data / properties / maxResults
      Removed value: -{
      -  "type": "number"
      -}
    • removedOutput schema / properties / data / properties / nextPageToken
      Removed value: -{
      -  "type": [
      -    "string",
      -    "null"
      -  ]
      -}
    • addedOutput schema / properties / data / properties / operation
      Added value: +{
      +  "const": "gl_mr_search",
      +  "type": "string"
      +}
    • addedOutput schema / properties / data / properties / partial
      Added value: +{
      +  "type": "boolean"
      +}
    • addedOutput schema / properties / data / properties / records
      Added value: +{
      +  "items": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "additions": {
      +        "type": "number"
      +      },
      +      "author": {
      +        "type": "string"
      +      },
      +      "body": {
      +        "type": "string"
      +      },
      +      "conclusion": {
      +        "type": "string"
      +      },
      +      "createdAt": {
      +        "type": "string"
      +      },
      +      "deletions": {
      +        "type": "number"
      +      },
      +      "environment": {
      +        "type": "string"
      +      },
      +      "facts": {
      +        "items": {
      +          "additionalProperties": false,
      +          "properties": {
      +            "name": {
      +              "type": "string"
      +            },
      +            "value": {
      +              "anyOf": [
      +                {
      +                  "type": "string"
      +                },
      +                {
      +                  "type": "number"
      +                },
      +                {
      +                  "type": "boolean"
      +                },
      +                {
      +                  "type": "null"
      +                },
      +                {
      +                  "items": {
      +                    "type": [
      +                      "string",
      +                      "number",
      +                      "boolean",
      +                      "null"
      +                    ]
      +                  },
      +                  "type": "array"
      +                }
      +              ]
      +            }
      +          },
      +          "required": [
      +            "name",
      +            "value"
      +          ],
      +          "type": "object"
      +        },
      +        "type": "array"
      +      },
      +      "id": {
      +        "type": "string"
      +      },
      +      "key": {
      +        "type": "string"
      +      },
      +      "name": {
      +        "type": "string"
      +      },
      +      "ref": {
      +        "type": "string"
      +      },
      +      "repository": {
      +        "type": "string"
      +      },
      +      "sha": {
      +        "type": "string"
      +      },
      +      "status": {
      +        "type": "string"
      +      },
      +      "summary": {
      +        "type": "string"
      +      },
      +      "tags": {
      +        "items": {
      +          "type": "string"
      +        },
      +        "type": "array"
      +      },
      +      "title": {
      +        "type": "string"
      +      },
      +      "type": {
      +        "type": "string"
      +      },
      +      "updatedAt": {
      +        "type": "string"
      +      },
      +      "url": {
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "facts"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • removedOutput schema / properties / data / properties / results
      Removed value: -{
      -  "$ref": "#/properties/data/properties/items"
      -}
    • removedOutput schema / properties / data / properties / startAt
      Removed value: -{
      -  "type": "number"
      -}
    • addedOutput schema / properties / data / properties / summary
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / data / properties / total / minimum
      Added value: +0
    • changedOutput schema / properties / data / properties / total / type
      Previous value: -"number"New value: +"integer"
    • addedOutput schema / properties / data / properties / truncated
      Added value: +{
      +  "type": "boolean"
      +}
    • addedOutput schema / properties / data / properties / warnings
      Added value: +{
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / data / required
      Added value: +[
      +  "family",
      +  "operation",
      +  "records",
      +  "total",
      +  "partial",
      +  "truncated",
      +  "warnings",
      +  "gaps"
      +]
    • addedOutput schema / properties / dataSchemaVersion
      Added value: +{
      +  "const": 2,
      +  "type": "number"
      +}
    • changedOutput schema / required
      Previous value: -[
      -  "contractVersion",
      -  "ok",
      -  "data"
      -]New value: +[
      +  "contractVersion",
      +  "dataSchemaVersion",
      +  "ok",
      +  "data"
      +]
  2. First observed

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds nothing beyond annotations: it omits pagination behavior (limit defaults to 20, caps at 50), result ordering, and whether the search is scoped to a single project.

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

Conciseness5/5

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

A single front-loaded sentence with no filler. Every word contributes to the stated purpose; the only criticism is substance, not verbosity.

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

Completeness2/5

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

For an 8-parameter tool with only 38% schema coverage, the description is thin: no required-project note, no limit/pagination explanation, no namespace or context_id semantics, and no differentiation from gl_mr_get. The presence of an output schema and annotations offsets some of this, but significant calling-convention gaps remain.

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

Parameters3/5

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

Schema coverage is 38%, so the description needs to compensate and it only partly does: it names state, author, and branches, which maps to the undocumented state/sourceBranch/targetBranch parameters. It leaves limit, namespace, and context_id unexplained and never notes that project is required.

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 (search) and resource (merge requests) plus the filterable dimensions, so the agent knows this is a list/query operation rather than a single-resource fetch. It does not explicitly contrast with gl_mr_get or bb_pr_search, but the operation type is unambiguous.

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?

There is no guidance on when to use this versus gl_mr_get (single MR), gl_mr_diff/changes/commits, or the equivalent bb_pr_search. Usage is implied by the word 'search' but no conditions, exclusions, or alternatives are stated despite a dense sibling set.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources