Skip to main content
Glama

create_review_comment

Start a new discussion thread in GitLab merge requests to provide feedback, ask questions, or collaborate on code changes during the review process.

Instructions

Create a new discussion thread in a merge request review

Input Schema

NameRequiredDescriptionDefault
merge_request_iidYesInternal ID of the merge request
bodyYesContent of the new discussion comment

Input Schema (JSON Schema)

{ "properties": { "body": { "description": "Content of the new discussion comment", "type": "string" }, "merge_request_iid": { "description": "Internal ID of the merge request", "minimum": 1, "type": "integer" } }, "required": [ "merge_request_iid", "body" ], "type": "object" }

Implementation Reference

  • The core handler function that executes the create_review_comment tool logic by calling GitLab API to create a new merge request discussion.
    async def create_review_comment(gitlab_url, project_id, access_token, args): """Create a new discussion thread in a merge request review""" logging.info(f"create_review_comment called with args: {args}") mr_iid = args["merge_request_iid"] comment_body = args["body"] try: status, response_data, error_text = await create_merge_request_discussion( gitlab_url, project_id, access_token, mr_iid, comment_body ) if status == 201: author_name = response_data.get("author", {}).get("name", "Unknown") discussion_id = response_data.get("id", "unknown") result = "✅ **New discussion created!**\n\n" result += f"**Merge Request**: !{mr_iid}\n" result += f"**Discussion ID**: `{discussion_id}`\n" result += f"**Author**: {author_name}\n" result += f"**Comment**: {comment_body[:100]}{'...' if len(comment_body) > 100 else ''}\n" return [TextContent(type="text", text=result)] else: error_msg = "❌ **Error creating discussion**\n\n" error_msg += f"**Status**: {status}\n" error_msg += f"**Error**: {error_text}\n" error_msg += f"**MR**: !{mr_iid}\n" return [TextContent(type="text", text=error_msg)] except Exception as e: logging.error(f"Unexpected error in create_review_comment: {e}") error_result = "❌ **Unexpected error**\n\n" error_result += f"**Error**: {str(e)}\n" error_result += f"**MR**: !{mr_iid}\n" return [TextContent(type="text", text=error_result)]
  • Defines the input schema and metadata for the create_review_comment tool, registered in list_tools().
    Tool( name="create_review_comment", description=("Create a new discussion thread in a " "merge request review"), inputSchema={ "type": "object", "properties": { "merge_request_iid": { "type": "integer", "minimum": 1, "description": ("Internal ID of the merge request"), }, "body": {"type": "string", "description": ("Content of the new discussion comment")}, }, "required": ["merge_request_iid", "body"], "additionalProperties": False, }, ),
  • main.py:335-338 (registration)
    Dispatches calls to the create_review_comment handler in the call_tool method.
    elif name == "create_review_comment": return await create_review_comment( self.config["gitlab_url"], self.config["project_id"], self.config["access_token"], arguments )
  • Imports the create_review_comment function for exposure in the tools package.
    from .reply_to_review_comment import create_review_comment, reply_to_review_comment, resolve_review_discussion
  • main.py:14-14 (registration)
    Imports the create_review_comment function from tools module.
    create_review_comment,

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/amirsina-mandegari/gitlab-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server