/ Annuaire / Playground / LINE Bot
● Officiel line 🔑 Nécessite votre clé

LINE Bot

par line · line/line-bot-mcp-server

Envoyez des messages LINE, des bulles Flex riches et des images aux utilisateurs ou aux groupes via l'API LINE Messaging — idéal pour les flux de notifications JP/TW/TH.

Le MCP officiel de LINE encapsule l'API LINE Messaging. Envoyez du texte, des autocollants, des images et des bulles Flex Message à un utilisateur par userId ou à un groupe/room par leur id. Comprend la diffusion (à tous les followers), la diffusion ciblée (segment) et les recherches de profil. Les frais de message s'appliquent au-delà du quota gratuit.

Pourquoi l'utiliser

Fonctionnalités clés

Démo en direct

Aperçu en pratique

line-bot.replay ▶ prêt
0/0

Installer

Choisissez votre client

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "line-bot": {
      "command": "npx",
      "args": [
        "-y",
        "@line/line-bot-mcp-server"
      ]
    }
  }
}

Ouvrez Claude Desktop → Settings → Developer → Edit Config. Redémarrez après avoir enregistré.

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "line-bot": {
      "command": "npx",
      "args": [
        "-y",
        "@line/line-bot-mcp-server"
      ]
    }
  }
}

Cursor utilise le même schéma mcpServers que Claude Desktop. La config projet l'emporte sur la globale.

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "line-bot": {
      "command": "npx",
      "args": [
        "-y",
        "@line/line-bot-mcp-server"
      ]
    }
  }
}

Cliquez sur l'icône MCP Servers dans la barre latérale Cline, puis "Edit Configuration".

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "line-bot": {
      "command": "npx",
      "args": [
        "-y",
        "@line/line-bot-mcp-server"
      ]
    }
  }
}

Même format que Claude Desktop. Redémarrez Windsurf pour appliquer.

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "line-bot",
      "command": "npx",
      "args": [
        "-y",
        "@line/line-bot-mcp-server"
      ]
    }
  ]
}

Continue utilise un tableau d'objets serveur plutôt qu'une map.

~/.config/zed/settings.json
{
  "context_servers": {
    "line-bot": {
      "command": {
        "path": "npx",
        "args": [
          "-y",
          "@line/line-bot-mcp-server"
        ]
      }
    }
  }
}

Ajoutez dans context_servers. Zed recharge à chaud à la sauvegarde.

claude mcp add line-bot -- npx -y @line/line-bot-mcp-server

Une seule ligne. Vérifiez avec claude mcp list. Supprimez avec claude mcp remove.

Cas d'usage

Usages concrets : LINE Bot

Envoyer une alerte ops formatée à un ingénieur on-call via LINE

👤 Équipes SRE basées au JP/TW où LINE est le pageur standard ⏱ ~25 min intermediate

Quand l'utiliser : Vous voulez que les alertes Sentry/Prometheus avertissent des ingénieurs spécifiques sur LINE avec une belle carte Flex, pas un mur de texte.

Prérequis
  • Compte LINE Official Account + jeton d'accès au canal — developers.line.biz → Canal → API Messaging → Émettre le jeton
  • Le userId de l'ingénieur (à partir des événements webhook de votre bot) — Capturez userId à partir d'un événement follow ou message ; stockez-le dans votre base de données utilisateur
Déroulement
  1. Concevoir la bulle Flex
    Concevez un message Flex bubble pour une alerte Sentry : en-tête (titre du problème), corps (nombre d'événements, version, utilisateurs affectés), boutons (Ouvrir dans Sentry, Ack).✓ Copié
    → JSON Flex valide que Claude peut valider
  2. Envoyer à l'utilisateur on-call
    Envoyez ce message Flex à userId U1234567890abcdef avec altText 'Sentry alert: <title>'.✓ Copié
    → messageId renvoyé, pas de 400
  3. Gérer le fallback si l'utilisateur a bloqué le bot
    Si l'envoi échoue avec 400 (utilisateur bloqué), envoyer en multicast aux userId on-call secondaires à la place et enregistrez l'échec original.✓ Copié
    → Chemin de secours correct

Résultat : Une alerte soignée et exploitable dans LINE dans les 2 secondes suivant l'événement sous-jacent.

Pièges
  • altText requis et limité à 400 caractères — les envois échouent silencieusement sans cela — Incluez toujours altText ; gardez-le sous 400 caractères en résumant le Flex
  • L'envoi sans que l'utilisateur soit ami du bot échoue avec 400 — Envoyez uniquement aux userId que vous avez capturés à partir d'un événement webhook réel — vous ne pouvez pas les deviner
Combiner avec : sentry

Diffuser une mise à jour mensuelle du produit à tous les followers

👤 Équipes marketing avec une présence LINE OA ⏱ ~20 min intermediate

Quand l'utiliser : Une fois par mois, vous envoyez un résumé à tous les followers avec 3 éléments phares et des liens profonds.

Prérequis
  • Quota de messagerie suffisant — Vérifiez le quota actuel avec getMessageQuota ; les messages LINE Push sont facturés par plan
Déroulement
  1. Vérifier le quota avant d'envoyer
    Obtenez la consommation de quota de message actuelle et la consommation restante. Confirmez que nous avons au moins <follower_count> messages restants.✓ Copié
    → Numéro de quota restant
  2. Composer un carrousel Flex
    Construisez un carrousel Flex avec 3 bulles (titre, image, bouton CTA). Entrées: [sujet, URL d'image, lien] × 3.✓ Copié
    → JSON de carrousel Flex valide
  3. Diffusion
    Diffusez ce carrousel à tous les followers avec altText '<brand> monthly update'.✓ Copié
    → 200 OK, requestId pour audit

Résultat : Une diffusion mensuelle de marque à toute la base de followers avec suivi des clics via vos liens de redirection.

Pièges
  • Les diffusions sont coûteuses — une grande liste peut épuiser le niveau gratuit en un envoi — Pour le contenu non urgent, envisagez une diffusion ciblée avec un segment ; ou mettez à niveau le plan avant d'envoyer

Permettre à Claude de publier un résumé de standup dans un groupe LINE d'équipe

👤 Équipes où le standup quotidien se fait dans un groupe LINE ⏱ ~20 min intermediate

Quand l'utiliser : Chaque matin à 9, résumez l'activité Linear/Sentry d'hier et publiez un court résumé.

Prérequis
  • groupId du chat cible — Capturez à partir d'un événement join ou message quand le bot est ajouté au groupe
Déroulement
  1. Assembler le résumé en amont
    Tirez les PR fusionnées Linear d'hier et les nouveaux problèmes Sentry les plus importants. Résumez en 5 puces.✓ Copié
    → Markdown propre avec 5 puces
  2. Envoyer au groupe
    Envoyez un message texte (sans markdown ; LINE ne rend pas le markdown) à groupId Cxxxxx avec les 5 puces en lignes simples.✓ Copié
    → 200 OK
  3. Reconnaître les défaillances bruyamment
    Si l'envoi échoue (bot a été retiré du groupe), écrivez l'échec dans /logs/line-standup.log et notifiez-moi par email.✓ Copié
    → Piste d'audit en cas d'échec

Résultat : Un résumé de standup quotidien fiable qui s'auto-guérit silencieusement et vous alerte en cas de défaillance.

Pièges
  • Bot retiré du groupe échoue silencieusement l'envoi — S'abonnez aux événements webhook leave et marquez le groupe comme inactif dans votre BD
  • Les messages texte LINE ne rendent pas Markdown ou HTML — Utilisez du texte simple avec emoji, ou passez à un message Flex pour un formatage riche
Combiner avec : sentry · linear

Diffusion ciblée d'une campagne à un segment géographique ou comportemental

👤 Équipes de croissance exécutant des pushes ciblés ⏱ ~20 min advanced

Quand l'utiliser : Vous voulez avertir uniquement les followers de la région de Tokyo sur un événement en personne, pas votre liste entière.

Prérequis
  • Audience définie dans LINE Official Account Manager — Créez une audience (géographique, balise ou liste userId téléchargée) dans l'interface utilisateur du gestionnaire OA
Déroulement
  1. Lister les audiences
    Listez tous les audiences sur notre OA LINE. Affichez le nom, la taille, la dernière mise à jour.✓ Copié
    → Catalogue d'audience
  2. Composer un message spécifique au segment
    Construisez une carte Flex pour la réunion de Tokyo — lieu, date, CTA. Adaptez le texte pour les utilisateurs de la région de Tokyo.✓ Copié
    → JSON Flex ciblé
  3. Diffusion ciblée
    Diffusez ce Flex à audienceId <id>. Confirmez que la demande a été acceptée.✓ Copié
    → 202 Accepted + requestId

Résultat : Campagnes de précision avec coût inférieur par impression et taux de clics supérieur.

Pièges
  • Diffusion ciblée à audience < 50 échoue pour des raisons de confidentialité — Si le segment est minuscule, basculez vers l'envoi individuel à la liste utilisateur à la place

Combinaisons

Associez-le à d'autres MCPs pour un effet X10

line-bot + sentry

Pousser automatiquement une alerte Flex au on-call quand un problème critique Sentry apparaît

Quand un nouveau problème Sentry dans le projet web-prod dépasse 100 événements en 5 minutes, envoyez une alerte Flex à l'utilisateur LINE on-call.✓ Copié
line-bot + linear

Notifier un groupe LINE quand un problème Linear P0 est créé

Quand un problème Linear est étiqueté P0, envoyez un message texte à groupId Cxxxx avec le titre et l'URL.✓ Copié
line-bot + monday

Envoyer un résumé quotidien des éléments monday.com dus aujourd'hui

Chaque matin à 9am, rassemblez mes éléments monday.com dus aujourd'hui, formatez-les en carrousel Flex, envoyez à mon utilisateur LINE.✓ Copié

Outils

Ce que ce MCP expose

OutilEntréesQuand appelerCoût
push_message to: userId|groupId|roomId, messages: Message[] Envoyez à un id destinataire connu 1 frais de message
multicast to: userId[], messages: Message[] Même message à <=500 utilisateurs spécifiques 1 frais par destinataire
broadcast messages: Message[] Diffusion à tous les followers ; confirmez le quota d'abord 1 frais par follower
narrowcast messages, recipient (audience object), filter? Envois ciblés par audience 1 frais par destinataire
get_profile userId Personnalisez un message avec le nom d'affichage de l'utilisateur gratuit
get_message_quota Avant toute diffusion/diffusion ciblée gratuit

Coût et limites

Coût d'exécution

Quota d'API
L'API LINE est facturée en messages, pas en requêtes. Niveau gratuit : 500 messages push gratuits/mois (essai développeur) ou 200/mois (plan léger).
Tokens par appel
Message texte : ~200 jetons de demande. Message Flex : 500–2000 jetons selon la complexité de la bulle.
Monétaire
Plan léger gratuit (200 msg/mo), Standard ¥5,000/mo (jusqu'à 30k msg), Pro ¥15,000/mo (45k+).
Astuce
Utilisez reply_message autant que possible — les réponses sont GRATUITES. Envoyez uniquement quand vous n'avez pas de replyToken.

Sécurité

Permissions, secrets, portée

Portées minimales : Jeton d'accès au canal (long terme, API Messaging)
Stockage des identifiants : CHANNEL_ACCESS_TOKEN et CHANNEL_SECRET dans les variables d'environnement
Sortie de données : Tous les appels à api.line.me et api-data.line.me
Ne jamais accorder : Secret du canal au code côté client — c'est uniquement pour la vérification de la signature du webhook

Dépannage

Erreurs courantes et correctifs

401 Jeton d'accès au canal invalide

Jeton expiré ou révoqué. Réémettez sur developers.line.biz → Canal → API Messaging.

Vérifier : curl -H 'Authorization: Bearer $CHANNEL_ACCESS_TOKEN' https://api.line.me/v2/bot/info
400 La propriété altText doit être spécifiée

Chaque message non-texte (image, Flex) nécessite altText. Ajoutez-le.

400 L'utilisateur n'a pas ajouté le compte LINE Official aux amis

Vous ne pouvez pas envoyer à des userId arbitraires — uniquement ceux qui ont envoyé un message/suivi votre bot. Utilisez replyToken à la place pour ce destinataire.

429 Limite mensuelle atteinte

Vous avez atteint votre quota de plan. Mettez à niveau le plan ou attendez le mois prochain ; les réponses restent gratuites.

Vérifier : Appeler get_message_quota

Alternatives

LINE Bot vs autres

AlternativeQuand l'utiliserCompromis
Slack MCPL'équipe est sur Slack (la plupart de l'Europe/NA)Audience différente ; LINE gagne pour les consommateurs JP/TW/TH
Telegram MCPLa cible du bot est les utilisateurs TelegramDominance géographique différente ; pas de quotas OA/diffusion
WhatsApp Cloud API MCPVous devez atteindre les consommateurs SEA/LATAMIntégration BSP plus lourde ; approbation de modèle plus stricte

Plus

Ressources

📖 Lire le README officiel sur GitHub

🐙 Voir les issues ouvertes

🔍 Parcourir les 400+ serveurs MCP et Skills