Skip to main content
Glama

create_comment

Adds a new comment to an issue, posted as you (the API key's owner; the issue's history also names the key), and returns the comment's id - what edit_comment/delete_comment take. Requires canEdit on the issue (see get_issue/list_issues); an issue you can't read is reported as not found. Everyone who can read the issue sees the comment; no notification is sent. Only you can later edit or delete it. Use it for discussion and progress notes; to change an existing comment use edit_comment, to note why while moving the issue pass edit_issue_status's comment instead, and to change the issue's own text use edit_issue.

Input Schema

NameRequiredDescriptionDefault
textYesThe comment's text, max 4096 characters. Plain text or markdown.
filesNoFiles to attach to the comment, base64-encoded - same format and types as create_issue's files, e.g. a report or config as Markdown/JSON.
issueKeyYesThe issue to comment on, e.g. 'BRD-42' - a key from list_issues or get_issue.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / properties / files
      Added value: +{
      +  "default": null,
      +  "description": "Files to attach to the comment, base64-encoded - same format and types as create_issue's files, e.g. a report or config as Markdown/JSON.",
      +  "items": {
      +    "properties": {
      +      "base64Content": {
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "contentType": {
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "fileName": {
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      }
      +    },
      +    "required": [
      +      "fileName",
      +      "contentType",
      +      "base64Content"
      +    ],
      +    "type": [
      +      "object",
      +      "null"
      +    ]
      +  },
      +  "type": [
      +    "array",
      +    "null"
      +  ]
      +}
  2. Changed2 schema fields changed
    • changedInput schema / properties / issueKey / description
      Previous value: -"The issue's key, e.g. 'BRD-42'."New value: +"The issue to comment on, e.g. 'BRD-42' - a key from list_issues or get_issue."
    • changedInput schema / properties / text / description
      Previous value: -"The comment's text, max 4096 characters."New value: +"The comment's text, max 4096 characters. Plain text or markdown."
  3. Changed2 schema fields changed
    • changedInput schema / properties / text / description
      Previous value: -"The comment's text."New value: +"The comment's text, max 4096 characters."
    • addedInput schema / properties / text / maxLength
      Added value: +4096
  4. Added

TDQS

A4.8/5.0
Behavior5/5

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

With no annotations, the description carries the full burden and does: it discloses authorship/attribution in history, the required permission (canEdit), the not-found masking for unreadable issues, visibility to all readers, absence of notifications, and post-hoc ownership of edit/delete rights. This is exactly the behavioral context the schema and annotations cannot supply.

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?

Front-loaded with purpose and return value, then permissions, then alternatives — good ordering with no filler sentences. Slightly dense in the parenthetical about key attribution and ownership, which packs three facts into one clause.

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

Completeness5/5

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

No output schema exists, and the description compensates by naming the return value explicitly. Permission requirements, failure mode, visibility, and sibling routing are all covered for a 3-param mutation tool.

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

Parameters4/5

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

Schema coverage is 100%, so both required params are documented structurally; the description adds meaning beyond that by tying issueKey to the canEdit/readability precondition and by framing the returned id as the input to edit_comment/delete_comment. It says nothing extra about the files parameter, which the schema handles.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Adds a new comment to an issue'), the identity it posts under, and the return value ('returns the comment's id'). It explicitly distinguishes itself from the closest siblings edit_comment and delete_comment by naming what they consume.

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

Usage Guidelines5/5

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

Gives positive guidance ('discussion and progress notes') and explicitly routes three alternatives: edit_comment for changing a comment, edit_issue_status's comment for status-change justification, edit_issue for the issue body. An agent can pick the right tool without inference.

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.