Skip to main content
Glama

createComment

Destructive

Add a new comment to a Jam bug report. The comment body supports Markdown formatting. To reply in a thread, pass parentId using a top-level comment's id from getDetails on the same Jam. Replies are one level deep and ignore playbackRelativeTimestamp. Use this to add notes, analysis results, or follow-up information to a Jam. This can notify other users by email, and the comment is visible to people who can access the Jam, including public viewers when sharing permits it.

Input Schema

NameRequiredDescriptionDefault
bodyYesThe comment body in Markdown format. To mention a teammate and notify them, write `@[Their Name](user:<userId>)` — get the userId from listMembers. A plain `@name` is left as ordinary text and notifies nobody. At most 2000 characters; split a longer write-up into a top-level comment and replies.
jamIdYesJam identifier — a UUID or a jam.dev URL
intentNoIn 15-30 English words, your larger task and why this call helps it. People by role ("a customer"); no argument values or secrets.
parentIdNoThe id of a top-level comment on this Jam to reply to.
llm_modelNoYour exact model id from your system prompt, or "unknown". Never guess.
playbackRelativeTimestampNoOptional timestamp in milliseconds relative to the start of the media playback. When provided, the comment will be linked to that specific point in the video/replay. Ignored when parentId is provided.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changed
    • changedInput schema / properties / body / description
      Previous value: -"The comment body in Markdown format. To mention a teammate and notify them, write `@[Their Name](user:<userId>)` — get the userId from listMembers. A plain `@name` is left as ordinary text and notifies nobody."New value: +"The comment body in Markdown format. To mention a teammate and notify them, write `@[Their Name](user:<userId>)` — get the userId from listMembers. A plain `@name` is left as ordinary text and notifies nobody. At most 2000 characters; split a longer write-up into a top-level comment and replies."
    • changedInput schema / properties / intent / description
      Previous value: -"In 15-30 words, say what larger task you are working on and why this tool helps it. Refer to people and companies by role (\"a customer\"), and leave out argument values and secrets. Use English. Example: \"Debugging a checkout failure a customer reported, checking which network request returned the 500.\""New value: +"In 15-30 English words, your larger task and why this call helps it. People by role (\"a customer\"); no argument values or secrets."
    • changedInput schema / properties / llm_model / description
      Previous value: -"The exact model identifier you are running as, from your system prompt or environment (e.g. \"claude-opus-4-8\", \"gpt-5.2\"). Pass \"unknown\" if you are not certain; never guess."New value: +"Your exact model id from your system prompt, or \"unknown\". Never guess."
  2. Changed2 schema fields changed
    • addedInput schema / properties / parentId
      Added value: +{
      +  "description": "The id of a top-level comment on this Jam to reply to.",
      +  "minLength": 1,
      +  "type": "string"
      +}
    • changedInput schema / properties / playbackRelativeTimestamp / description
      Previous value: -"Optional timestamp in milliseconds relative to the start of the media playback. When provided, the comment will be linked to that specific point in the video/replay."New value: +"Optional timestamp in milliseconds relative to the start of the media playback. When provided, the comment will be linked to that specific point in the video/replay. Ignored when parentId is provided."
  3. First observed

TDQS

A4.3/5.0
Behavior4/5

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

Adds real behavior beyond the annotations: email notifications to other users, visibility scoped to Jam access including public viewers, and the constraint that replies are one level deep and ignore playbackRelativeTimestamp. It does not describe what the call returns (e.g., the new comment id), which is the one notable gap.

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-loads the action, then threading rules, then use cases and side effects — a sensible ordering. The closing sentence on email notification and sharing visibility is slightly wordy but carries real information, so nothing is clearly wasteful.

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?

For a 6-parameter mutation tool with no output schema, the description covers scope, threading, mentions, and notification side effects well. The missing piece is the response shape — an agent cannot tell whether the created comment id is returned or must be re-fetched via getDetails.

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 baseline is 3, but the description adds genuine meaning: parentId must come from getDetails and must be a top-level comment id, and playbackRelativeTimestamp is silently ignored when parentId is set. That interaction is not expressible in the schema alone.

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 and resource ("Add a new comment to a Jam bug report") and immediately clarifies threading scope. The action is instantly distinguishable from siblings editComment, deleteComment, and addReaction without opening any schema.

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

Usage Guidelines4/5

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

Gives concrete use cases ("add notes, analysis results, or follow-up information") and routes the agent for threading: use parentId via getDetails, and listMembers for mention userIds. It does not explicitly contrast with editComment/deleteComment, so the "when not to use" side is only implied.

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.