อธิบาย 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):

  1. ความปลอดภัย (Security): ขออนุมัติจากผู้ใช้เสมอ ก่อนที่จะรันเครื่องมือที่มีการเปลี่ยนแปลงข้อมูล
  2. บริบท (Context): เขียนคำอธิบายเครื่องมือให้สั้นเข้าไว้ คำอธิบายที่ยาวเกินไปจะทำให้สิ้นเปลือง token
  3. ข้อผิดพลาด (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