Skip to main content
Glama

Comment on a build's diff

post_comment

Leave a review comment on one of a build's changed-story diffs (resolve the build by commitSha/prNumber/buildId, target the diff by diffResultId from get_build/get_diff). The comment is authored as the agent. Optionally anchor it to a spot on the candidate image with anchor: omit or null for a whole-diff comment, {type:'point',x,y} to pin a point, {type:'rect',x,y,w,h} for a box, or {type:'path',points:[{x,y},...],closed} for a shape - all coordinates 0..1 normalized to the candidate image. side picks the pane ('after' the candidate, default; 'before' the baseline). Pass parentId (a root comment id from list_comments) to REPLY in that thread instead - a reply inherits the root's side and carries no anchor, so anchor/side are ignored. A new root comment is refused when a newer build exists on the branch (comment on the latest build); replies stay allowed. Reference: https://uiverify.ai/docs/mcp-tools

Input Schema

NameRequiredDescriptionDefault
bodyYesThe comment text.
sideNoWhich pane: 'after' (candidate, default) or 'before' (baseline). Ignored on a reply.
anchorNoWhere on the candidate image to pin it (0..1 normalized): omit/null = whole diff; {type:'point',x,y}; {type:'rect',x,y,w,h}; {type:'path',points,closed}. Ignored on a reply.
buildIdNoResolve this exact build id.
parentIdNoReply to this thread ROOT comment's id (from list_comments) instead of starting a new thread.
prNumberNoResolve the latest build for this PR number.
commitShaNoResolve the build for this git commit SHA.
projectIdNoThe project to look in (a projectId from list_projects). Needed only when you can access several projects; a buildId already names its project.
diffResultIdYesThe diff result to comment on (from get_build/get_diff).

Output Schema

NameRequiredDescriptionDefault
idYes
openReviewCommentsNoPresent when open review comments are waiting on some branch of this project; read yours with list_comments.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedOutput schema / properties / openReviewComments
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "Present when open review comments are waiting on some branch of this project; read yours with list_comments.",
      +  "properties": {
      +    "branches": {
      +      "items": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "branch": {
      +            "type": "string"
      +          },
      +          "lastActivityAt": {
      +            "type": "string"
      +          },
      +          "open": {
      +            "type": "number"
      +          }
      +        },
      +        "required": [
      +          "branch",
      +          "open",
      +          "lastActivityAt"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "branchesTotal": {
      +      "type": "number"
      +    },
      +    "hint": {
      +      "type": "string"
      +    },
      +    "projectId": {
      +      "type": "string"
      +    },
      +    "total": {
      +      "type": "number"
      +    }
      +  },
      +  "required": [
      +    "total",
      +    "branches",
      +    "branchesTotal",
      +    "projectId",
      +    "hint"
      +  ],
      +  "type": "object"
      +}
  2. Changed1 schema field changed
    • changedInput schema / properties / anchor / anyOf
      Previous value: -[
      -  {
      -    "anyOf": [
      -      {
      -        "additionalProperties": false,
      -        "properties": {
      -          "type": {
      -            "const": "point",
      -            "type": "string"
      -          },
      -          "x": {
      -            "maximum": 1,
      -            "minimum": 0,
      -            "type": "number"
      -          },
      -          "y": {
      -            "$ref": "#/properties/anchor/anyOf/0/anyOf/0/properties/x"
      -          }
      -        },
      -        "required": [
      -          "type",
      -          "x",
      -          "y"
      -        ],
      -        "type": "object"
      -      },
      -      {
      -        "additionalProperties": false,
      -        "properties": {
      -          "h": {
      -            "exclusiveMinimum": 0,
      -            "maximum": 1,
      -            "type": "number"
      -          },
      -          "type": {
      -            "const": "rect",
      -            "type": "string"
      -          },
      -          "w": {
      -            "exclusiveMinimum": 0,
      -            "maximum": 1,
      -            "type": "number"
      -          },
      -          "x": {
      -            "$ref": "#/properties/anchor/anyOf/0/anyOf/0/properties/x"
      -          },
      -          "y": {
      -            "$ref": "#/properties/anchor/anyOf/0/anyOf/0/properties/x"
      -          }
      -        },
      -        "required": [
      -          "type",
      -          "x",
      -          "y",
      -          "w",
      -          "h"
      -        ],
      -        "type": "object"
      -      },
      -      {
      -        "additionalProperties": false,
      -        "properties": {
      -          "closed": {
      -            "type": "boolean"
      -          },
      -          "points": {
      -            "items": {
      -              "additionalProperties": false,
      -              "properties": {
      -                "x": {
      -                  "$ref": "#/properties/anchor/anyOf/0/anyOf/0/properties/x"
      -                },
      -                "y": {
      -                  "$ref": "#/properties/anchor/anyOf/0/anyOf/0/properties/x"
      -                }
      -              },
      -              "required": [
      -                "x",
      -                "y"
      -              ],
      -              "type": "object"
      -            },
      -            "maxItems": 512,
      -            "minItems": 2,
      -            "type": "array"
      -          },
      -          "type": {
      -            "const": "path",
      -            "type": "string"
      -          }
      -        },
      -        "required": [
      -          "type",
      -          "points",
      -          "closed"
      -        ],
      -        "type": "object"
      -      }
      -    ]
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "anyOf": [
      +      {
      +        "additionalProperties": false,
      +        "properties": {
      +          "type": {
      +            "const": "point",
      +            "type": "string"
      +          },
      +          "x": {
      +            "maximum": 1,
      +            "minimum": 0,
      +            "type": "number"
      +          },
      +          "y": {
      +            "maximum": 1,
      +            "minimum": 0,
      +            "type": "number"
      +          }
      +        },
      +        "required": [
      +          "type",
      +          "x",
      +          "y"
      +        ],
      +        "type": "object"
      +      },
      +      {
      +        "additionalProperties": false,
      +        "properties": {
      +          "h": {
      +            "exclusiveMinimum": 0,
      +            "maximum": 1,
      +            "type": "number"
      +          },
      +          "type": {
      +            "const": "rect",
      +            "type": "string"
      +          },
      +          "w": {
      +            "exclusiveMinimum": 0,
      +            "maximum": 1,
      +            "type": "number"
      +          },
      +          "x": {
      +            "maximum": 1,
      +            "minimum": 0,
      +            "type": "number"
      +          },
      +          "y": {
      +            "maximum": 1,
      +            "minimum": 0,
      +            "type": "number"
      +          }
      +        },
      +        "required": [
      +          "type",
      +          "x",
      +          "y",
      +          "w",
      +          "h"
      +        ],
      +        "type": "object"
      +      },
      +      {
      +        "additionalProperties": false,
      +        "properties": {
      +          "closed": {
      +            "type": "boolean"
      +          },
      +          "points": {
      +            "items": {
      +              "additionalProperties": false,
      +              "properties": {
      +                "x": {
      +                  "maximum": 1,
      +                  "minimum": 0,
      +                  "type": "number"
      +                },
      +                "y": {
      +                  "maximum": 1,
      +                  "minimum": 0,
      +                  "type": "number"
      +                }
      +              },
      +              "required": [
      +                "x",
      +                "y"
      +              ],
      +              "type": "object"
      +            },
      +            "maxItems": 512,
      +            "minItems": 2,
      +            "type": "array"
      +          },
      +          "type": {
      +            "const": "path",
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "type",
      +          "points",
      +          "closed"
      +        ],
      +        "type": "object"
      +      }
      +    ]
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
  3. Changed1 schema field changed
    • addedInput schema / properties / projectId
      Added value: +{
      +  "description": "The project to look in (a projectId from list_projects). Needed only when you can access several projects; a buildId already names its project.",
      +  "format": "uuid",
      +  "type": "string"
      +}
  4. Added

TDQS

Score is being calculated.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources