@jirasakn/line-bot-mcp-server v0.0.2
LINE Bot MCP Server - พร้อมรองรับการตอบกลับ (Reply)
เซิร์ฟเวอร์ Model Context Protocol (MCP) ที่ใช้สำหรับเชื่อมต่อ AI Agent เข้ากับ LINE Official Account ผ่าน LINE Messaging API รองรับทั้งการส่งข้อความแบบ Push และการตอบกลับข้อความของผู้ใช้โดยตรง (Reply)
!NOTE Repository นี้เป็นเวอร์ชัน Preview สำหรับการทดลองใช้งาน ซึ่งอาจมีฟังก์ชันบางอย่างไม่ครบถ้วนสมบูรณ์
ฟีเจอร์เด่น
- ส่งข้อความ (Push Message): ส่งข้อความไปหาผู้ใช้ LINE ได้โดยตรง
- บรอดแคสต์ (Broadcast): ส่งข้อความหาผู้ติดตามทั้งหมดพร้อมกัน
- ตอบกลับ (Reply): ตอบกลับข้อความจากผู้ใช้ได้ทันที
- ดึงข้อมูลโปรไฟล์: ดูข้อมูลโปรไฟล์ของผู้ใช้
- ตรวจสอบโควต้า: เช็คจำนวนข้อความที่ใช้ไปและที่เหลืออยู่
เครื่องมือ (Tools)
push_text_message
- หน้าที่: ส่งข้อความแบบตัวอักษรธรรมดา (Plain Text) ไปยังผู้ใช้
- พารามิเตอร์:
userId
(string, optional): ระบุ User ID ของผู้ใช้ที่ต้องการส่งข้อความถึง (หากไม่ระบุ จะใช้ค่าจากDESTINATION_USER_ID
)message.text
(string): ข้อความที่ต้องการส่ง
push_flex_message
- หน้าที่: ส่งข้อความแบบ Flex Message ที่สามารถออกแบบหน้าตาได้อย่างอิสระ
- พารามิเตอร์:
userId
(string, optional): ระบุ User ID ของผู้ใช้ที่ต้องการส่งข้อความถึง (หากไม่ระบุ จะใช้ค่าจากDESTINATION_USER_ID
)message.altText
(string): ข้อความที่จะแสดงเมื่ออุปกรณ์ไม่รองรับ Flex Messagemessage.contents
(object): โครงสร้างของ Flex Message ในรูปแบบ JSON
reply_text_message
- หน้าที่: ตอบกลับข้อความของผู้ใช้ด้วยข้อความแบบตัวอักษรธรรมดา
- พารามิเตอร์:
replyToken
(string):replyToken
ที่ได้จาก Webhook Event เมื่อผู้ใช้ส่งข้อความมา (มีอายุสั้น)message.text
(string): ข้อความที่ต้องการตอบกลับ
reply_flex_message
- หน้าที่: ตอบกลับข้อความของผู้ใช้ด้วย Flex Message
- พารามิเตอร์:
replyToken
(string):replyToken
ที่ได้จาก Webhook Event (มีอายุสั้น)message.altText
(string): ข้อความที่จะแสดงเมื่ออุปกรณ์ไม่รองรับ Flex Messagemessage.contents
(object): โครงสร้างของ Flex Message ในรูปแบบ JSON
broadcast_text_message
- หน้าที่: บรอดแคสต์ข้อความแบบตัวอักษรธรรมดาไปยังผู้ติดตามทั้งหมด
- พารามิเตอร์:
message.text
(string): ข้อความที่ต้องการบรอดแคสต์
broadcast_flex_message
- หน้าที่: บรอดแคสต์ Flex Message ไปยังผู้ติดตามทั้งหมด
- พารามิเตอร์:
message.altText
(string): ข้อความที่จะแสดงเมื่ออุปกรณ์ไม่รองรับ Flex Messagemessage.contents
(object): โครงสร้างของ Flex Message ในรูปแบบ JSON
get_profile
- หน้าที่: ดึงข้อมูลโปรไฟล์ของผู้ใช้ (ชื่อ, รูปโปรไฟล์, ข้อความสถานะ, และภาษา)
- พารามิเตอร์:
userId
(string, optional): User ID ของผู้ใช้ที่ต้องการดูข้อมูล (หากไม่ระบุ จะใช้ค่าจากDESTINATION_USER_ID
)
get_message_quota
- หน้าที่: ตรวจสอบโควต้าการส่งข้อความของ LINE Official Account
- พารามิเตอร์: ไม่มี
การใช้งานข้อความตอบกลับ (Reply Message)
การตอบกลับด้วย replyToken
เป็นวิธีที่แนะนำมากกว่าการส่งข้อความแบบ Push Message เนื่องจาก:
- ไม่มีค่าใช้จ่าย: ไม่ถูกนับรวมในโควต้าการส่งข้อความรายเดือน
- ประสบการณ์ที่ดีกว่า: ผู้ใช้จะเห็นว่าเป็นการตอบกลับข้อความของตนเองโดยตรง
- ต่อเนื่อง: ช่วยให้บทสนทนาเป็นไปอย่างต่อเนื่อง
ขั้นตอนการใช้งาน:
- ตั้งค่า Webhook URL ใน LINE Official Account ของคุณเพื่อรับ Event ต่างๆ (ดูวิธีได้ที่: Setting up your webhook URL)
- เมื่อได้รับ Webhook Event จากผู้ใช้ ให้ดึงค่า
replyToken
ออกมา - ใช้เครื่องมือ
reply_text_message
หรือreply_flex_message
พร้อมกับreplyToken
ที่ได้มา
ข้อควรระวัง:
replyToken
มีอายุการใช้งานสั้นมาก (ประมาณ 1 นาที) จึงควรตอบกลับทันทีหลังจากได้รับ Event
วิธีการติดตั้ง
วิธีที่ 1: ติดตั้งผ่าน npx
สิ่งที่ต้องมี:
- Node.js v20 ขึ้นไป
ขั้นตอน:
- สร้าง LINE Official Account: หากยังไม่มี สามารถสร้างได้ที่ LINE for Business และเปิดใช้งาน Messaging API ตาม คำแนะนำนี้
- ตั้งค่า 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
ขั้นตอน:
- สร้าง LINE Official Account: (ดูขั้นตอนเดียวกับวิธีที่ 1)
สร้าง Docker Image:
# โคลนโปรเจกต์ git clone git@github.com:jirasakn/line-bot-mcp-server.git # สร้าง Docker image docker build -t jirasakn/line-bot-mcp-server .
ตั้งค่า 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)
หากต้องการมีส่วนร่วมในการพัฒนา โปรดอ่าน แนวทางการมีส่วนร่วม