ใช้ Laravel เพื่อสร้าง MCP server ของคุณเอง
Claude สามารถทำงานร่วมกับแอป Laravel ของคุณได้ โดยที่คุณไม่จำเป็นต้องสร้าง REST API หรือเขียน custom client เอง คุณสามารถเปิดใช้งานเครื่องมือต่างๆ ผ่าน Model Context Protocol (MCP) ได้
แพ็กเกจ laravel/mcp ช่วยให้เรื่องนี้เป็นเรื่องง่าย คุณสามารถสร้าง MCP server ได้ภายในบ่ายวันเดียว
MCP server มอบ 3 สิ่งให้กับ AI: • Tools: การกระทำที่โมเดลเรียกใช้ เช่น การค้นหาคำสั่งซื้อ • Resources: ข้อมูลแบบอ่านอย่างเดียว (read-only) ที่โมเดลดึงมาเพื่อใช้เป็นบริบท • Prompts: เทมเพลตที่นำกลับมาใช้ใหม่ได้
วิธีสร้าง:
- การตั้งค่า (Setup)
ติดตั้งแพ็กเกจผ่าน Composer:
composer require laravel/mcp
Publish routes ของคุณ:
php artisan vendor:publish --tag=ai-routes
- สร้าง Server
Server จะทำหน้าที่รวม Tools และ Resources ของคุณเข้าด้วยกัน สร้าง Server ได้ด้วยคำสั่ง:
php artisan make:mcp-server OrdersServer
ลงทะเบียนใน routes/ai.php คุณสามารถรัน web server สำหรับ client จากระยะไกล หรือรัน local server สำหรับเครื่องมืออย่าง Claude Code ก็ได้
- สร้าง Tools
Tools คือส่วนที่ทำงานจริง สร้าง tool ได้ด้วยคำสั่ง:
php artisan make:mcp-tool SearchOrdersTool
Tool จำเป็นต้องมี 2 method: • Schema: กำหนด argument ที่โมเดลจะส่งมา • Handle: รัน logic และส่ง response กลับไป
ควรเขียนคำอธิบาย (description) ให้ชัดเจน เพราะโมเดลจะใช้คำอธิบายเหล่านี้ในการตัดสินใจว่าจะใช้ tool ของคุณเมื่อใด
การใช้ Annotations ใช้ attributes เพื่ออธิบายพฤติกรรมของ tool: • IsReadOnly: tool นี้ไม่มีการเปลี่ยนแปลงข้อมูล • IsDestructive: tool นี้มีการเปลี่ยนแปลงหรือลบข้อมูล • IsIdempotent: การรันซ้ำสองครั้งให้ผลลัพธ์เหมือนกับการรันเพียงครั้งเดียว
การรักษาความปลอดภัยของ Server Web MCP server คือ public endpoint ควรดูแลเหมือนกับ API ทั่วไป ใช้ middleware เพื่อป้องกันความปลอดภัย โดย Laravel Sanctum หรือ Passport สามารถใช้งานได้ดีสำหรับการทำ authentication
ทดสอบการทำงาน ใช้ MCP Inspector เพื่อทดสอบ server ของคุณด้วยตนเอง:
php artisan mcp:inspector orders
คุณยังสามารถเขียน PHPUnit tests มาตรฐานเพื่อตรวจสอบว่า tools ของคุณทำงานได้อย่างถูกต้อง
ตอนนี้คุณมี interface มาตรฐานเพื่อให้ AI สามารถโต้ตอบกับแอปพลิเคชันของคุณได้แล้ว โดยที่คุณไม่จำเป็นต้องเขียนโค้ดเกี่ยวกับ protocol เลย เพียงแค่เพิ่ม tools, เขียนคำอธิบายให้ชัดเจน และป้องกันด้วย middleware เท่านั้น
คุณได้เชื่อมต่อ MCP server เข้ากับอะไรบ้าง? บอกให้เราทราบในคอมเมนต์ได้เลย
ที่มา: https://dev.to/accreditly/use-laravel-to-create-your-own-mcp-server-251g