/ 目录 / 演练场 / LINE Bot
● 官方 line 🔑 需要你的密钥

LINE Bot

作者 line · line/line-bot-mcp-server

通过 LINE Messaging API 向用户或群组发送 LINE 消息、富文本 Flex 气泡和图片 — 最适合 JP/TW/TH 通知流。

LINE 官方 MCP 封装了 LINE Messaging API。按 userId 推送文本、贴纸、图片和 Flex Message 气泡给用户,或按 id 推送给群组/房间。支持广播(所有粉丝)、窄播(分段)和资料查询。消息在免费额度之外需要付费。

为什么要用

核心特性

实时演示

实际使用效果

line-bot.replay ▶ 就绪
0/0

安装

选择你的客户端

~/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"
      ]
    }
  }
}

打开 Claude Desktop → Settings → Developer → Edit Config。保存后重启应用。

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

Cursor 使用与 Claude Desktop 相同的 mcpServers 格式。项目级配置优先于全局。

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

点击 Cline 侧栏中的 MCP Servers 图标,然后选 "Edit Configuration"。

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

格式与 Claude Desktop 相同。重启 Windsurf 生效。

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

Continue 使用服务器对象数组,而非映射。

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

加入 context_servers。Zed 保存后热重载。

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

一行命令搞定。用 claude mcp list 验证,claude mcp remove 卸载。

使用场景

实战用法: LINE Bot

通过 LINE 向值班工程师发送格式化的运维告警

👤 以日本/台湾为基地、以 LINE 为标准寻呼工具的 SRE 团队 ⏱ ~25 min intermediate

何时使用: 你想让 Sentry/Prometheus 告警通过整洁的 Flex 卡片在 LINE 上通知特定工程师,而不是一堆文字。

前置条件
  • LINE 官方账号 + 频道访问令牌 — developers.line.biz → Channel → Messaging API → Issue token
  • 工程师的 userId(来自你的 bot webhook 事件) — 从 followmessage 事件中捕获 userId,保存到你的用户库
步骤
  1. 设计 Flex 气泡
    为 Sentry 告警设计一个 Flex Message 气泡:标题栏(问题标题)、正文(事件计数、发布版本、受影响用户)、按钮(在 Sentry 中打开、确认)。✓ 已复制
    → Claude 可以验证的有效 Flex JSON
  2. 推送给值班用户
    将此 Flex 消息推送给 userId U1234567890abcdef,altText 为 'Sentry alert: <title>'。✓ 已复制
    → 返回 messageId,无 400 错误
  3. 处理用户屏蔽 bot 的备选方案
    如果推送失败,返回 400(用户已屏蔽),改为群发给备选值班用户,并记录原始失败。✓ 已复制
    → 优雅的备选路径

结果: 在底层事件发生 2 秒内,在 LINE 中收到经过精心打磨、易于行动的告警。

注意事项
  • 需要 altText 且不超过 400 个字符 — 没有 altText 推送会无声地失败 — 始终包含 altText,控制在 400 字以内总结 Flex 内容
  • 推送给未添加 bot 为好友的用户会返回 400 — 只推送给从实际 webhook 事件中捕获的 userId,不能随意猜测
搭配使用: sentry

向所有粉丝广播每月产品更新

👤 拥有 LINE 官方账号的营销团队 ⏱ ~20 min intermediate

何时使用: 每月一次,你向所有粉丝发送一份包含 3 个头条项目和深层链接的摘要。

前置条件
  • 足够的消息额度 — 用 getMessageQuota 检查当前额度,LINE 推送消息按计划计费
步骤
  1. 发送前检查额度
    获取当前消息额度消耗和剩余量。确认我们至少还有 <follower_count> 条消息额度。✓ 已复制
    → 剩余额度数字
  2. 编写 Flex 走马灯
    构建一个包含 3 个气泡的 Flex 走马灯(标题、图片、CTA 按钮)。输入:[主题、图片 URL、链接] × 3。✓ 已复制
    → 有效的 Flex 走马灯 JSON
  3. 广播
    将此走马灯广播给所有粉丝,altText 为 '<brand> monthly update'。✓ 已复制
    → 200 OK、用于审计的 requestId

结果: 向整个粉丝基础发送品牌化的每月广播,通过你的重定向链接进行点击追踪。

注意事项
  • 广播成本高 — 大名单可能在一次发送中耗尽免费层 — 对于非紧急内容,考虑使用分段的窄播,或在发送前升级计划

让 Claude 发布站会总结到团队的 LINE 群组

👤 日常站会在 LINE 群组中进行的团队 ⏱ ~20 min intermediate

何时使用: 每天早上 9 点,总结昨天的 Linear/Sentry 活动并发送简短摘要。

前置条件
  • 目标聊天的 groupId — 当 bot 被添加到群组时,从 joinmessage 事件中捕获
步骤
  1. 汇总摘要信息
    拉取昨天合并的 Linear PR 和最新的 Sentry 问题。用 5 个要点总结。✓ 已复制
    → 清洁的 5 要点 markdown
  2. 推送到群组
    推送一条文本消息(无 markdown;LINE 不渲染 markdown)到 groupId Cxxxxx,包含 5 个要点作为纯文本行。✓ 已复制
    → 200 OK
  3. 大声确认失败
    如果推送失败(bot 被踢出群组),将失败写到 /logs/line-standup.log 并通过电子邮件通知我。✓ 已复制
    → 失败时的审计追踪

结果: 一个可靠的每日站会摘要,会无声地自我修复,如果出现故障会提醒你。

注意事项
  • Bot 被从群组中删除会无声地导致推送失败 — 订阅 leave webhook 事件,在你的库中标记群组为不活跃
  • LINE 文本消息不渲染 Markdown 或 HTML — 使用带有表情符号的纯文本,或切换到 Flex 消息以获得富文本格式
搭配使用: sentry · linear

对地理位置或行为分段进行窄播活动

👤 运行定向推送的增长团队 ⏱ ~20 min advanced

何时使用: 你想只通知东京地区的粉丝参加线下活动,而不是你的整个列表。

前置条件
  • 在 LINE 官方账号管理器中定义的受众 — 在官方账号管理器 UI 中创建受众(地理位置、标签或上传的 userId 列表)
步骤
  1. 列出受众
    列出我们 LINE 官方账号上的所有受众。显示名称、规模、最后更新时间。✓ 已复制
    → 受众目录
  2. 编写分段专用消息
    为东京见面会构建一个 Flex 卡片 — 位置、日期、CTA。为东京地区用户定制文案。✓ 已复制
    → 定向的 Flex JSON
  3. 窄播
    向 audienceId <id> 窄播此 Flex。确认请求已被接受。✓ 已复制
    → 202 Accepted + requestId

结果: 精准的活动,每次展示成本更低,点击率更高。

注意事项
  • 窄播到少于 50 个的受众出于隐私原因会失败 — 如果分段太小,改为对用户列表进行单独推送

组合

与其他 MCP 搭配,撬动十倍杠杆

line-bot + sentry

当出现重大 Sentry 问题时,自动向值班人员推送 Flex 告警

当 web-prod 项目中的新 Sentry 问题在 5 分钟内超过 100 个事件时,向值班 LINE 用户推送 Flex 告警。✓ 已复制
line-bot + linear

当创建 P0 Linear 问题时,通知 LINE 群组

当 Linear 问题被标记为 P0 时,向 groupId Cxxxx 推送包含标题和 URL 的文本消息。✓ 已复制
line-bot + monday

推送今天到期的 monday.com 项目的每日摘要

每天上午 9 点,收集今天到期的我的 monday.com 项目,格式化为 Flex 走马灯,推送给我的 LINE 用户。✓ 已复制

工具

此 MCP 暴露的能力

工具输入参数何时调用成本
push_message to: userId|groupId|roomId, messages: Message[] 发送给已知的接收者 id 1 message charge
multicast to: userId[], messages: Message[] 向 <=500 个特定用户发送相同消息 1 charge per recipient
broadcast messages: Message[] 群发给所有粉丝,先确认额度 1 charge per follower
narrowcast messages, recipient (audience object), filter? 按受众群体进行定向发送 1 charge per recipient
get_profile userId 用用户显示名个性化消息 free
get_message_quota 任何广播/窄播前 free

成本与限制

运行它的成本

API 配额
LINE API 按消息计费,不按请求计。免费层:500 条免费推送消息/月(开发者试用)或 200 条/月(轻量级计划)。
每次调用 Token 数
文本消息:约 200 token 请求。Flex 消息:500–2000 token,取决于气泡复杂度。
费用
轻量级计划免费(200 条消息/月),标准计划 ¥5,000/月(最多 30k 条消息),专业计划 ¥15,000/月(45k+ 条)。
提示
尽可能使用 reply_message — 回复完全免费。只有在没有 replyToken 时才推送。

安全

权限、密钥、影响范围

最小权限: 频道访问令牌(长期有效、Messaging API)
凭据存储: CHANNEL_ACCESS_TOKENCHANNEL_SECRET 在环境变量中
数据出站: 所有调用均发往 api.line.me 和 api-data.line.me
切勿授予: 频道密钥不应暴露给客户端代码 — 它仅用于 webhook 签名验证

故障排查

常见错误与修复

401 频道访问令牌无效

令牌已过期或被撤销。在 developers.line.biz → Channel → Messaging API 重新颁发。

验证: curl -H 'Authorization: Bearer $CHANNEL_ACCESS_TOKEN' https://api.line.me/v2/bot/info
400 必须指定 altText 属性

每条非文本消息(图片、Flex)都需要 altText。添加它。

400 用户未将 LINE 官方账号添加为好友

你不能推送给任意 userId — 只能推送给与你的 bot 有交互/关注的用户。对于这个接收者,改用 replyToken。

429 月份限额已达到

你已达到计划额度。升级计划或等待下个月,回复始终免费。

验证: Call get_message_quota

替代方案

LINE Bot 对比其他方案

替代方案何时用它替代权衡
Slack MCP团队使用 Slack(欧洲/北美大部分地区)受众不同;LINE 在 JP/TW/TH 消费者中更有优势
Telegram MCPBot 目标是 Telegram 用户地理优势不同,没有官方账号/广播额度限制
WhatsApp Cloud API MCP你需要接触东南亚/拉丁美洲消费者更重的 BSP 准入流程,模板审批更严格

更多

资源

📖 阅读 GitHub 上的官方 README

🐙 查看未解决的 issue

🔍 浏览全部 400+ MCP 服务器和 Skills