MCP server for interacting with your LINE Official Account
The LINE Bot MCP Server defines 13 tools with generally clear naming (verb_noun pattern: push_, broadcast_, get_, delete_, set_, cancel_, create_). Tool descriptions are present and moderately detailed (80-200 chars typical), addressing WHAT the tool does and broad use cases. However, schemas show significant gaps: most complex tools (push_flex_message, broadcast_flex_message, create_rich_menu) have incomplete input schema documentation, parameter descriptions are minimal or absent for nested structures. Error handling is basic (createErrorResponse/createSuccessResponse utility exists but no recovery guidance visible). Security is adequate (secrets injected via env vars, no creds in params), but permission checks and audit trails are not visible. Output schemas are not documented. The server follows the verb_noun naming convention well, but lacks the precision required for A-grade quality (detailed param constraints, format specifications, actionable error messages, documented output schemas).
Broadcast a highly customizable flex message via LINE to all users who have added your LINE Official Account. Supports both bubble (single container) and carousel (multiple swipeable bubbles) layouts. Please be aware that this message will be sent to all users.
Broadcast a simple text message via LINE to all users who have followed your LINE Official Account. Use this for sending plain text messages without formatting. Please be aware that this message will be sent to all users.
Cancel the default rich menu.
Create a rich menu based on the given actions. Generate and upload a rich menu image based on the given action. This rich menu will be registered as the default.
Delete a rich menu from your LINE Official Account.
Incomplete parameter documentation for complex nested schemas. push_flex_message and broadcast_flex_message accept 'message' object with 'A flex message object (bubble or carousel format)' description, lacks detail on required structure, valid fields, constraints, or when to use bubble vs carousel. LLMs cannot infer nested JSON structure from a one-line description.
Missing output schema documentation. No visible specification of what any tool returns. LLMs cannot plan downstream calls or extract field data without knowing the response structure. E.g., get_profile returns what fields? get_rich_menu_list returns how many items, in what order?
No error recovery guidance. createErrorResponse returns bare error text with no actionable next steps. E.g., if delete_rich_menu fails, the agent has no clue whether to retry, ask the user, or try a different tool.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | C | 69 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 41 | - | v1 |
Get a list of user IDs of users who have added the LINE Official Account as a friend. This allows you to obtain user IDs for sending messages without manually preparing them.
Get the group chat summary including group ID, group name, and group icon URL, using the group ID.
Get the message quota and consumption of the LINE Official Account. This shows the monthly message limit and current usage.
Get detailed profile information of a LINE user including display name, profile picture URL, status message and language.
Get a list of all rich menus created for your LINE Official Account.
Send a highly customizable flex message to a specified LINE user. Supports both bubble (single container) and carousel (multiple swipeable bubbles) layouts.
Send a simple text message to a specified LINE user. If no userId is provided, it uses the DESTINATION_USER_ID from environment variables.
Set a rich menu as the default rich menu for your LINE Official Account.
create_rich_menu 'actions' parameter lacks format specification. Accepts array with minItems=1, maxItems=6 but no description of action object structure, required fields, valid action types, or examples. LLMs will guess at the structure.
No permission gates or least-privilege scoping documented. Destructive tools (delete_rich_menu, broadcast_text_message, create_rich_menu) should declare required permissions (e.g., 'requires admin:richmenu') to enable least-privilege agent configuration.
Pagination not visible for list tools. get_rich_menu_list and get_follower_ids appear to support 'limit' and 'start'/'continuation token' but no documentation of total count, result limit cap, or when to stop iterating. Large result sets risk context window exhaustion.
No confirmation or dry-run support for irreversible operations. delete_rich_menu, cancel_rich_menu_default, and broadcast_* tools permanently modify state but offer no confirmation step to prevent agent mistakes.
Ambiguous userId parameter defaulting. push_text_message and get_profile describe userId as 'Defaults to DESTINATION_USER_ID' but do not specify: what happens if DESTINATION_USER_ID is empty? Does the call fail, silent-no-op, or use a fallback? LLMs need explicit behavior.