{"passport":{"unfragile":{"@version":"1.0","version":"2026-05","artifact":{"id":"awesome-line-official-account","slug":"line-official-account","name":"LINE Official Account","type":"mcp","url":"https://github.com/line/line-bot-mcp-server","page_url":"https://unfragile.ai/line-official-account","categories":["mcp-servers"],"tags":[],"pricing":{"model":"open_source","free":true,"starting_price":null},"status":"active","verified":false},"capabilities":[{"id":"awesome-line-official-account__cap_0","uri":"capability://tool.use.integration.mcp.to.line.messaging.api.translation.layer","name":"mcp-to-line messaging api translation layer","description":"Implements a bidirectional protocol adapter that translates Model Context Protocol tool calls from AI agents (like Claude) into LINE Messaging API requests using the @line/bot-sdk. The server uses StdioServerTransport for stdio-based communication with the AI agent and converts structured MCP tool invocations into authenticated LINE API calls, handling schema validation via Zod before transmission.","intents":["Connect an AI agent running locally or in the cloud to a LINE Official Account without writing custom API integration code","Enable Claude or other MCP-compatible agents to send messages to LINE users through a standardized protocol","Abstract away LINE Messaging API authentication and request formatting details from the AI agent"],"best_for":["AI agent developers building LINE-integrated chatbots","Teams deploying Claude or other MCP-compatible LLMs to LINE messaging","Developers wanting to avoid direct LINE API management in agent code"],"limitations":["Currently unidirectional communication only — agents cannot receive webhook events or user messages from LINE","Requires Node.js v20+ runtime; no Python or Go implementations available","StdioServerTransport adds latency for each tool call round-trip between agent and server","No built-in message queuing or retry logic — failures are synchronous and must be handled by the agent"],"requires":["Node.js v20 or later","LINE Channel Access Token (CHANNEL_ACCESS_TOKEN environment variable)","AI agent with MCP client support (e.g., Claude via MCP configuration)","@modelcontextprotocol/sdk and @line/bot-sdk npm packages"],"input_types":["MCP tool call JSON with structured parameters","User ID strings (optional, defaults to DESTINATION_USER_ID env var)"],"output_types":["LINE Messaging API HTTP responses (success/error status)","MCP tool result JSON with message IDs or error details"],"categories":["tool-use-integration","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"awesome-line-official-account__cap_1","uri":"capability://tool.use.integration.targeted.text.message.delivery.to.individual.users","name":"targeted text message delivery to individual users","description":"Implements the push_text_message tool that sends plain-text messages to a specific LINE user by user ID. The tool accepts a message.text parameter and optional user_id, validates input via Zod schema, and invokes the LINE Bot SDK's client.pushMessage() method with the user ID and text message object, returning the LINE API response with message metadata.","intents":["Send a simple text response from an AI agent to a specific LINE user without formatting overhead","Deliver notifications or alerts to individual users identified by their LINE user ID","Enable agents to send follow-up messages to users in a conversation thread"],"best_for":["Simple chatbot interactions requiring plain-text responses","Notification systems where rich formatting is unnecessary","Agents needing low-latency message delivery without Flex message overhead"],"limitations":["Text-only — no support for images, buttons, or interactive elements","Requires explicit user_id or DESTINATION_USER_ID environment variable; no broadcast capability","LINE API rate limits apply (typically 100 requests per second per channel)","No message persistence or delivery confirmation beyond LINE API response"],"requires":["Valid LINE Channel Access Token","Target user's LINE user ID (obtained from webhook events or get_profile tool)","Message text string (required parameter)"],"input_types":["JSON object with message.text (string) and optional user_id (string)"],"output_types":["JSON object with LINE API response including message ID and timestamp"],"categories":["tool-use-integration","text-generation-language"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"awesome-line-official-account__cap_2","uri":"capability://tool.use.integration.rich.interactive.message.delivery.via.flex.messages","name":"rich interactive message delivery via flex messages","description":"Implements push_flex_message and broadcast_flex_message tools that send LINE's Flex Message format (JSON-based rich messages with buttons, carousels, and interactive components) to individual users or all followers. The tools accept message.altText (fallback text), message.content or message.contents (Flex message JSON structure), validate via Zod, and invoke the LINE Bot SDK's pushMessage() or broadcastMessage() methods with the Flex message object.","intents":["Send interactive menus, product catalogs, or decision trees to LINE users with buttons and formatted layouts","Deliver rich notifications with images, titles, and call-to-action buttons","Broadcast promotional messages or announcements to all followers with consistent formatting"],"best_for":["E-commerce bots displaying product catalogs with purchase buttons","Customer service agents offering structured menu options","Marketing automation sending formatted promotional content to large audiences"],"limitations":["Flex message JSON structure is complex and error-prone; agents must construct valid Flex message objects or use templates","broadcast_flex_message sends to ALL followers indiscriminately — no segmentation or targeting","Flex message rendering varies across LINE clients (mobile, desktop, web); agents cannot guarantee visual consistency","No built-in template library or Flex message builder — agents must manually construct JSON or use external tools"],"requires":["Valid LINE Channel Access Token","Flex message JSON conforming to LINE's Flex Message specification","altText parameter (required for accessibility and fallback on older LINE clients)","For push_flex_message: target user_id"],"input_types":["JSON object with message.altText (string), message.content or message.contents (Flex message JSON structure)"],"output_types":["JSON object with LINE API response including message ID"],"categories":["tool-use-integration","text-generation-language"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"awesome-line-official-account__cap_3","uri":"capability://tool.use.integration.broadcast.text.messaging.to.all.followers","name":"broadcast text messaging to all followers","description":"Implements the broadcast_text_message tool that sends a plain-text message to all followers of a LINE Official Account without requiring individual user IDs. The tool accepts message.text, validates via Zod, and invokes the LINE Bot SDK's broadcastMessage() method, which distributes the message to the entire follower base in a single API call.","intents":["Send announcements or alerts to all LINE followers simultaneously","Deliver system-wide notifications or status updates without managing user lists","Conduct mass outreach campaigns with minimal agent-side complexity"],"best_for":["Announcement systems requiring one-to-many messaging","Status update bots notifying all subscribers of changes","Marketing automation for non-segmented campaigns"],"limitations":["No targeting or segmentation — message goes to ALL followers regardless of preferences or user attributes","Text-only format — no rich formatting, images, or interactive elements","Broadcast API has strict rate limits (typically 1 request per second per channel) to prevent spam","No delivery confirmation per user — only aggregate API response indicating broadcast was queued","Cannot exclude specific users or filter by criteria"],"requires":["Valid LINE Channel Access Token","Message text string (required parameter)","LINE Official Account with active followers"],"input_types":["JSON object with message.text (string)"],"output_types":["JSON object with LINE API response indicating broadcast was queued"],"categories":["tool-use-integration","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"awesome-line-official-account__cap_4","uri":"capability://tool.use.integration.user.profile.retrieval.and.caching","name":"user profile retrieval and caching","description":"Implements the get_profile tool that retrieves a LINE user's profile information (display name, profile picture URL, status message) by user ID. The tool invokes the LINE Bot SDK's getProfile() method, which queries LINE's user profile API and returns structured profile data. The server does not implement caching, so repeated calls for the same user incur API latency.","intents":["Retrieve a user's display name to personalize agent responses","Fetch a user's profile picture URL for display in agent-generated content","Access user status messages or other profile metadata for context-aware interactions"],"best_for":["Personalization systems that need user names or profile pictures","Customer service agents verifying user identity before processing requests","Analytics or logging systems capturing user metadata alongside messages"],"limitations":["No built-in caching — each call incurs a round-trip to LINE's API (~100-300ms latency)","Returns only basic profile fields (name, picture, status); no custom user attributes or metadata","Requires valid user_id; cannot search users by name or other criteria","Profile data may be stale if user recently updated their profile","LINE API rate limits apply; excessive calls may trigger throttling"],"requires":["Valid LINE Channel Access Token","Target user's LINE user ID (string)"],"input_types":["JSON object with optional user_id (string); defaults to DESTINATION_USER_ID env var if omitted"],"output_types":["JSON object with displayName (string), pictureUrl (string), statusMessage (string)"],"categories":["tool-use-integration","data-processing-analysis"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"awesome-line-official-account__cap_5","uri":"capability://automation.workflow.environment.based.default.user.targeting","name":"environment-based default user targeting","description":"Implements optional DESTINATION_USER_ID environment variable that serves as a fallback user ID when push_text_message or get_profile tools are invoked without an explicit user_id parameter. The server reads this variable at startup and uses it as the default target for message delivery, reducing boilerplate in agent configurations where a single primary user is the primary recipient.","intents":["Configure a default recipient for messages without modifying agent code","Simplify agent tool calls by omitting user_id when targeting a known user","Enable environment-based configuration for different deployment targets (dev, staging, prod)"],"best_for":["Single-user testing or development scenarios","Agents with a primary user recipient and occasional secondary recipients","Environment-based configuration patterns where user IDs vary by deployment"],"limitations":["Only applies to push_text_message and get_profile; broadcast tools ignore this setting","No fallback chain or user list — only a single default user ID","If DESTINATION_USER_ID is not set and user_id is omitted from a tool call, the tool will fail","No validation that the user ID is valid until the tool is invoked"],"requires":["DESTINATION_USER_ID environment variable (optional but recommended for single-user setups)"],"input_types":["Environment variable string"],"output_types":["User ID string used as default in tool invocations"],"categories":["automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"awesome-line-official-account__cap_6","uri":"capability://safety.moderation.zod.based.input.validation.and.schema.enforcement","name":"zod-based input validation and schema enforcement","description":"Integrates Zod schema validation library to validate all tool parameters (message text, user IDs, Flex message structures) before invoking LINE Messaging API calls. The server defines Zod schemas for each tool's input, validates incoming MCP tool calls against these schemas, and returns validation errors to the agent if parameters are malformed or missing required fields.","intents":["Prevent malformed requests from reaching the LINE API, reducing error rates and API quota waste","Provide agents with clear validation error messages indicating which parameters are invalid","Enforce consistent parameter types and formats across all tools"],"best_for":["Production deployments where API quota and error rates matter","Agents generating tool parameters dynamically and needing early validation feedback","Teams requiring strict input validation before external API calls"],"limitations":["Validation adds ~5-10ms latency per tool call","Zod error messages may be verbose or technical; agents must parse and interpret them","Schemas are defined server-side; agents cannot introspect or negotiate schema changes at runtime","No custom validation logic beyond Zod's built-in validators (e.g., no regex patterns for user IDs)"],"requires":["Zod npm package (included in dependencies)","Valid parameter types matching Zod schema definitions"],"input_types":["JSON objects with tool parameters"],"output_types":["Validation success (tool execution proceeds) or validation error JSON with field-level error details"],"categories":["safety-moderation","tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"awesome-line-official-account__cap_7","uri":"capability://automation.workflow.docker.based.deployment.packaging","name":"docker-based deployment packaging","description":"Provides a Dockerfile and Docker Compose configuration enabling the LINE Bot MCP Server to be containerized and deployed in Docker environments without requiring Node.js installation on the host. The Docker image includes Node.js v20+, installs dependencies via npm, and exposes the server via stdio for MCP client communication.","intents":["Deploy the server in containerized environments (Kubernetes, Docker Compose, cloud container services)","Isolate the server's runtime dependencies from the host system","Enable reproducible deployments across development, staging, and production environments"],"best_for":["Teams using Kubernetes or Docker Compose for orchestration","Cloud deployments (AWS ECS, Google Cloud Run, Azure Container Instances)","CI/CD pipelines requiring containerized services"],"limitations":["Docker adds ~500ms startup latency compared to native Node.js execution","Requires Docker daemon running; not suitable for serverless environments (Lambda, Cloud Functions)","Image size is ~300-400MB due to Node.js runtime; not optimized for minimal footprint","Stdio-based communication requires the MCP client to be configured to communicate with the container via stdin/stdout, not HTTP"],"requires":["Docker v20+ installed on the host","Docker Compose (optional, for multi-container setups)","LINE Channel Access Token passed as environment variable to the container"],"input_types":["Dockerfile and docker-compose.yml configuration files"],"output_types":["Docker image with Node.js and server dependencies installed"],"categories":["automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"awesome-line-official-account__cap_8","uri":"capability://tool.use.integration.mcp.server.lifecycle.management.via.stdioservertransport","name":"mcp server lifecycle management via stdioservertransport","description":"Implements the Model Context Protocol server lifecycle using @modelcontextprotocol/sdk's StdioServerTransport, which manages stdio-based bidirectional communication between the MCP server and MCP client (AI agent). The server initializes the MCP server, registers all tools (push_text_message, push_flex_message, etc.), and handles incoming tool calls from the agent via stdin, returning results via stdout.","intents":["Establish a persistent stdio-based communication channel between an AI agent and the LINE server","Register MCP tools in a standardized format that agents can discover and invoke","Handle tool call routing and result serialization without manual JSON parsing"],"best_for":["AI agents with native MCP client support (Claude, custom agents using @modelcontextprotocol/sdk)","Deployments where stdio communication is preferred over HTTP (local development, containerized environments)","Teams building agent-centric architectures where tools are first-class abstractions"],"limitations":["Stdio-based communication is synchronous and blocking; tool calls cannot be pipelined or parallelized","No built-in persistence or logging of tool calls; agents must implement their own audit trails","StdioServerTransport requires the MCP client to be a subprocess or connected via pipe; not suitable for remote agents over the network","Tool call latency includes serialization/deserialization overhead (~10-20ms per call)"],"requires":["@modelcontextprotocol/sdk npm package","MCP client implementation (e.g., Claude with MCP configuration)","Node.js v20+"],"input_types":["MCP protocol messages (JSON) via stdin"],"output_types":["MCP protocol messages (JSON) via stdout"],"categories":["tool-use-integration","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"awesome-line-official-account__cap_9","uri":"capability://tool.use.integration.tool.discovery.and.schema.advertisement.via.mcp","name":"tool discovery and schema advertisement via mcp","description":"Implements MCP's tool discovery mechanism by registering all available tools (push_text_message, push_flex_message, broadcast_text_message, broadcast_flex_message, get_profile) with the MCP server and advertising their schemas (parameter names, types, descriptions) to the MCP client. The client uses this schema information to understand which tools are available and how to invoke them with correct parameters.","intents":["Enable AI agents to discover available LINE messaging tools without hardcoding tool names or parameters","Provide agents with schema information to validate tool parameters before invocation","Allow agents to generate tool calls dynamically based on advertised schemas"],"best_for":["Agents that support dynamic tool discovery (Claude with MCP, custom agents using @modelcontextprotocol/sdk)","Deployments where tool availability may change and agents need to adapt","Teams building agent-centric systems where tools are discovered at runtime"],"limitations":["Tool schemas are static and defined at server startup; no dynamic schema updates without server restart","Agents must implement schema parsing logic to understand and use advertised tools","Schema descriptions are text-based; no structured documentation or examples embedded in schemas","No versioning mechanism for tool schemas; breaking changes require server restart"],"requires":["@modelcontextprotocol/sdk npm package","MCP client with tool discovery support"],"input_types":["Tool schema definitions (name, description, input schema)"],"output_types":["MCP tool list message with schema information"],"categories":["tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0}],"trust":{"score":27,"verified":false,"data_access_risk":"moderate","permissions":["Node.js v20 or later","LINE Channel Access Token (CHANNEL_ACCESS_TOKEN environment variable)","AI agent with MCP client support (e.g., Claude via MCP configuration)","@modelcontextprotocol/sdk and @line/bot-sdk npm packages","Valid LINE Channel Access Token","Target user's LINE user ID (obtained from webhook events or get_profile tool)","Message text string (required parameter)","Flex message JSON conforming to LINE's Flex Message specification","altText parameter (required for accessibility and fallback on older LINE clients)","For push_flex_message: target user_id"],"failure_modes":["Currently unidirectional communication only — agents cannot receive webhook events or user messages from LINE","Requires Node.js v20+ runtime; no Python or Go implementations available","StdioServerTransport adds latency for each tool call round-trip between agent and server","No built-in message queuing or retry logic — failures are synchronous and must be handled by the agent","Text-only — no support for images, buttons, or interactive elements","Requires explicit user_id or DESTINATION_USER_ID environment variable; no broadcast capability","LINE API rate limits apply (typically 100 requests per second per channel)","No message persistence or delivery confirmation beyond LINE API response","Flex message JSON structure is complex and error-prone; agents must construct valid Flex message objects or use templates","broadcast_flex_message sends to ALL followers indiscriminately — no segmentation or targeting","builder identity is not verified yet","no observed match outcomes yet"],"rank_breakdown":{"adoption":0.05,"quality":0.3,"ecosystem":0.39999999999999997,"match_graph":0.25,"freshness":0.52,"weights":{"adoption":0.25,"quality":0.25,"ecosystem":0.15,"match_graph":0.23,"freshness":0.12}},"observed_outcomes":{"matches":0,"success_rate":0,"avg_confidence":0,"top_intents":[],"last_matched_at":null},"maintenance":{"status":"active","updated_at":"2026-06-17T09:51:03.577Z","last_scraped_at":"2026-05-03T14:00:15.503Z","last_commit":null},"community":{"stars":null,"forks":null,"weekly_downloads":null,"model_downloads":null,"model_likes":null}},"distribution":{"claim_url":"https://unfragile.ai/submit?claim=line-official-account","compare_url":"https://unfragile.ai/compare?artifact=line-official-account"}},"signature":"5YrIFv19Fab56vNQYw7tjJZVSTtofP3XKl4mQTogOrykL/q25mQ5OS+4Cudqgsv6DtkSx9XMErw8G6sniH7eDA==","signedAt":"2026-06-23T04:21:13.287Z","signedBy":"unfragile.ai","version":1},"_links":{"self":"https://unfragile.ai/api/v1/passport/line-official-account","artifact":"https://unfragile.ai/line-official-account","verify":"https://unfragile.ai/api/v1/verify?slug=line-official-account","publicKey":"https://unfragile.ai/api/v1/trust-passport-public-key","spec":"https://unfragile.ai/trust","schema":"https://unfragile.ai/schema.json","docs":"https://unfragile.ai/docs"}}