อธิบาย Model Context Protocol (MCP)
เลิกเขียนโค้ดเชื่อมต่อ (integration code) แบบเดิมซ้ำแล้วซ้ำเล่าได้แล้ว
หากคุณเชื่อมต่อ LLM เข้ากับฐานข้อมูลหรือ API คุณมักจะต้องเขียนโค้ดเชื่อมต่อ (glue code) ขึ้นมาใหม่สำหรับทุกๆ โมเดล ซึ่งทำให้เกิดความวุ่นวาย เพราะคุณต้องคอยจัดการการเชื่อมต่อจำนวนมากสำหรับเครื่องมือที่หลากหลาย
Model Context Protocol (MCP) จะเข้ามาแก้ปัญหานี้ โดยทำหน้าที่เหมือนพอร์ต USB-C สำหรับ AI คุณสร้างเครื่องมือเพียงครั้งเดียว และโมเดลใดๆ ก็สามารถนำไปใช้งานได้
สถาปัตยกรรมประกอบด้วย 3 ส่วนหลัก:
• Host: แอปที่คุณใช้งาน เช่น Claude Code หรือ IDE • Client: ตัวเชื่อมต่อที่อยู่ภายใน Host • Server: โปรแกรมที่คุณสร้างขึ้นเพื่อเปิดให้เข้าถึงข้อมูลหรือเครื่องมือต่างๆ
คุณสามารถสร้าง MCP server ได้โดยใช้ 3 องค์ประกอบหลัก (primitives):
- Tools: ฟังก์ชันที่โมเดลเรียกใช้เพื่อทำงานบางอย่าง เช่น การส่งอีเมล
- Resources: ข้อมูลแบบอ่านอย่างเดียว (read-only) ที่แอปดึงเข้ามา เช่น ไฟล์ log
- Prompts: เทมเพลตที่นำกลับมาใช้ใหม่ได้สำหรับงานเฉพาะทาง
นี่คือวิธีการสร้างเซิร์ฟเวอร์พื้นฐานด้วย Python โดยใช้ FastMCP SDK:
from mcp.server.fastmcp import FastMCP
mcp = FastMCP("demo-tools")
@mcp.tool()
def word_count(text: str) -> int:
"""Count 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 code reviews."""
return f"Review this {language} code: {code}"
if __name__ == "__main__":
mcp.run()
โค้ดนี้จะจัดการการสื่อสารที่ซับซ้อนแทนคุณ โดย docstrings ของคุณจะกลายเป็นคำแนะนำสำหรับโมเดล
3 เคล็ดลับสำหรับการใช้งานจริง (production):
- ความปลอดภัย (Security): ขออนุมัติจากผู้ใช้เสมอ ก่อนที่จะรันเครื่องมือที่มีการเปลี่ยนแปลงข้อมูล
- บริบท (Context): เขียนคำอธิบายเครื่องมือให้สั้นเข้าไว้ คำอธิบายที่ยาวเกินไปจะทำให้สิ้นเปลือง token
- ข้อผิดพลาด (Errors): ส่งข้อความที่ชัดเจน โมเดลสามารถแก้ไขข้อผิดพลาดอย่าง "User not found" ได้ แต่ไม่สามารถแก้ไขโค้ดที่พัง (crash) ได้
เลิกสร้างตัวเชื่อมต่อแบบเฉพาะเจาะจง (bespoke connectors) ได้แล้ว สร้าง MCP server เพียงครั้งเดียว แล้วปล่อยให้ทุกโมเดลใช้งานมัน
แหล่งที่มา: https://dev.to/galian/model-context-protocol-explained-build-your-first-mcp-server-in-python-ian