EP6 MCP ให้ AI มีมือ เขียนเครื่องมือครั้งเดียว ใช้ได้กับ AI หลายตัว
MCP คือมาตรฐานที่ให้ AI ต่อกับระบบอื่น เช่น ฐานข้อมูลหรือระบบบทความ เขียน MCP server ตัวเล็กใน 10 บรรทัด ต่อเข้า Claude Code และสิ่งที่ต้องระวังก่อนให้ AI แตะระบบจริง
- MCP คือปลั๊กมาตรฐาน เขียนเครื่องมือเป็น MCP server ครั้งเดียว AI ทุกตัวที่รองรับ MCP ใช้ได้
- คำอธิบายเครื่องมือสำคัญเท่ากับตัวโค้ด เพราะ AI ใช้มันตัดสินว่าจะเรียกเมื่อไหร่
- เริ่มจากเครื่องมืออ่านอย่างเดียว ค่อยเพิ่มสิทธิ์เขียน และอย่าติดตั้ง server ที่ไม่รู้ที่มา
ห้าตอนที่ผ่านมา AI ของเราทำงานกับไฟล์และคำสั่งในเครื่อง แต่ข้อมูลจริงของงานมักอยู่ที่อื่น เช่น ฐานข้อมูล ระบบบทความ หรือระบบค้นเอกสาร ตอนนี้จะให้มัน มีมือ เข้าไปใช้ระบบพวกนั้น ผ่านมาตรฐานชื่อ MCP (Model Context Protocol) ซึ่งเป็นประตูแรกสู่การทำงานร่วมกับ AI ตัวอื่นในตอนถัดไปด้วย
ปัญหา: ต่อทีละคู่ ไม่จบ
ถ้าไม่มีมาตรฐาน ทุกครั้งที่อยากให้ AI ตัวหนึ่งใช้ระบบหนึ่ง ต้องเขียนโค้ดเชื่อมเฉพาะคู่นั้น มี AI 3 ตัว ระบบ 3 ระบบ ก็ต้องเขียน 9 ชุด และพอเปลี่ยน AI ก็ต้องเขียนใหม่
ไฟฟ้าแก้ปัญหานี้ด้วยปลั๊กมาตรฐาน เครื่องใช้ไฟฟ้าไม่ต้องรู้ว่าไฟมาจากโรงไฟฟ้าไหน
หลักการ: เขียนเครื่องมือเป็น MCP server ครั้งเดียว แล้ว AI ทุกตัวที่รองรับ MCP ต่อใช้ได้
MCP ทำงานยังไง
- MCP server คือโปรแกรมเล็ก ๆ ที่ประกาศว่ามีเครื่องมืออะไรบ้าง แต่ละเครื่องมือมีชื่อ คำอธิบาย และรับข้อมูลอะไร
- MCP client คือตัว AI เช่น Claude Code ที่ต่อเข้า server แล้วเห็นรายการเครื่องมือ
- เวลาทำงาน AI อ่านคำอธิบาย ตัดสินใจเองว่าจะเรียกเครื่องมือไหน server ทำงานจริง แล้วส่งผลกลับ
server ต่อได้สองแบบ คือรันเป็นโปรแกรมในเครื่อง หรือเปิดให้ต่อผ่านเครือข่าย
เขียน MCP server ตัวเล็กสุด
ใช้ Python กับ library mcp ทางการ
from mcp.server.fastmcp import FastMCP
mcp = FastMCP("notes")
@mcp.tool()
def search_notes(query: str) -> str:
"""ค้นบันทึกการประชุมด้วยคำค้น คืนบรรทัดที่ตรง"""
with open("notes.txt", encoding="utf-8") as f:
return "".join(line for line in f if query in line) or "ไม่พบ"
mcp.run()
แล้วต่อเข้า Claude Code
claude mcp add notes -- python server.py
จากนี้ถามว่า “ประชุมครั้งไหนพูดถึงงบ” AI จะเห็นเครื่องมือ search_notes และเรียกเอง สังเกตว่าบรรทัด docstring ใต้ชื่อฟังก์ชันคือ คำอธิบายที่ AI อ่าน สำคัญแบบเดียวกับคำอธิบายของ skill ใน EP2
ตัวอย่างจริง: server เดียว ใช้กับ AI สองแบบ
เราเขียน MCP server ไว้ใช้เองสามตัว ได้แก่ ตัวค้นเอกสารด้วยความหมาย ตัวจัดการไฟล์สื่อ และตัวจัดการบทความ ตัวหลังมีเครื่องมือ 5 อย่าง เช่น สร้าง แก้ และดึงรูปปกของบทความ เก็บข้อมูลในฐานข้อมูล
จุดที่น่าสนใจคือ server ตัวนี้ถูกใช้โดย AI สองแบบพร้อมกัน แบบแรกคือทีม agent ที่รันบนโมเดลในเครื่อง ต่อผ่านเครือข่าย แบบที่สองคือเครื่องมือ AI อีกตัว ต่อแบบโปรแกรมในเครื่อง โค้ดของ server ชุดเดียว ไม่ต้องเขียนเชื่อมใหม่ให้ AI แต่ละตัว นี่คือสิ่งที่มาตรฐานให้เรา
สิ่งที่ต้องระวัง
- เครื่องมือทำงานด้วยสิทธิ์ของเรา ถ้าเครื่องมือลบข้อมูลได้ AI ก็ลบได้ เริ่มจากเครื่องมือ อ่านอย่างเดียว ก่อน แล้วค่อยเพิ่มสิทธิ์เขียนเมื่อมั่นใจ และงานที่ย้อนกลับไม่ได้ควรให้คนกดยืนยัน
- อย่าติดตั้ง server ที่ไม่รู้ที่มา server คือโปรแกรมที่รันในเครื่องเรา คิดเหมือนติดตั้งโปรแกรมทั่วไป
- ผลจากเครื่องมือคือข้อมูล ไม่ใช่คำสั่ง ถ้าเครื่องมือดึงข้อความจากเว็บหรือฐานข้อมูลที่คนอื่นเขียนได้ ข้อความนั้นอาจมีประโยคหลอกให้ AI ทำอย่างอื่น ระบบที่ดีต้องไม่ให้ AI ทำตามข้อความในข้อมูล
- อย่าใส่ key ในโค้ดหรือ CLAUDE.md ให้อ่านจากตัวแปรแวดล้อม
ลองเองใน 10 นาที
- สร้างไฟล์
notes.txtใส่ข้อความสักสิบบรรทัด แล้วสร้างserver.pyตามตัวอย่าง - ติดตั้งด้วย
pip install mcpแล้วรันclaude mcp add notes -- python server.py - เปิด Claude Code ถามเรื่องที่อยู่ในบันทึก ดูว่ามันเรียก
search_notesเอง - ลองแก้ docstring ให้คลุมเครือ แล้วถามใหม่ จะเห็นว่าคำอธิบายมีผลกับการเลือกใช้จริง
ตรงไหนที่คนต้องทำ
คนเป็นคนตัดสินว่า ระบบไหนที่ AI ได้แตะ และแตะได้แค่ไหน อ่านอย่างเดียว เขียนได้ หรือลบได้ การให้มือ AI ก็เหมือนให้กุญแจ ให้เท่าที่งานต้องใช้
ตอนหน้า
พอมีมาตรฐานกลางแล้ว คำถามต่อไปคือ ถ้าไม่ใช่ Claude ทุกงานล่ะ EP7 จะเล่าวิธีให้ Claude ทำงานร่วมกับ AI ตัวอื่น ทั้งโมเดลที่รันในเครื่องเอง และโมเดลของเจ้าอื่นผ่านทางเดียว
คำถามที่พบบ่อย
MCP ต่างจาก API ธรรมดายังไง
API เขียนมาให้โปรแกรมเรียก ส่วน MCP ห่อ API ให้อยู่ในรูปที่ AI เข้าใจ มีชื่อ คำอธิบาย และรูปแบบข้อมูลของแต่ละเครื่องมือ AI จึงค้นเจอและเลือกเรียกได้เอง โดยไม่ต้องเขียนโค้ดเชื่อมใหม่ให้ AI แต่ละตัว
ใช้ MCP server ของคนอื่นได้ไหม
ได้ แต่ให้ระวังเหมือนติดตั้งโปรแกรม server ทำงานด้วยสิทธิ์ของเรา ใช้เฉพาะของที่มาจากแหล่งที่เชื่อถือได้ และอ่านว่ามันเข้าถึงอะไรบ้างก่อน
คำสั่งและค่าตั้งในบทความทดสอบบนระบบตัวอย่าง ลองบนเครื่องทดสอบก่อนใช้กับระบบจริงเสมอ