Skip to main content
Glama
tools.md11.8 kB
LINE MCP Tools — คู่มือย่อสำหรับ AI (ค่าเริ่มต้นของโปรเจกต์) เอกสารหน้านี้เป็นความรู้เริ่มต้นสำหรับ AI เพื่อเลือกและใช้งานเครื่องมือ (tools) ของ LINE Messaging API ผ่าน MCP ได้อย่างถูกต้อง ปลอดภัย และตรงความต้องการ โดยตั้งใจให้ใช้ “คำสั่งเดียว” คือ `gemini_command` เพื่อวางแผนและลงมือทำทีละหนึ่งแอคชัน จงเลือกทำเพียงหนึ่งอย่างต่อไปนี้ในแต่ละคำสั่ง (plan-and-execute one action): - get_profile(userId?) — ดูโปรไฟล์ผู้ใช้ - get_rich_menu_list() — ดูรายการ Rich Menu ทั้งหมดของ OA - get_message_quota() — เช็กโควตารายเดือนและการใช้งานข้อความ - push_text(userId?, text) — ส่งข้อความตัวอักษรให้ผู้ใช้คนเดียว - push_flex(userId?, altText, contents) — ส่ง Flex Message ให้ผู้ใช้คนเดียว - broadcast_text(text) — ส่งข้อความตัวอักษรถึงผู้ติดตามทุกคน - broadcast_flex(altText, contents) — ส่ง Flex Message ถึงผู้ติดตามทุกคน หมายเหตุสำคัญ - ถ้าไม่ได้ระบุ `userId` ให้ใช้ค่าปลายทางเริ่มต้นของระบบ (DESTINATION_USER_ID) สำหรับ push/get_profile - การใช้ broadcast_* จะส่งถึงทุกคน โปรดใช้เฉพาะกรณีประกาศสาธารณะจริง ๆ - `altText` ต้องเป็นข้อความสั้น อ่านเข้าใจง่าย (แสดงเมื่อ Flex เปิดไม่ได้) - `contents` ของ Flex ต้องเป็นไปตาม LINE Flex Message (ประเภท `bubble` หรือ `carousel`) - หากมี `filePath` แนบมา (เช่น docs/data-learning/knowledge.md) ให้ใช้เฉพาะเป็นข้อมูลอ้างอิง ถ้าไม่เกี่ยวข้องให้ไม่ต้องใช้ ## gemini_command — คำสั่งรวมเดียว - ชื่อเครื่องมือ: `gemini_command` - พารามิเตอร์ - `instruction` ข้อความธรรมชาติ (TH/EN) อธิบายสิ่งที่อยากให้ทำ เช่น “ส่งข้อความโปรโมชันให้ผู้ใช้”, “สร้าง Flex แนะนำเมนูอาหาร 3 รายการและส่งให้ฉัน” - `model` ชื่อโมเดล Gemini (ค่าเริ่มต้น: `gemini-2.0-flash`) - `filePath` (ไม่บังคับ) ไฟล์ Markdown สำหรับความรู้ประกอบ เช่น `docs/data-learning/knowledge.md` - `mode` เลือกการทำงาน: `auto` (ให้โมเดลตัดสินใจ), `actions` (บังคับโหมดวางแผนการทำ LINE), `qa` (ตอบคำถามจากไฟล์ความรู้และ push เป็นข้อความ) - ผลลัพธ์ที่ต้องวางแผน: ให้ตัดสินใจเลือก “หนึ่งแอคชัน” จากรายการด้านบน แล้วกำหนดอาร์กิวเมนต์ให้ครบถ้วน แนวทางตัดสินใจ - ต้องปลอดภัยก่อน: หากคำสั่งมีผลกระทบวงกว้าง ให้หลีกเลี่ยง broadcast ยกเว้นผู้ใช้ขอชัดเจน - เลือก push_* สำหรับการส่งถึงคนเดียว เลือก broadcast_* สำหรับประกาศสาธารณะ - ถ้าผู้ใช้ถามสถานะหรือรายการ ให้เลือก get_* (เช่น quota, rich menu, profile) - ถ้าคำสั่งเกี่ยวกับคอนเทนต์รูปแบบสวยงาม ให้เลือก Flex (push_flex/broadcast_flex) ตัวอย่างคำสั่ง (instruction) ที่ถูกต้อง - “ส่งข้อความว่า ‘สวัสดีครับ’ ให้ฉัน” → `push_text` - “ประกาศปิดปรับปรุงระบบคืนนี้ 22:00-23:00” → `broadcast_text` - “ขอรายการ Rich Menu ตอนนี้มีอะไรบ้าง” → `get_rich_menu_list` - “เช็กโควตาส่งข้อความของเดือนนี้ และแจ้งฉันสั้น ๆ” → `get_message_quota` - “ส่ง Flex แนะนำเมนูพิเศษ 3 รายการให้ฉัน” → `push_flex` - “ส่ง Flex โปรโมชัน 9.9 ให้ผู้ติดตามทุกคน” → `broadcast_flex` - “ดูโปรไฟล์ของฉัน” → `get_profile` ## กติกาที่ตัววางแผน (Planner Rules) ใช้ตัดสินใจ - ตอบออกมาเป็น JSON เคร่งครัดเท่านั้น: `{"action":"...","args":{...}}` ห้ามมี Markdown/คำอธิบายแทรก - ถ้าเป็น “คำถาม/ขอข้อมูล” ให้ “แต่งคำตอบจริง” แล้วส่งด้วย `push_text` โดย - เติม `args.text` ด้วยคำตอบสั้น ชัดเจน (ไทยถ้าเหมาะสม) ไม่ใช่การคัดลอกคำสั่ง - ถ้ามี `filePath` ให้ยึดข้อมูลจากไฟล์นั้นก่อน ถ้าไม่พอให้บอก “ไม่ทราบ” แบบสั้น - หลีกเลี่ยง `broadcast_*` เว้นผู้ใช้สั่งชัดเจน เช่น “broadcast/ประกาศ/ทุกคน” - ถ้าเป็นงานรูปแบบสวยงามหรือหลายรายการ ให้ใช้ Flex (`push_flex`/`broadcast_flex`) - ต้องมี `altText` ที่สั้นและเข้าใจง่าย - ต้องมี `contents` ที่ถูกสเปก LINE Flex (bubble/carousel) และ “อิงจากไฟล์ความรู้ถ้ามี” ห้ามเดาข้อมูลใหม่ - Bubble ใช้โครงขั้นต่ำได้: `{ type: "bubble", body: { type: "box", layout: "vertical", contents: [...] } }` - ถ้าคลุมเครือ ให้เริ่มจาก `push_text` เพื่อสอบถาม/ยืนยันก่อน หมายเหตุ: เอกสารนี้เป็น “ความรู้เริ่มต้น” สำหรับโปรเจกต์ แต่จะถูกฉีดเข้าเป็นบริบทความรู้ก็ต่อเมื่อส่ง `filePath` ให้ `gemini_command` เท่านั้น ## รูปแบบข้อมูลข้อความ (Text) - `text` ต้องเป็นข้อความธรรมชาติสั้น ชัดเจน ไม่ควรยาวเกินจำเป็น - ตัวอย่าง (push_text/broadcast_text) ``` { "text": "สวัสดีครับ ขอบคุณที่ติดตามเรา!" } ``` ## รูปแบบ Flex Message (สรุปย่อสำหรับ AI) - โครงสร้างหลัก - `type`: ต้องเป็น `flex` - `altText`: ข้อความสำรอง กรณีแสดง Flex ไม่ได้ - `contents`: วัตถุ Flex Container แบบ `bubble` หรือ `carousel` - `bubble` พื้นฐาน (ตัวอย่างเรียบง่าย) ``` { "type": "bubble", "body": { "type": "box", "layout": "vertical", "contents": [ { "type": "text", "text": "เมนูพิเศษวันนี้" }, { "type": "text", "text": "ยำแซลมอน" } ] } } ``` - `carousel` คือรายการ `bubble` หลายอัน แบบเลื่อนดู ``` { "type": "carousel", "contents": [ { /* bubble 1 */ }, { /* bubble 2 */ } ] } ``` - เคล็ดลับการออกแบบ Flex สำหรับ AI - ใช้ตัวอักษรไทยชัดเจน กะทัดรัด - อย่าใส่ปุ่ม/ลิงก์ที่ไม่ทำงานจริง - สำหรับการ์ดหลายรายการ ให้ชื่อสั้น + ราคา/คุณค่าหลัก - `altText` ต้องสรุปใจความ เช่น “โปรโมชัน 9.9 ลดสูงสุด 50%” ## Mapping การใช้งานอย่างรวดเร็ว - แจ้งข่าว/ประกาศกว้าง → `broadcast_text` หรือ `broadcast_flex` - คุย 1:1 หรือทดสอบบนบัญชีเดียว → `push_text` หรือ `push_flex` - ขอข้อมูลระบบ → `get_message_quota`, `get_rich_menu_list`, `get_profile` ## ข้อควรระวัง - Broadcast ส่งถึงผู้ติดตามทุกคน: ใช้เมื่อได้รับคำสั่งชัดเจนเท่านั้น - Flex ผิดรูปแบบจะแสดงผลไม่ได้: ยึด `bubble`/`carousel` และโครงสร้าง LINE Flex มาตรฐาน - อย่าเดา `userId`: ถ้าไม่ระบุ ให้ใช้ปลายทางเริ่มต้นของระบบเท่านั้น - หาก `filePath` มีข้อมูล แต่ไม่เกี่ยวข้องกับงาน ให้ละเว้น ## สรุปการเติมอาร์กิวเมนต์ที่ต้องมี (โดยย่อ) - push_text: `text` - push_flex: `altText`, `contents` - broadcast_text: `text` - broadcast_flex: `altText`, `contents` - get_profile: `userId?` (ไม่ใส่ได้ ใช้ค่าเริ่มต้น) - get_rich_menu_list: ไม่มีอาร์กิวเมนต์ - get_message_quota: ไม่มีอาร์กิวเมนต์ เมื่อผู้ใช้สั่งงาน ให้เลือกเพียงหนึ่งแอคชันด้านบน และเติมอาร์กิวเมนต์ให้ครบตามชนิดงานนั้น ๆ เท่านั้น

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/tndfame/mcp_management'

If you have feedback or need assistance with the MCP directory API, please join our Discord server