เรียน claude
12 นาที

MCP เจาะลึก

ลงลึกเรื่อง Model Context Protocol — ติดตั้ง MCP server, สร้าง server ของตัวเอง, debug

ในบทเรียนหลักผมเล่าว่า MCP คือ "มือ" ที่ยื่นให้ AI เอื้อมถึงเครื่องมือจริง — บทนี้จะเจาะลึกเรื่องที่ผมเสียเวลาเอาเองตอนเริ่มใช้: เลือก server, debug ตอน Claude เห็น MCP แต่ใช้ไม่ได้, ตั้งค่า scope, และคำเตือน security ที่ผมเรียนรู้แบบเจ็บๆ

เลือก server แบบไหนใช้ตอนไหน

ผมแยก server เป็น 3 กลุ่มในหัว

กลุ่ม 1 — ของที่อยู่ในเครื่องคุณ

  • filesystem อ่าน/เขียนไฟล์ใน folder ที่กำหนด
  • everything (Windows) ค้นไฟล์ทั้งเครื่อง
  • sqlite query database local

ใช้เมื่อ data อยู่ในเครื่องคุณเอง ไม่อยาก upload ไป cloud

กลุ่ม 2 — ของที่อยู่บน cloud คุณเอง

  • notion, google-drive, gmail, linear, slack
  • supabase, github, cloudflare

ใช้เมื่อ data อยู่ใน SaaS ที่คุณ login อยู่แล้ว — Claude เข้าผ่าน OAuth แทนคุณ

กลุ่ม 3 — ของที่ดึงโลกภายนอก

  • fetch / puppeteer / playwright — เปิดเว็บ
  • brave-search, exa — search engine
  • time, 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 บรรทัดสำคัญที่ผมเช็คทุกครั้ง

  1. command ปกติเป็น npx (Node) หรือ uvx (Python) — ติดตั้งเองตามภาษาของ server
  2. args ตัวแรกคือชื่อ package ตามด้วย config args (เช่น path สำหรับ filesystem)
  3. 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

0/3 ช่อง

กรอกให้ตรงกับคุณ

(ไม่บังคับ — ว่างไว้ก็คัดลอกได้)
ผมติด MCP server ชื่อ [ชื่อ server] ใน Claude Desktop แล้ว
restart แล้วแต่ใน chat ใช้ไม่ได้

นี่คือ config ของผม:
[paste config]

นี่คือ error ใน log:
[paste log]

ช่วยวิเคราะห์ว่าน่าจะติดตรงไหน ถามผมเพิ่มได้ถ้าต้องดูข้อมูลอื่น
เปิด Claude.ai

เคล็ดลับ

  • อย่า 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 Workspacegoogle-drive + gmail (official)
Database SQL (Postgres/MySQL)postgres-mcp / mysql-mcp
Supabase@supabase/mcp-server-supabase
ดู GitHub repogithub (official)
LINE OAยังไม่มี official — ใช้ webhook + custom

ลองทำดู: ตรวจ MCP setup ของคุณให้ปลอดภัย

บทถัดไป

ถ้าใช้ MCP คล่องแล้ว บทความเสริม "สร้าง Agent" จะพาไปอีกขั้น — ใช้ subagent ทำงานเฉพาะทางบน data จาก MCP

บทนี้มีประโยชน์กับคุณมั้ยครับ?

ผมอ่าน feedback เองทุกอันแล้วเอาไปปรับเนื้อหา