esa_list_comments
Retrieve comments for a specific esa post by providing the post number, with options to paginate results for efficient comment management.
Instructions
Get a list of comments for a post
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| post_number | Yes | Post number to get comments for | |
| page | No | Page number to retrieve | |
| per_page | No | Number of results per page (default: 20, max: 100) |
Implementation Reference
- index.ts:525-538 (handler)Handler logic for the esa_list_comments tool. Validates arguments, calls esaClient.listComments, and returns the API response as JSON.case "esa_list_comments": { const args = request.params.arguments as unknown as ListCommentsArgs; if (!args.post_number) { throw new Error("post_number is required"); } const response = await esaClient.listComments( args.post_number, args.page, args.per_page ); return { content: [{ type: "text", text: JSON.stringify(response) }], }; }
- index.ts:226-249 (schema)Tool schema definition including name, description, and input schema for esa_list_comments.const listCommentsTool: Tool = { name: "esa_list_comments", description: "Get a list of comments for a post", inputSchema: { type: "object", properties: { post_number: { type: "number", description: "Post number to get comments for", }, page: { type: "number", description: "Page number to retrieve", default: 1, }, per_page: { type: "number", description: "Number of results per page (default: 20, max: 100)", default: 20, }, }, required: ["post_number"], }, };
- index.ts:389-399 (helper)EsaClient helper method that performs the HTTP request to the esa API to list comments for a given post.async listComments(post_number: number, page?: number, per_page?: number): Promise<any> { const params = new URLSearchParams(); if (page) params.append("page", page.toString()); if (per_page) params.append("per_page", per_page.toString()); const url = `${this.baseUrl}/posts/${post_number}/comments${params.toString() ? `?${params}` : ""}`; const response = await fetch(url, { headers: this.headers }); return response.json(); }
- index.ts:49-53 (schema)TypeScript interface defining the expected arguments for the esa_list_comments tool.interface ListCommentsArgs { post_number: number; page?: number; per_page?: number; }
- index.ts:607-619 (registration)Tool registration in the ListToolsRequest handler by including listCommentsTool in the returned tools list.tools: [ listPostsTool, getPostTool, createPostTool, updatePostTool, listCommentsTool, getCommentTool, createCommentTool, getMembersTool, getMemberTool, ], }; });