push_flex_message
Send customizable flex messages via LINE with bubble or carousel layouts to deliver rich, interactive content to users.
Instructions
Push a highly customizable flex message to a user via LINE. Supports both bubble (single container) and carousel (multiple swipeable bubbles) layouts.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| userId | No | The user ID to receive a message. Defaults to DESTINATION_USER_ID. | |
| message | Yes |
Implementation Reference
- src/tools/pushFlexMessage.ts:30-55 (handler)The handler implementation for the "push_flex_message" tool, which uses the LINE MessagingApiClient to send a Flex message.
server.tool( "push_flex_message", "Push a highly customizable flex message to a user via LINE. Supports both bubble (single container) and carousel " + "(multiple swipeable bubbles) layouts.", { userId: userIdSchema, message: flexMessageSchema, }, async ({ userId, message }) => { if (!userId) { return createErrorResponse(NO_USER_ID_ERROR); } try { const response = await this.client.pushMessage({ to: userId, messages: [message as unknown as messagingApi.Message], }); return createSuccessResponse(response); } catch (error) { return createErrorResponse( `Failed to push flex message: ${error.message}`, ); } }, ); - src/tools/pushFlexMessage.ts:22-56 (registration)Registration logic for the "push_flex_message" tool within the MCP server.
register(server: McpServer) { const userIdSchema = z .string() .default(this.destinationId) .describe( "The user ID to receive a message. Defaults to DESTINATION_USER_ID.", ); server.tool( "push_flex_message", "Push a highly customizable flex message to a user via LINE. Supports both bubble (single container) and carousel " + "(multiple swipeable bubbles) layouts.", { userId: userIdSchema, message: flexMessageSchema, }, async ({ userId, message }) => { if (!userId) { return createErrorResponse(NO_USER_ID_ERROR); } try { const response = await this.client.pushMessage({ to: userId, messages: [message as unknown as messagingApi.Message], }); return createSuccessResponse(response); } catch (error) { return createErrorResponse( `Failed to push flex message: ${error.message}`, ); } }, ); }