get_post_thread
Retrieve the complete thread of a specific Mattermost post, including author names and usernames for context.
Instructions
특정 게시물의 전체 스레드를 가져옵니다. 결과에는 자동으로 작성자의 이름(user_name)과 username이 포함됩니다.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| post_id | Yes | 게시물 ID |
Implementation Reference
- src/index.ts:594-627 (handler)The main handler for the "get_post_thread" tool within the CallToolRequestSchema switch statement. It extracts post_id, fetches the thread using client.getPostThread, enriches each post with user details (username, user_name) using getUsersInfo, formats timestamps to KST, and returns a JSON-formatted response.case "get_post_thread": { const postId = args.post_id as string; const thread = await client.getPostThread(postId); // 고유한 user_id 추출 및 사용자 정보 조회 const uniqueUserIds = [...new Set(thread.order?.map((postId: string) => thread.posts[postId].user_id) || [])]; const userMap = await client.getUsersInfo(uniqueUserIds); const posts = thread.order?.map((postId: string) => { const post = thread.posts[postId]; const createTime = formatTimestamp(post.create_at); const userInfo = userMap.get(post.user_id); return { id: post.id, message: post.message, user_id: post.user_id, username: userInfo?.username || "unknown", user_name: userInfo?.name || "Unknown User", create_at: createTime, }; }) || []; return { content: [ { type: "text", text: JSON.stringify({ posts: posts, }, null, 2), }, ], }; }
- src/index.ts:303-316 (registration)Registration of the "get_post_thread" tool in the tools list returned by the ListToolsRequestSchema handler. Includes name, description, and input schema.{ name: "get_post_thread", description: "특정 게시물의 전체 스레드를 가져옵니다. 결과에는 자동으로 작성자의 이름(user_name)과 username이 포함됩니다.", inputSchema: { type: "object", properties: { post_id: { type: "string", description: "게시물 ID", }, }, required: ["post_id"], }, },
- src/index.ts:155-157 (helper)MattermostClient helper method that performs the actual API request to fetch the post thread from the Mattermost server.async getPostThread(postId: string): Promise<MattermostPostsResult> { return await this.request(`/posts/${postId}/thread`) as MattermostPostsResult; }
- src/index.ts:32-35 (schema)TypeScript interface defining the structure of the post thread result returned by the Mattermost API.interface MattermostPostsResult { order: string[]; posts: Record<string, MattermostPost>; }