อธิบาย Model Context Protocol
หากคุณเชื่อมต่อ LLM เข้ากับฐานข้อมูลหรือ API คุณต้องเขียน glue code ขึ้นมา คุณเขียนมันสำหรับโมเดลหนึ่ง แล้วก็ต้องเขียนใหม่สำหรับโมเดลถัดไป สิ่งนี้ทำให้เกิดความยุ่งเหยิงในการเชื่อมต่อระบบต่างๆ เข้าด้วยกัน
Model Context Protocol (MCP) เข้ามาแก้ปัญหานี้ โดยทำหน้าที่เหมือนพอร์ต USB-C สำหรับ AI แทนที่จะต้องใช้สายเคเบิลเฉพาะสำหรับทุกอุปกรณ์ ทุกคนก็สามารถใช้ตัวเชื่อมต่อมาตรฐานเดียวกันได้
MCP เปลี่ยนสมการจากการเชื่อมต่อแบบ M x N ให้กลายเป็น M + N
- ผู้พัฒนา Tool เขียน MCP server เพียงตัวเดียว
- ผู้พัฒนา Application เพิ่ม MCP client เพียงตัวเดียว
- Host ใดๆ ที่รองรับ MCP ก็สามารถใช้งาน server ใดก็ได้
สถาปัตยกรรมนี้ประกอบด้วย 3 บทบาทหลัก:
• Host: แอป AI ที่คุณใช้งาน เช่น Claude Code หรือ IDE ซึ่งจะเป็นตัวตัดสินใจว่าจะเชื่อมต่อกับ server ใดบ้าง • Client: ตัวเชื่อมต่อที่อยู่ภายใน Host ทำหน้าที่รักษาการเชื่อมต่อกับ server • Server: โปรแกรมที่คุณสร้างขึ้น เพื่อเปิดให้ใช้งาน tools, ข้อมูล หรือ prompts
คุณจะใช้งาน 3 องค์ประกอบหลัก (primitives):
- Tools: ฟังก์ชันที่โมเดลเรียกใช้เพื่อดำเนินการบางอย่าง เช่น การส่งอีเมลหรือการสอบถามข้อมูลจากฐานข้อมูล
- Resources: ข้อมูลแบบอ่านอย่างเดียว (read-only) ที่แอปดึงเข้ามาใน context เช่น ไฟล์หรือ log
- Prompts: เทมเพลตที่นำกลับมาใช้ใหม่ได้ ซึ่งช่วยให้ผู้ใช้สั่งการงานเฉพาะเจาะจงได้
คุณสามารถสร้าง server ด้วย Python โดยใช้ FastMCP SDK นี่คือตัวอย่างง่ายๆ:
from mcp.server.fastmcp import FastMCP
mcp = FastMCP("demo-tools")
@mcp.tool()
def word_count(text: str) -> int:
"""Count the words in a text."""
return len(text.split())
@mcp.resource("notes://team")
def team_notes() -> str:
"""Expose team notes."""
return "Release freeze starts Friday."
@mcp.prompt()
def code_review(language: str, code: str) -> str:
"""Template for reviewing code."""
return f"Review this {language} code: {code}"
if __name__ == "__main__":
mcp.run()
เมื่อคุณสร้าง server โปรดคำนึงถึงกฎเหล่านี้:
- Security: ใช้การขออนุมัติจากผู้ใช้สำหรับ tools ที่อาจก่อให้เกิดความเสียหาย และต้องตรวจสอบ (validate) argument ทั้งหมดเสมอ
- Context: เขียนคำอธิบาย tool ให้สั้นเข้าไว้ เพราะคำอธิบายที่ยาวเกินไปจะสิ้นเปลือง token budget ของคุณ
- Errors: ส่งข้อความที่ชัดเจนกลับไป เพื่อให้โมเดลสามารถแก้ไขข้อผิดพลาดของตัวเองได้
MCP ทำให้ tools กลายเป็นสินทรัพย์ที่นำกลับมาใช้ใหม่ได้ เขียนเพียงครั้งเดียว แล้วให้ทุกโมเดลใช้งานได้เลย
แหล่งที่มา: https://dev.to/galian/model-context-protocol-explained-build-your-first-mcp-server-in-python-ian
ชุมชนแห่งการเรียนรู้เพิ่มเติม: https://t.me/GyaanSetuAi