0.3.0npm · gitlab-duo-mcp-bridge · current release
Observed 2026-08-23T00:35:25.513Z using mcpSecurity-inventory. Status: succeeded. Negotiated protocol: 2025-06-18.
{
"tools": {
"listChanged": true
}
}| Tool | Category | Annotations | Risk |
|---|---|---|---|
duo_reviewRun a code review with the GitLab Duo CLI and return a normalized, fault-tolerant result. Use this to get a 'second opinion' review of a diff or set of files: pass a unified `diff` (and/or `files`/`instructions`), and you get back a stable JSON structure with a `summary` and a list of `issues` (type, severity, file, line, message, suggestion). If Duo answers with prose instead of JSON, the result is still returned with `degraded: true` and the raw text in `summary`/`raw`. Your agent can then act on the issues (e.g. write fixes).Input schema{
"type": "object",
"properties": {
"diff": {
"type": "string",
"description": "Unified diff to review (e.g. output of `git diff`)."
},
"files": {
"type": "array",
"items": {
"type": "string"
},
"description": "File paths to focus the review on."
},
"instructions": {
"type": "string",
"description": "Extra free-form guidance for the reviewer."
},
"goal": {
"type": "string",
"description": "Override the entire prompt sent to Duo. When set, diff/files/instructions are ignored."
},
"cwd": {
"type": "string",
"description": "Working directory to run Duo in for this call."
},
"model": {
"type": "string",
"description": "Override the Duo model for this call."
},
"timeoutMs": {
"type": "integer",
"exclusiveMinimum": 0,
"description": "Override the run timeout (milliseconds) for this call."
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Output schema{
"type": "object",
"properties": {
"ok": {
"type": "boolean",
"description": "True when Duo exited successfully and did not time out."
},
"degraded": {
"type": "boolean",
"description": "True when output could not be parsed as JSON (raw text fallback)."
},
"summary": {
"type": "string",
"description": "Review summary, or raw text when degraded."
},
"issues": {
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string"
},
"severity": {
"type": "string",
"enum": [
"critical",
"high",
"medium",
"low",
"info"
]
},
"file": {
"type": [
"string",
"null"
]
},
"line": {
"type": [
"number",
"null"
]
},
"message": {
"type": "string"
},
"suggestion": {
"type": [
"string",
"null"
]
}
},
"required": [
"type",
"severity",
"file",
"line",
"message",
"suggestion"
],
"additionalProperties": false
},
"description": "Normalized list of findings."
},
"raw": {
"type": "string",
"description": "Raw (truncated) Duo output for debugging."
},
"meta": {
"type": "object",
"properties": {
"commandLine": {
"type": "string"
},
"exitCode": {
"type": [
"number",
"null"
]
},
"timedOut": {
"type": "boolean"
},
"durationMs": {
"type": "number"
},
"mock": {
"type": "boolean"
},
"parseError": {
"type": [
"string",
"null"
]
},
"goalViaFile": {
"type": "boolean"
}
},
"required": [
"commandLine",
"exitCode",
"timedOut",
"durationMs",
"mock",
"parseError",
"goalViaFile"
],
"additionalProperties": false
}
},
"required": [
"ok",
"degraded",
"summary",
"issues",
"raw",
"meta"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
} | — | — · — | — |