MCP เจาะลึก
ลงลึกเรื่อง Model Context Protocol — ติดตั้ง MCP server, สร้าง server ของตัวเอง, debug
ในบทเรียนหลักผมเล่าว่า MCP คือ "มือ" ที่ยื่นให้ AI เอื้อมถึงเครื่องมือจริง — บทนี้จะเจาะลึกเรื่องที่ผมเสียเวลาเอาเองตอนเริ่มใช้: เลือก server, debug ตอน Claude เห็น MCP แต่ใช้ไม่ได้, ตั้งค่า scope, และคำเตือน security ที่ผมเรียนรู้แบบเจ็บๆ
เลือก server แบบไหนใช้ตอนไหน
ผมแยก server เป็น 3 กลุ่มในหัว
กลุ่ม 1 — ของที่อยู่ในเครื่องคุณ
filesystemอ่าน/เขียนไฟล์ใน folder ที่กำหนดeverything(Windows) ค้นไฟล์ทั้งเครื่องsqlitequery database local
ใช้เมื่อ data อยู่ในเครื่องคุณเอง ไม่อยาก upload ไป cloud
กลุ่ม 2 — ของที่อยู่บน cloud คุณเอง
notion,google-drive,gmail,linear,slacksupabase,github,cloudflare
ใช้เมื่อ data อยู่ใน SaaS ที่คุณ login อยู่แล้ว — Claude เข้าผ่าน OAuth แทนคุณ
กลุ่ม 3 — ของที่ดึงโลกภายนอก
fetch/puppeteer/playwright— เปิดเว็บbrave-search,exa— search enginetime,weather— เครื่องมือทั่วไป
ใช้เมื่อต้องการให้ Claude หาข้อมูลใหม่ๆ ที่อยู่นอก training data
โครงไฟล์ config ที่ผมใช้
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-filesystem",
"/Users/cj/Documents/business"
]
},
"supabase": {
"command": "npx",
"args": ["-y", "@supabase/mcp-server-supabase@latest"],
"env": {
"SUPABASE_ACCESS_TOKEN": "sbp_xxx"
}
},
"fetch": {
"command": "uvx",
"args": ["mcp-server-fetch"]
}
}
}
3 บรรทัดสำคัญที่ผมเช็คทุกครั้ง
commandปกติเป็นnpx(Node) หรือuvx(Python) — ติดตั้งเองตามภาษาของ serverargsตัวแรกคือชื่อ package ตามด้วย config args (เช่น path สำหรับ filesystem)envสำหรับ secret — อย่า hardcode ใน args เพราะเห็น log
Debug ตอน MCP ใช้ไม่ได้
ผมเจอบ่อย — ติด server แล้ว Claude เห็นว่า "มี server ชื่อ filesystem" แต่เรียกใช้แล้ว error ลำดับ debug ของผม
1. เช็ค log ของ Claude Desktop
Mac:
tail -f ~/Library/Logs/Claude/mcp*.log
Windows:
%APPDATA%\Claude\Logs\mcp*.log
ดูว่า server start ขึ้นไหม error ตรงไหน
2. รัน server ตรงๆ ด้วยตัวเอง
ถ้า config คือ npx -y @modelcontextprotocol/server-filesystem /path ก็ลองรัน command นี้ใน terminal ตรงๆ ดู ถ้า error ก็เห็นทันทีว่าสาเหตุอะไร — ส่วนใหญ่เพราะ path ผิดหรือยังไม่ได้ install Node/npm
3. ตรวจ permission ของ folder
filesystem server เข้าถึงได้แค่ folder ที่ระบุใน args — ไม่ใช่ทั้ง home ถ้าให้น้อยไปจะเข้าโฟลเดอร์ย่อยที่ต้องการไม่ได้ ถ้าให้เยอะไปก็เสี่ยง
4. Restart Claude Desktop เต็มรูปแบบ
ปิด → quit (Cmd+Q ไม่ใช่กดปิดหน้าต่าง) → เปิดใหม่ ไม่งั้นบางครั้ง config เก่ายังค้าง
Server ของตัวเอง — เมื่อไหร่ค่อยทำ
ในบทเรียน L5-07 ผมเล่าวิธีสร้าง MCP server ในบทนั้นแล้ว — บทนี้ผมเล่าเรื่องที่ "ไม่ควรทำ"
ไม่ต้องทำ MCP server เอง ถ้า:
- เครื่องมือที่อยากเชื่อมมี server official อยู่แล้ว
- เพิ่งเริ่มเรียน MCP — ใช้ official ก่อนสัก 1-2 เดือน
- งานเดียวที่ต้องการคือ "อ่านไฟล์/เรียก API" — เขียน script ปกติเร็วกว่า
ทำเองคุ้มเมื่อ:
- ต้องเชื่อมระบบภายในที่ไม่มีใน registry (เช่น ERP เก่าของบริษัท)
- มีงานที่เรียกซ้ำๆ จากหลาย session
- อยากแชร์ tool เดียวกันให้ทีม
ผมทำ server เองครั้งแรกตอนเชื่อมระบบ BOQ ของบริษัท — ก่อนหน้านี้ทุกครั้ง paste excel ทั้งหมด หลังมี server แค่บอก "ดู BOQ project บ้านคุณนภดล" Claude ทำได้เลย
ลองเลย: ขอ Claude help debug MCP
กรอกให้ตรงกับคุณ
(ไม่บังคับ — ว่างไว้ก็คัดลอกได้)ผมติด MCP server ชื่อ [ชื่อ server] ใน Claude Desktop แล้ว restart แล้วแต่ใน chat ใช้ไม่ได้ นี่คือ config ของผม: [paste config] นี่คือ error ใน log: [paste log] ช่วยวิเคราะห์ว่าน่าจะติดตรงไหน ถามผมเพิ่มได้ถ้าต้องดูข้อมูลอื่น
เคล็ดลับ
- • อย่า paste API key ลงไป — mask ด้วย xxx
- • ก่อน paste log ตรวจว่าไม่มีข้อมูลส่วนตัว
Security: 3 บทเรียนที่ผมเสียเงินไปแล้ว
บทที่ 1 — ห้ามให้ filesystem เข้าทั้ง home
ครั้งแรกผมตั้ง path เป็น /Users/cj คิดว่าสะดวก — Claude เลยอ่านได้ทุกอย่างรวมถึง .ssh/, .aws/, .env ไม่มีอะไรเสียแต่ผมตกใจตอนเห็นมัน list folder ทั้งหมด เปลี่ยนทันทีให้เข้าได้แค่ ~/Documents/business
บทที่ 2 — ห้ามใส่ token ใน args
Args อาจเข้าไปอยู่ใน log หรือ process list คนอื่นในเครื่องเดียวกันเห็นได้ เก็บใน env block เสมอ
บทที่ 3 — Server แปลกๆ ใน Discord/Reddit ห้ามเชื่อ
มีคนทำ MCP server หน้าตาน่าใช้ใน GitHub repo ใหม่ — ลองดูโค้ดจริงก่อน install ว่าเรียก network ออกไหน เก็บ data อะไรไป ถ้ามี star น้อยกว่า 50 และ author ไม่รู้จัก ผมไม่ใช้
ตารางตัดสินใจ — ใช้ MCP server ตัวไหน
| ความต้องการ | ลองอันนี้ก่อน |
|---|---|
| อ่าน/แก้ไฟล์ในเครื่อง | filesystem (official) |
| เปิดเว็บ ค้นข้อมูล | fetch + brave-search |
| เชื่อม Notion ของบริษัท | notion (official ผ่าน Integration) |
| Google Workspace | google-drive + gmail (official) |
| Database SQL (Postgres/MySQL) | postgres-mcp / mysql-mcp |
| Supabase | @supabase/mcp-server-supabase |
| ดู GitHub repo | github (official) |
| LINE OA | ยังไม่มี official — ใช้ webhook + custom |
ลองทำดู: ตรวจ MCP setup ของคุณให้ปลอดภัย
บทถัดไป
ถ้าใช้ MCP คล่องแล้ว บทความเสริม "สร้าง Agent" จะพาไปอีกขั้น — ใช้ subagent ทำงานเฉพาะทางบน data จาก MCP
บทนี้มีประโยชน์กับคุณมั้ยครับ?
ผมอ่าน feedback เองทุกอันแล้วเอาไปปรับเนื้อหา