0.0.2 • Published 5 months ago

@jirasakn/line-bot-mcp-server v0.0.2

Weekly downloads
-
License
Apache-2.0
Repository
github
Last release
5 months ago

English | 日本語

LINE Bot MCP Server - พร้อมรองรับการตอบกลับ (Reply)

npmjs

เซิร์ฟเวอร์ Model Context Protocol (MCP) ที่ใช้สำหรับเชื่อมต่อ AI Agent เข้ากับ LINE Official Account ผ่าน LINE Messaging API รองรับทั้งการส่งข้อความแบบ Push และการตอบกลับข้อความของผู้ใช้โดยตรง (Reply)

npm.io

!NOTE Repository นี้เป็นเวอร์ชัน Preview สำหรับการทดลองใช้งาน ซึ่งอาจมีฟังก์ชันบางอย่างไม่ครบถ้วนสมบูรณ์

ฟีเจอร์เด่น

  • ส่งข้อความ (Push Message): ส่งข้อความไปหาผู้ใช้ LINE ได้โดยตรง
  • บรอดแคสต์ (Broadcast): ส่งข้อความหาผู้ติดตามทั้งหมดพร้อมกัน
  • ตอบกลับ (Reply): ตอบกลับข้อความจากผู้ใช้ได้ทันที
  • ดึงข้อมูลโปรไฟล์: ดูข้อมูลโปรไฟล์ของผู้ใช้
  • ตรวจสอบโควต้า: เช็คจำนวนข้อความที่ใช้ไปและที่เหลืออยู่

เครื่องมือ (Tools)

  1. push_text_message

    • หน้าที่: ส่งข้อความแบบตัวอักษรธรรมดา (Plain Text) ไปยังผู้ใช้
    • พารามิเตอร์:
      • userId (string, optional): ระบุ User ID ของผู้ใช้ที่ต้องการส่งข้อความถึง (หากไม่ระบุ จะใช้ค่าจาก DESTINATION_USER_ID)
      • message.text (string): ข้อความที่ต้องการส่ง
  2. push_flex_message

    • หน้าที่: ส่งข้อความแบบ Flex Message ที่สามารถออกแบบหน้าตาได้อย่างอิสระ
    • พารามิเตอร์:
      • userId (string, optional): ระบุ User ID ของผู้ใช้ที่ต้องการส่งข้อความถึง (หากไม่ระบุ จะใช้ค่าจาก DESTINATION_USER_ID)
      • message.altText (string): ข้อความที่จะแสดงเมื่ออุปกรณ์ไม่รองรับ Flex Message
      • message.contents (object): โครงสร้างของ Flex Message ในรูปแบบ JSON
  3. reply_text_message

    • หน้าที่: ตอบกลับข้อความของผู้ใช้ด้วยข้อความแบบตัวอักษรธรรมดา
    • พารามิเตอร์:
      • replyToken (string): replyToken ที่ได้จาก Webhook Event เมื่อผู้ใช้ส่งข้อความมา (มีอายุสั้น)
      • message.text (string): ข้อความที่ต้องการตอบกลับ
  4. reply_flex_message

    • หน้าที่: ตอบกลับข้อความของผู้ใช้ด้วย Flex Message
    • พารามิเตอร์:
      • replyToken (string): replyToken ที่ได้จาก Webhook Event (มีอายุสั้น)
      • message.altText (string): ข้อความที่จะแสดงเมื่ออุปกรณ์ไม่รองรับ Flex Message
      • message.contents (object): โครงสร้างของ Flex Message ในรูปแบบ JSON
  5. broadcast_text_message

    • หน้าที่: บรอดแคสต์ข้อความแบบตัวอักษรธรรมดาไปยังผู้ติดตามทั้งหมด
    • พารามิเตอร์:
      • message.text (string): ข้อความที่ต้องการบรอดแคสต์
  6. broadcast_flex_message

    • หน้าที่: บรอดแคสต์ Flex Message ไปยังผู้ติดตามทั้งหมด
    • พารามิเตอร์:
      • message.altText (string): ข้อความที่จะแสดงเมื่ออุปกรณ์ไม่รองรับ Flex Message
      • message.contents (object): โครงสร้างของ Flex Message ในรูปแบบ JSON
  7. get_profile

    • หน้าที่: ดึงข้อมูลโปรไฟล์ของผู้ใช้ (ชื่อ, รูปโปรไฟล์, ข้อความสถานะ, และภาษา)
    • พารามิเตอร์:
      • userId (string, optional): User ID ของผู้ใช้ที่ต้องการดูข้อมูล (หากไม่ระบุ จะใช้ค่าจาก DESTINATION_USER_ID)
  8. get_message_quota

    • หน้าที่: ตรวจสอบโควต้าการส่งข้อความของ LINE Official Account
    • พารามิเตอร์: ไม่มี

การใช้งานข้อความตอบกลับ (Reply Message)

การตอบกลับด้วย replyToken เป็นวิธีที่แนะนำมากกว่าการส่งข้อความแบบ Push Message เนื่องจาก:

  1. ไม่มีค่าใช้จ่าย: ไม่ถูกนับรวมในโควต้าการส่งข้อความรายเดือน
  2. ประสบการณ์ที่ดีกว่า: ผู้ใช้จะเห็นว่าเป็นการตอบกลับข้อความของตนเองโดยตรง
  3. ต่อเนื่อง: ช่วยให้บทสนทนาเป็นไปอย่างต่อเนื่อง

ขั้นตอนการใช้งาน:

  1. ตั้งค่า Webhook URL ใน LINE Official Account ของคุณเพื่อรับ Event ต่างๆ (ดูวิธีได้ที่: Setting up your webhook URL)
  2. เมื่อได้รับ Webhook Event จากผู้ใช้ ให้ดึงค่า replyToken ออกมา
  3. ใช้เครื่องมือ reply_text_message หรือ reply_flex_message พร้อมกับ replyToken ที่ได้มา

ข้อควรระวัง: replyToken มีอายุการใช้งานสั้นมาก (ประมาณ 1 นาที) จึงควรตอบกลับทันทีหลังจากได้รับ Event

วิธีการติดตั้ง

วิธีที่ 1: ติดตั้งผ่าน npx

สิ่งที่ต้องมี:

  • Node.js v20 ขึ้นไป

ขั้นตอน:

  1. สร้าง LINE Official Account: หากยังไม่มี สามารถสร้างได้ที่ LINE for Business และเปิดใช้งาน Messaging API ตาม คำแนะนำนี้
  2. ตั้งค่า AI Agent: เพิ่มการตั้งค่าสำหรับ AI Agent ของคุณ (เช่น Claude Desktop, Cline) โดยกำหนดค่า Environment Variables ดังนี้:
    • CHANNEL_ACCESS_TOKEN (จำเป็น): Channel Access Token ของคุณ (ดูวิธีได้ที่: Channel access tokens)
    • DESTINATION_USER_ID (ทางเลือก): User ID เริ่มต้นสำหรับส่งข้อความ หากไม่ได้ระบุ userId ในแต่ละคำสั่ง (ดูวิธีได้ที่: Getting user IDs)

ตัวอย่างการตั้งค่า:

{
  "mcpServers": {
    "line-bot": {
      "command": "npx",
      "args": [
        "@jirasakn/line-bot-mcp-server"
      ],
      "env": {
        "CHANNEL_ACCESS_TOKEN" : "YOUR_CHANNEL_ACCESS_TOKEN",
        "DESTINATION_USER_ID" : "YOUR_USER_ID"
      }
    }
  }
}

วิธีที่ 2: ติดตั้งผ่าน Docker

ขั้นตอน:

  1. สร้าง LINE Official Account: (ดูขั้นตอนเดียวกับวิธีที่ 1)
  2. สร้าง Docker Image:

    # โคลนโปรเจกต์
    git clone git@github.com:jirasakn/line-bot-mcp-server.git
    
    # สร้าง Docker image
    docker build -t jirasakn/line-bot-mcp-server .
  3. ตั้งค่า AI Agent:

    • CHANNEL_ACCESS_TOKEN (จำเป็น)
    • DESTINATION_USER_ID (ทางเลือก)

ตัวอย่างการตั้งค่า:

{
  "mcpServers": {
    "line-bot": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "CHANNEL_ACCESS_TOKEN",
        "-e",
        "DESTINATION_USER_ID",
        "jirasakn/line-bot-mcp-server"
      ],
      "env": {
        "CHANNEL_ACCESS_TOKEN" : "YOUR_CHANNEL_ACCESS_TOKEN",
        "DESTINATION_USER_ID" : "YOUR_USER_ID"
      }
    }
  }
}

การกำหนดเวอร์ชัน (Versioning)

โปรเจกต์นี้ใช้ระบบ Semantic Versioning (ดูเพิ่มเติมที่ semver.org)

การมีส่วนร่วม (Contributing)

หากต้องการมีส่วนร่วมในการพัฒนา โปรดอ่าน แนวทางการมีส่วนร่วม

0.0.2

5 months ago

0.0.1

5 months ago