list_mr_notes
Retrieve all comments and notes from a GitLab merge request to review discussions and track feedback.
Instructions
List all notes (comments) on a merge request
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | Project ID or path | |
| merge_request_iid | Yes | Merge request internal ID | |
| sort | No | Sort order (asc or desc) | desc |
| order_by | No | Field to order by | created_at |
| page | No | Page number for pagination (default: 1) | |
| per_page | No | Number of results per page (max 100) |
Implementation Reference
- src/handlers/merge-requests.ts:302-323 (handler)The main handler function that executes the tool logic: fetches MR notes from GitLab API using the provided parameters and returns JSON response.async listMRNotes(args: ListMRNotesParams) { const params = new URLSearchParams(); if (args.sort) params.append("sort", args.sort); if (args.order_by) params.append("order_by", args.order_by); if (args.page) params.append("page", String(args.page)); params.append("per_page", String(args.per_page || 20)); const data = await this.client.get( `/projects/${encodeURIComponent(args.project_id)}/merge_requests/${ args.merge_request_iid }/notes?${params.toString()}` ); return { content: [ { type: "text", text: JSON.stringify(data, null, 2), }, ], };
- src/tools/merge-requests.ts:298-339 (schema)Tool registration with input schema definition for validating parameters like project_id, merge_request_iid, sort, etc.{ name: 'list_mr_notes', description: 'List all notes (comments) on a merge request', inputSchema: { type: 'object', properties: { project_id: { type: 'string', description: 'Project ID or path', }, merge_request_iid: { type: 'number', description: 'Merge request internal ID', }, sort: { type: 'string', enum: ['asc', 'desc'], description: 'Sort order (asc or desc)', default: 'desc', }, order_by: { type: 'string', enum: ['created_at', 'updated_at'], description: 'Field to order by', default: 'created_at', }, page: { type: 'number', description: 'Page number for pagination (default: 1)', minimum: 1, default: 1, }, per_page: { type: 'number', description: 'Number of results per page (max 100)', maximum: 100, default: 20, }, }, required: ['project_id', 'merge_request_iid'], }, },
- src/server.ts:207-210 (registration)Server dispatch/registration that maps tool call to the handler method.case "list_mr_notes": return await this.mergeRequestHandlers.listMRNotes( args as unknown as ListMRNotesParams );
- src/types.ts:468-475 (schema)TypeScript interface defining the input parameters for the list_mr_notes tool.export interface ListMRNotesParams { project_id: string; merge_request_iid: number; sort?: 'asc' | 'desc'; order_by?: 'created_at' | 'updated_at'; page?: number; per_page?: number; }