ใช้ 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: เทมเพลตที่นำกลับมาใช้ใหม่ได้

วิธีสร้าง:

  1. การตั้งค่า (Setup) ติดตั้งแพ็กเกจผ่าน Composer: composer require laravel/mcp

Publish routes ของคุณ: php artisan vendor:publish --tag=ai-routes

  1. สร้าง Server Server จะทำหน้าที่รวม Tools และ Resources ของคุณเข้าด้วยกัน สร้าง Server ได้ด้วยคำสั่ง: php artisan make:mcp-server OrdersServer

ลงทะเบียนใน routes/ai.php คุณสามารถรัน web server สำหรับ client จากระยะไกล หรือรัน local server สำหรับเครื่องมืออย่าง Claude Code ก็ได้

  1. สร้าง Tools Tools คือส่วนที่ทำงานจริง สร้าง tool ได้ด้วยคำสั่ง: php artisan make:mcp-tool SearchOrdersTool

Tool จำเป็นต้องมี 2 method: • Schema: กำหนด argument ที่โมเดลจะส่งมา • Handle: รัน logic และส่ง response กลับไป

ควรเขียนคำอธิบาย (description) ให้ชัดเจน เพราะโมเดลจะใช้คำอธิบายเหล่านี้ในการตัดสินใจว่าจะใช้ tool ของคุณเมื่อใด

  1. การใช้ Annotations ใช้ attributes เพื่ออธิบายพฤติกรรมของ tool: • IsReadOnly: tool นี้ไม่มีการเปลี่ยนแปลงข้อมูล • IsDestructive: tool นี้มีการเปลี่ยนแปลงหรือลบข้อมูล • IsIdempotent: การรันซ้ำสองครั้งให้ผลลัพธ์เหมือนกับการรันเพียงครั้งเดียว

  2. การรักษาความปลอดภัยของ Server Web MCP server คือ public endpoint ควรดูแลเหมือนกับ API ทั่วไป ใช้ middleware เพื่อป้องกันความปลอดภัย โดย Laravel Sanctum หรือ Passport สามารถใช้งานได้ดีสำหรับการทำ authentication

  3. ทดสอบการทำงาน ใช้ 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