get_post
Retrieve a specific post from a Band group by providing the band identifier and post identifier. This tool accesses Band API data to fetch individual posts for viewing or processing.
Instructions
Get a single post from BAND.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| band_key | Yes | band identifier | |
| post_key | Yes | post identifier |
Implementation Reference
- src/post/tool.ts:173-184 (handler)The core handler function for the 'get_post' tool. It takes band_key and post_key, fetches the post data from the BAND API using bandApiClient, and returns the result as a JSON-formatted text content block.export async function handleToolCall(band_key: string, post_key: string) { const postData = await bandApiClient.get<PostResponse>( '/v2/band/post', { band_key, post_key } ); return { content: [{ type: "text", text: JSON.stringify(postData, null, 2) }] }; }
- src/post/tool.ts:8-140 (schema)The ToolDefinition export defining the 'get_post' tool's name, description, input schema (band_key and post_key required), and comprehensive output schema matching the BAND API response structure.export const ToolDefinition : Tool = { name: "get_post", description: "Get a single post from BAND.", inputSchema: { type: "object", properties: { band_key: { type: "string", title: "Band Key", description: "band identifier" }, post_key: { type: "string", title: "Post Key", description: "post identifier" } }, required: ["band_key", "post_key"] }, outputSchema: { type: "object", properties: { result_code: { type: "number", description: "Result code" }, result_data: { type: "object", description: "Result data", properties: { content: { type: "string", description: "post content" }, post_key: { type: "string", description: "post identifier" }, created_at: { type: "number", description: "created time" }, photos: { type: "array", description: "post photos", items: { type: "object", properties: { width: { type: "number", description: "photo width" }, height: { type: "number", description: "photo height" }, photo_key: { type: "string", description: "photo identifier" }, photo_album_key: { type: ["string", "null"], description: "photo album identifier" }, author: { type: "object", description: "photo author", properties: { name: { type: "string", description: "author name" }, description: { type: "string", description: "author description" }, profile_image_url: { type: "string", description: "author profile image url" } } }, url: { type: "string", description: "photo url" }, comment_count: { type: "number", description: "photo comment count" }, emotion_count: { type: "number", description: "photo emotion count" }, created_at: { type: "number", description: "photo created time" }, is_video_thumbnail: { type: "boolean", description: "is video thumbnail" } } } }, comment_count: { type: "number", description: "post comment count" }, author: { type: "object", description: "post author", properties: { name: { type: "string", description: "author name" }, description: { type: "string", description: "author description" }, profile_image_url: { type: "string", description: "author profile image url" } } } } } }, required: ["result_code", "result_data"] } };
- src/tools.ts:15-28 (registration)Registration of the 'get_post' tool (as post.ToolDefinition) in the central bandTools array exported for MCP tool listing.export const bandTools: Tool[] = [ profile.ToolDefinition, bands.ToolDefinition, posts.ToolDefinition, post.ToolDefinition, comments.ToolDefinition, permissions.ToolDefinition, albums.ToolDefinition, photos.ToolDefinition, writeComment.ToolDefinition, writePost.ToolDefinition, removePost.ToolDefinition, removeComment.ToolDefinition, ];
- src/tools.ts:46-47 (registration)Routing logic in the main handleToolCall function that dispatches 'get_post' calls to the specific post.handleToolCall with parsed arguments.case "get_post": return post.handleToolCall(a.band_key as string, a.post_key as string);
- src/post/index.ts:1-5 (helper)Index file re-exporting ToolDefinition and handleToolCall from tool.ts for convenient import in src/tools.ts.import {ToolDefinition, handleToolCall} from "./tool.js"; const post = {ToolDefinition, handleToolCall} export default post;