หน้าแรก / บทความ / AI สำหรับ Dev

MCP คืออะไร? ต่อ AI เข้ากับไฟล์ในเครื่องด้วย Claude Desktop และ Claude Code

เข้าใจ MCP ที่เปรียบเหมือน USB-C ของ AI ทั้ง Host, Client, Server และเบื้องหลังตอน AI ใช้เครื่องมือ แล้วลงมือต่อ Filesystem Server ให้ Claude จัดไฟล์ในโฟลเดอร์ฝึก พร้อมวิธีใช้อย่างปลอดภัยและแก้ปัญหา

เคยไหมครับ อยากให้ AI ช่วยจัดไฟล์ในเครื่อง แต่ทำได้แค่ copy เนื้อหามาวางในแชตทีละไฟล์ แล้ว copy คำตอบกลับไปเซฟเอง AI ฉลาดแค่ไหนก็ช่วยได้แค่ในกรอบแชต เพราะมันมองไม่เห็นและแตะไม่ได้ทุกอย่างที่อยู่นอกหน้าต่างนั้น

MCP คือสิ่งที่มาแก้ปัญหานี้ มันเป็นมาตรฐานกลางที่ให้แอป AI ต่อเข้ากับไฟล์ ฐานข้อมูล และเครื่องมือต่างๆ ได้ด้วยวิธีเดียวกัน พอต่อแล้ว AI จะอ่าน สร้าง และย้ายไฟล์ให้เราได้เอง โดยถามเราก่อนทุกครั้ง

บทความนี้จะพาต่อ MCP ตัวแรกให้ Claude จัดการไฟล์ในโฟลเดอร์ฝึกได้ ทั้งใน Claude Desktop และ Claude Code จบบทความนี้คุณจะ:

  • อธิบายได้ว่า MCP คืออะไร และ Host, Client, Server ต่างกันยังไง
  • รู้ว่าเบื้องหลังตอน AI ใช้เครื่องมือผ่าน MCP เกิดอะไรขึ้นบ้าง
  • ต่อ Filesystem Server กับ Claude Desktop แล้วให้ AI จัดไฟล์ในโฟลเดอร์ฝึก
  • เพิ่ม ดู และลบ MCP ใน Claude Code ด้วยคำสั่ง claude mcp
  • ใช้ MCP อย่างปลอดภัย และแก้ปัญหาที่เจอบ่อยได้เอง

MCP คือสาย USB-C ของ AI

MCP ย่อมาจาก Model Context Protocol เป็นมาตรฐานแบบ open source สำหรับต่อแอป AI เข้ากับโลกภายนอก 3 แบบ คือแหล่งข้อมูล (ไฟล์ ฐานข้อมูล) เครื่องมือ (ค้นเว็บ เครื่องคิดเลข) และขั้นตอนการทำงาน (prompt สำเร็จรูป)

เว็บทางการของ MCP เปรียบมันกับพอร์ต USB-C ลองนึกถึงสมัยก่อนที่มือถือแต่ละยี่ห้อมีหัวชาร์จของตัวเอง ย้ายไปใช้เครื่องใหม่ทีต้องซื้อสายใหม่ที พอทุกอย่างใช้ USB-C สายเส้นเดียวก็เสียบได้ทุกเครื่อง MCP ทำแบบเดียวกันกับ AI

  • AI คือสมอง คิดเก่ง แต่ไม่มีมือ
  • MCP คือสาย เป็นภาษากลางที่ทุกฝั่งตกลงกันไว้
  • MCP Server คือปลายสายที่ต่อกับของจริง เช่น โฟลเดอร์ในเครื่อง หรือแอป Notion หนึ่งตัวต่อของหนึ่งอย่าง
เรื่องก่อนมี MCPหลังมี MCP
ให้ AI ใช้ไฟล์copy มาวางในแชตทีละไฟล์AI อ่าน สร้าง ย้ายไฟล์เองเมื่อเราอนุญาต
ต่อกับเครื่องมือแต่ละแอปต้องทำตัวเชื่อมของตัวเองทำ server ครั้งเดียว ใช้ได้กับทุกแอปที่รองรับ MCP
ตัวอย่างงานทำได้แค่ในแชตClaude Code สร้างเว็บจากแบบใน Figma หรือ AI จัดตารางจาก Google Calendar และ Notion

ข้อดีที่สำคัญที่สุดคือ ทำครั้งเดียว ใช้ได้ทุกที่ คนทำ server เขียนตัวเชื่อมแค่ครั้งเดียว ส่วนเราก็เลือกใช้แอป AI ตัวไหนก็ได้ที่รองรับ MCP ไม่ว่าจะเป็น Claude Desktop, Claude Code หรือ VS Code

Host Client Server ใครทำอะไร

ระบบ MCP มี 3 บทบาท ชื่ออาจฟังดูเหมือนกัน แต่หน้าที่ต่างกันชัดเจน

Host คือแอป AI ข้างในมี Client หนึ่งตัวต่อ Server หนึ่งตัว Server แต่ละตัวต่อกับของจริงคนละอย่าง
Host หนึ่งตัว มี Client แยกตาม Server ที่ต่ออยู่
  • MCP Host คือแอป AI ที่เราใช้ เช่น Claude Desktop, Claude Code หรือ VS Code เทียบกับสมองที่สั่งงาน
  • MCP Client คือตัวกลางที่ Host สร้างขึ้นให้เองอัตโนมัติ หนึ่ง Client ต่อหนึ่ง Server เทียบกับปลายสายฝั่งสมอง
  • MCP Server คือโปรแกรมที่เปิดให้ใช้ข้อมูลหรือเครื่องมือ เช่น Filesystem Server ที่จัดการไฟล์ Git Server ที่อ่านประวัติโค้ด หรือ Sentry ที่ดู error ของแอป เทียบกับปลายสายฝั่งของจริง

เราไม่ต้องยุ่งกับ Client เลยครับ แค่บอก Host ว่าจะต่อ Server ตัวไหน ที่เหลือ Host จัดการเอง

Server แบบ Local กับ Remote

แบบทำงานยังไงตัวอย่าง
Localรันบนเครื่องเรา แอปเปิดให้เอง คุยกันผ่าน stdio ภายในเครื่อง ไม่ผ่านเน็ตFilesystem
Remoteอยู่บนเซิร์ฟเวอร์ของผู้ให้บริการ คุยผ่าน Streamable HTTP และมักให้ล็อกอินด้วย OAuthNotion, Sentry

stdio (standard input/output) คือช่องทางรับส่งข้อความระหว่างโปรแกรมในเครื่องเดียวกัน แบบเดียวกับที่เราพิมพ์คำสั่งใน Terminal แล้วเห็นผลลัพธ์ Server แบบ Local จึงไม่ต้องเปิดพอร์ตหรือต่อเน็ตเลย บทความนี้ใช้ Filesystem Server ซึ่งเป็นแบบ Local

เบื้องหลังตอน AI ใช้เครื่องมือ

สมมติเราพิมพ์ว่า "ย้ายรูปใน mcp-test ไปไว้ในโฟลเดอร์ Images" ระหว่างนั้นเกิดอะไรขึ้นบ้าง

ขั้นตอนตอน AI ใช้เครื่องมือ Client ขอรายการเครื่องมือ AI เลือกเครื่องมือ แอปถามเรา แล้วเรียกเครื่องมือและส่งผลกลับ
ทุกครั้งที่ AI จะแตะไฟล์ เราเป็นคนกดอนุญาต
  1. ขอรายการเครื่องมือ ตอนเปิดแอป Client ส่งคำขอ tools/list ไปถาม Server ว่ามีเครื่องมืออะไรบ้าง ได้กลับมาเป็นรายชื่อพร้อมคำอธิบาย
  2. AI เลือกเครื่องมือ พอเราสั่งงาน AI อ่านรายชื่อนั้นแล้วเลือกตัวที่ตรงงาน เช่น สร้างโฟลเดอร์ แล้วย้ายไฟล์
  3. แอปถามเรา Claude Desktop เด้งกล่องให้กดอนุญาตหรือปฏิเสธ
  4. เรียกเครื่องมือ ถ้าเราอนุญาต Client ส่ง tools/call ไปให้ Server ทำงานจริง แล้วส่งผลกลับให้ AI สรุปให้เราฟัง

ข้อความที่วิ่งไปมาเป็น JSON ตามรูปแบบ JSON-RPC หน้าตาประมาณนี้ (เราไม่ต้องเขียนเอง แอปทำให้)

ตัวอย่างคำขอ tools/call (ย่อ)
{
  "jsonrpc": "2.0",
  "id": 7,
  "method": "tools/call",
  "params": {
    "name": "move_file",
    "arguments": {
      "source": "/Users/folk/Desktop/mcp-test/cat.png",
      "destination": "/Users/folk/Desktop/mcp-test/Images/cat.png"
    }
  }
}

method บอกว่าขอทำอะไร name คือชื่อเครื่องมือ และ arguments คือข้อมูลที่ส่งให้เครื่องมือ เห็นแบบนี้แล้วจะเข้าใจว่าทำไมกล่องขออนุญาตถึงสำคัญ เพราะมันคือจังหวะเดียวที่เราได้ดูว่า AI กำลังจะทำอะไรกับไฟล์ของเรา

Server ให้อะไรได้บ้าง

ประเภทคืออะไรตัวอย่างใน Server ฐานข้อมูล
Toolsฟังก์ชันที่ AI สั่งให้ทำงานได้เครื่องมือ query ข้อมูล
Resourcesข้อมูลให้ AI อ่านโครงสร้างตาราง (schema)
Promptsแม่แบบคำสั่งที่ใช้ซ้ำได้prompt สอนวิธีใช้ฐานข้อมูลนี้

ทีม MCP ทำ Server ตัวอย่าง (reference servers) ไว้ให้ลองหลายตัว เช่น Filesystem (จัดการไฟล์), Fetch (ดึงหน้าเว็บ), Git (อ่านและค้น repo), Memory (ความจำแบบ knowledge graph), Sequential Thinking (คิดเป็นขั้น), Time (เวลาและเขตเวลา) และ Everything (ไว้ทดสอบ) ตัวเหล่านี้ ทำไว้เพื่อการเรียนรู้ ไม่ได้ตั้งใจให้ใช้กับงานจริงทันที

ศัพท์ที่ต้องรู้

คำเทียบกับความหมาย
Config fileสมุดตั้งค่าของแอปclaude_desktop_config.json บอก Claude Desktop ว่าต้องเปิด Server ตัวไหน
JSONแบบฟอร์มที่เครื่องอ่านได้รูปแบบเขียนข้อมูลด้วย {} [] และ "ชื่อ": ค่า
Node.jsเครื่องยนต์โปรแกรมที่ใช้รัน Server ส่วนใหญ่
npxร้านเช่าเครื่องมือดาวน์โหลดแพ็กเกจแล้วรันทันที ไม่ต้องติดตั้งถาวร มากับ Node.js
Pathที่อยู่บ้านตำแหน่งไฟล์หรือโฟลเดอร์ในเครื่อง
Absolute pathที่อยู่เต็มพร้อมรหัสไปรษณีย์path ที่เริ่มจากรากของเครื่อง เช่น C:\Users\... หรือ /Users/...
Terminal / PowerShellช่องพิมพ์สั่งงานเครื่องmacOS ใช้ Terminal ส่วน Windows ใช้ PowerShell
Connectorปลั๊กที่เสียบอยู่ชื่อที่ Claude Desktop ใช้เรียก Server ที่ต่อไว้
Scopeขอบเขตการแชร์ใน Claude Code บอกว่า Server ใช้ได้กับใครและโปรเจกต์ไหน
OAuthปุ่ม "ล็อกอินด้วย..."ให้สิทธิ์แอปเข้าบัญชีเราโดยไม่ต้องบอกรหัสผ่าน

เตรียมเครื่อง

ต้องมี 2 อย่าง คือ Claude Desktop และ Node.js (เพราะ Filesystem Server รันด้วย Node) และโฟลเดอร์ฝึกอีกหนึ่งโฟลเดอร์

Windows

ดาวน์โหลดหรืออัปเดต Claude Desktop จาก claude.ai/download จากนั้นเปิด PowerShell (กดปุ่ม Start แล้วพิมพ์ PowerShell) เช็ก Node.js

PowerShell (Windows)
node --version
npm --version
ผลลัพธ์ที่ควรเห็น (เลขเวอร์ชันอาจต่างไป)
v22.11.0
10.9.0

ถ้าขึ้นว่าไม่รู้จัก node ให้ติดตั้งรุ่น LTS จาก nodejs.org แล้วปิดเปิด PowerShell ใหม่ ถ้า npm --version ขึ้น error ว่ารัน npm.ps1 ไม่ได้เพราะเครื่องปิดการรันสคริปต์ไว้ ให้ใช้ npm.cmd --version แทน ผลเหมือนกัน

ต่อมาหาที่อยู่ของ Desktop ให้แน่ชัด เพราะบางเครื่องเปิด OneDrive ไว้ ทำให้ Desktop ย้ายไปอยู่ในโฟลเดอร์ OneDrive

PowerShell (Windows)
[Environment]::GetFolderPath('Desktop')
ผลลัพธ์ที่ควรเห็น (แบบใดแบบหนึ่ง)
C:\Users\folk\Desktop
C:\Users\folk\OneDrive\Desktop

folk คือชื่อผู้ใช้ในตัวอย่าง ของเราจะเป็นชื่ออื่น ให้จดผลลัพธ์นี้ไว้ เดี๋ยวต้องใช้

macOS

ถ้ามี Claude Desktop อยู่แล้ว กดเมนู Claude ที่แถบบนสุดของจอ แล้วเลือก Check for Updates... เพื่ออัปเดต จากนั้นเปิด Terminal (กด Cmd+Space แล้วพิมพ์ Terminal)

Terminal (macOS)
node --version
whoami
ผลลัพธ์ที่ควรเห็น (ประมาณนี้)
v22.11.0
folk

whoami บอกชื่อผู้ใช้ของเครื่อง ที่อยู่ Desktop จะเป็น /Users/ชื่อผู้ใช้/Desktop เช่น /Users/folk/Desktop

สร้างโฟลเดอร์ฝึก

PowerShell (Windows)
mkdir "$([Environment]::GetFolderPath('Desktop'))\mcp-test"
Terminal (macOS)
mkdir ~/Desktop/mcp-test

แล้วใส่รูปภาพสัก 3–4 รูป กับไฟล์ข้อความ 1 ไฟล์ (เช่น note.txt ที่เขียนอะไรไว้สักย่อหน้า) ลงในโฟลเดอร์ mcp-test

ทำไมต้องใช้โฟลเดอร์ฝึก ครั้งแรกที่ให้ AI แตะไฟล์ เราอาจกดอนุญาตผิด หรือสั่งงานกำกวม ถ้าพลาดในโฟลเดอร์ฝึก ของที่เสียหายก็แค่ไฟล์ทดสอบ ไม่ใช่งานจริงหรือรูปครอบครัว

เช็กว่าได้แล้ว: node --version ขึ้นเลขเวอร์ชัน และบน Desktop มีโฟลเดอร์ mcp-test ที่มีรูปกับไฟล์ข้อความ

ต่อ MCP ตัวแรกกับ Claude Desktop

เปิดไฟล์ตั้งค่า

ใน Claude Desktop กดเมนู Claude ที่แถบเมนูของระบบ (ไม่ใช่หน้าตั้งค่าบัญชีในหน้าต่างแชต) เลือก Settings... ไปที่แท็บ Developer แล้วกด Edit Config แอปจะสร้างไฟล์ตั้งค่าให้ถ้ายังไม่มี แล้วเปิดโฟลเดอร์ที่เก็บไฟล์ไว้ให้

  • Windows %APPDATA%\Claude\claude_desktop_config.json
  • macOS ~/Library/Application Support/Claude/claude_desktop_config.json

เปิดไฟล์นี้ด้วยโปรแกรมแก้ข้อความ แนะนำ VS Code เพราะจะขีดเส้นแดงตรงที่เขียน JSON ผิดให้เห็นทันที

ใส่ค่า Filesystem Server

ใส่ข้อความตามระบบที่ใช้ แล้วเปลี่ยน folk เป็นชื่อผู้ใช้ของเรา (หรือใช้ path ที่ได้จากหัวข้อเตรียมเครื่องได้เลย)

claude_desktop_config.json (Windows)
{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-filesystem",
        "C:\\Users\\folk\\Desktop\\mcp-test"
      ]
    }
  }
}
claude_desktop_config.json (macOS)
{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-filesystem",
        "/Users/folk/Desktop/mcp-test"
      ]
    }
  }
}
ส่วนความหมาย
"mcpServers"กล่องรวม Server ทุกตัวที่ให้ Claude Desktop เปิด
"filesystem"ชื่อเล่นของ Server ตัวนี้ จะขึ้นในรายการ Connectors
"command": "npx"ใช้ npx รัน Server
"-y"ตอบ yes ให้อัตโนมัติตอน npx ถามว่าจะดาวน์โหลดแพ็กเกจไหม
"@modelcontextprotocol/server-filesystem"ชื่อแพ็กเกจของ Filesystem Server
path สุดท้ายโฟลเดอร์ที่อนุญาตให้ Server แตะได้ ใส่หลายโฟลเดอร์ได้ คั่นด้วยจุลภาค

บรรทัดสุดท้ายคือหัวใจของความปลอดภัย Server จะทำงานได้ เฉพาะในโฟลเดอร์ที่เราใส่ไว้ เท่านั้น เราใส่แค่ mcp-test จึงมั่นใจได้ว่าไฟล์อื่นในเครื่องไม่โดนแตะ

บน Windows ต้องเขียน \\ (สองตัว) แทน \ เพราะใน JSON เครื่องหมาย \ ตัวเดียวมีความหมายพิเศษ ถ้าในไฟล์มีค่าอื่นอยู่แล้ว ให้เพิ่ม "mcpServers" เป็นอีกหนึ่งรายการในวงเล็บปีกกาชั้นนอกสุด คั่นด้วยจุลภาค อย่าลบของเดิมทิ้ง

โครงไฟล์เมื่อมีค่าเดิมอยู่แล้ว
{
  "ค่าเดิมที่มีอยู่": ...,
  "mcpServers": { ... }
}

JSON ผิดบ่อย 5 แบบ

ไฟล์ตั้งค่าผิดแค่ตัวเดียว Claude Desktop ก็อ่านทั้งไฟล์ไม่ได้ เช็ก 5 จุดนี้ก่อนเซฟ

  1. ลืมจุลภาค ระหว่างรายการ เช่น ระหว่าง "-y" กับชื่อแพ็กเกจ
  2. มีจุลภาคเกิน หลังรายการสุดท้าย เช่น "...mcp-test", แล้วตามด้วย ]
  3. ใช้อัญประกาศโค้ง “ ” ที่ติดมาจากการ copy ในเว็บหรือโปรแกรมเอกสาร ต้องเป็น " " ตรงๆ เท่านั้น
  4. ใส่ \ ตัวเดียว ใน path ของ Windows
  5. วงเล็บไม่ครบคู่ { ต้องมี } และ [ ต้องมี ]

ปิดแอปให้สนิทแล้วเปิดใหม่

เซฟไฟล์แล้ว ต้องปิด Claude Desktop ให้สนิทจริงๆ เพราะแอปอ่านไฟล์ตั้งค่าแค่ตอนเปิดเท่านั้น การกดกากบาทปิดหน้าต่างไม่พอ เพราะแอปยังทำงานอยู่เบื้องหลัง

  • Windows คลิกขวาไอคอน Claude ที่มุมขวาล่างของ taskbar แล้วเลือก Quit
  • macOS กด Cmd+Q

แล้วเปิด Claude Desktop ใหม่

เช็กว่าต่อสำเร็จ

ในหน้าแชต กดปุ่ม "+" ที่มุมซ้ายล่างของช่องพิมพ์ ชี้ที่ Connectors แล้วกด Manage connectors จะเห็น filesystem อยู่ในรายการ กดเข้าไปจะเห็นเครื่องมือของมัน เช่น อ่านไฟล์ ดูรายการในโฟลเดอร์ เขียนไฟล์ แก้ไฟล์ สร้างโฟลเดอร์ ย้ายไฟล์ และค้นหาไฟล์

เช็กว่าได้แล้ว: เห็น filesystem ใน Manage connectors พร้อมรายการเครื่องมือ ถ้าไม่เห็น ข้ามไปดูหัวข้อเจอปัญหาด้านล่าง

ลองให้ AI จัดการไฟล์

ลองพิมพ์ทีละข้อในแชตใหม่ แล้วสังเกตว่า AI เลือกใช้เครื่องมือตัวไหน

ข้อ 1 ดูของในโฟลเดอร์
ในโฟลเดอร์ mcp-test มีไฟล์อะไรบ้าง
ข้อ 2 สร้างไฟล์ใหม่
แต่งกลอนสั้นๆ แล้วเซฟเป็นไฟล์ poem.txt ในโฟลเดอร์ mcp-test
ข้อ 3 สร้างโฟลเดอร์แล้วย้ายไฟล์
ย้ายรูปทั้งหมดในโฟลเดอร์ mcp-test ใส่โฟลเดอร์ใหม่ชื่อ Images
ข้อ 4 อ่านแล้วสรุป
สรุปเนื้อหาไฟล์ข้อความในโฟลเดอร์ mcp-test ให้หน่อย
ข้อ 5 ค้นหาไฟล์
หาไฟล์ที่ชื่อมีคำว่า poem ในโฟลเดอร์ mcp-test

ข้อ 1 AI จะใช้เครื่องมือดูรายการในโฟลเดอร์ ข้อ 2 ใช้เครื่องมือเขียนไฟล์ ข้อ 3 ใช้สองตัวต่อกัน คือสร้างโฟลเดอร์แล้วย้ายไฟล์ทีละรูป ข้อ 4 ใช้อ่านไฟล์ และข้อ 5 ใช้ค้นหาไฟล์ ทุกครั้งที่ AI จะใช้เครื่องมือ จะมีกล่องขออนุญาตเด้งขึ้นมา

อ่านกล่องขออนุญาตทุกครั้ง ดูชื่อเครื่องมือและข้อมูลที่จะส่งไปก่อนกด ถ้าตรงกับที่เราสั่งค่อยกดอนุญาต (Allow Once คืออนุญาตครั้งนี้ครั้งเดียว) ถ้าไม่ตรง เช่น สั่งให้อ่านแต่มันจะเขียน หรือจะย้ายไฟล์ที่เราไม่ได้พูดถึง ให้กดปฏิเสธ (Deny) ข้อความในไฟล์หรือหน้าเว็บที่ AI อ่านเข้าไปอาจมีคำสั่งแอบแฝงหลอกให้ AI ทำอย่างอื่นได้

เช็กว่าได้แล้ว: เปิดโฟลเดอร์ mcp-test ดูเอง ต้องเห็นไฟล์ poem.txt และโฟลเดอร์ Images ที่มีรูปทั้งหมดอยู่ข้างใน

ใช้ MCP กับ Claude Code

ถ้าใช้ Claude Code (Claude ที่ทำงานใน Terminal) ไม่ต้องแก้ไฟล์ JSON เอง เพราะมีคำสั่ง claude mcp จัดการให้ รูปแบบคือ

รูปแบบคำสั่ง
claude mcp add [ตัวเลือก] <ชื่อ> -- <คำสั่ง> [อาร์กิวเมนต์...]

เครื่องหมาย -- แบ่งคำสั่งเป็นสองฝั่ง ฝั่งซ้ายเป็นตัวเลือกของ Claude Code เอง เช่น --scope ฝั่งขวาคือคำสั่งที่ใช้รัน Server ซึ่งจะถูกส่งต่อไปตรงๆ ไม่ถูกแปลความ ถ้าไม่มี -- Claude Code อาจเข้าใจผิดว่า -y เป็นตัวเลือกของตัวเอง

ให้ cd ไปที่โฟลเดอร์โปรเจกต์ที่จะเปิด Claude Code ก่อน (เพราะค่าเริ่มต้นจะผูก Server ไว้กับโฟลเดอร์ที่เรายืนอยู่) แล้วเพิ่ม Filesystem Server

Terminal (macOS)
claude mcp add filesystem -- npx -y @modelcontextprotocol/server-filesystem /Users/folk/Desktop/mcp-test
PowerShell (Windows)
claude mcp add filesystem -- npx -y @modelcontextprotocol/server-filesystem C:\Users\folk\Desktop\mcp-test

ใน Terminal ไม่ต้องใช้ \\ สองตัวเหมือนใน JSON ใช้ path ปกติได้เลย จากนั้นเช็กสถานะ

Terminal
claude mcp list
ผลลัพธ์ที่ควรเห็น (ประมาณนี้)
filesystem: npx -y @modelcontextprotocol/server-filesystem /Users/folk/Desktop/mcp-test - ✔ Connected
คำสั่งใช้ทำอะไร
claude mcp listดู Server ทั้งหมดพร้อมสถานะ
claude mcp get filesystemดูรายละเอียดของ Server ตัวเดียว
claude mcp remove filesystemลบ Server ออก
/mcp (พิมพ์ในแชต)ดูสถานะ และล็อกอิน Server ที่ต้องใช้ OAuth

เช็กว่าได้แล้ว: claude mcp list ขึ้น ✔ Connected ข้าง filesystem แล้วลองเปิด claude ถามว่า "ในโฟลเดอร์ mcp-test มีไฟล์อะไรบ้าง"

Scope ใช้กับใคร โปรเจกต์ไหน

ใส่ --scope (หรือ -s) ไว้ฝั่งซ้ายของ -- เพื่อเลือกขอบเขต

scopeใช้ได้กับเก็บไว้ที่
local (ค่าเริ่มต้น)เราคนเดียว เฉพาะโปรเจกต์นี้~/.claude.json
projectทุกคนในทีม ผ่าน Git.mcp.json ในโปรเจกต์
userเราคนเดียว ทุกโปรเจกต์~/.claude.json

เช่น claude mcp add --scope user filesystem -- npx ... จะใช้ได้ทุกโปรเจกต์ ส่วน scope project เหมาะกับ Server ที่ทั้งทีมต้องใช้ เพราะไฟล์ .mcp.json ถูก commit ไปพร้อมโค้ด และ Claude Code จะถามยืนยันก่อนใช้ Server จากไฟล์นี้ทุกครั้ง

Server แบบ Remote

Server ที่อยู่บนอินเทอร์เน็ตใช้ --transport http แล้วตามด้วย URL ไม่ต้องมี --

Terminal
claude mcp add --transport http notion https://mcp.notion.com/mcp

เพิ่มเสร็จ claude mcp list มักขึ้น ! Needs authentication แปลว่ายังไม่ได้ล็อกอิน ให้เปิด claude แล้วพิมพ์ /mcp เลือก notion แล้วล็อกอินในเบราว์เซอร์ที่เด้งขึ้นมา สถานะอื่นที่อาจเห็นคือ ✔ Connected (พร้อมใช้) และ ✘ Failed to connect (ต่อไม่ได้ ให้เช็ก URL และเน็ต)

ใช้ MCP อย่างปลอดภัย

MCP ทำให้ AI มีมือ และมือนั้นทำได้ทั้งดีและพัง จำ 7 ข้อนี้ไว้

  1. ใช้แค่ Server ที่เชื่อถือได้ Server แบบ Local รันด้วยสิทธิ์เดียวกับเรา ทำอะไรกับเครื่องได้เท่ากับที่เราทำได้
  2. อ่านคำสั่งก่อนใส่ในไฟล์ตั้งค่า ระวังของแปลกอย่าง sudo, rm -rf, curl ที่ส่งข้อมูลออกไป หรือ path ที่ชี้ไปโฟลเดอร์ .ssh
  3. ให้สิทธิ์น้อยที่สุด ใส่เฉพาะโฟลเดอร์ที่ต้องใช้ ไม่ใส่ทั้งไดรฟ์ C:\ หรือทั้งโฟลเดอร์ home
  4. อ่านกล่องขออนุญาตทุกครั้ง อย่ากดอนุญาตเพราะเคยชิน
  5. ระวังคำสั่งแอบแฝง ไฟล์หรือหน้าเว็บที่ AI อ่าน อาจมีข้อความหลอกให้ AI ทำสิ่งที่เราไม่ได้สั่ง (prompt injection)
  6. Server ตัวอย่างมีไว้เรียนรู้ ก่อนใช้กับงานจริงให้อ่าน README และเช็กว่ายังมีคนดูแล
  7. ถอด Server ที่ไม่ใช้แล้วออก ยิ่งต่อไว้น้อย ช่องทางเสี่ยงยิ่งน้อย

กฎข้อเดียวที่ควรจำ โฟลเดอร์ไหนที่เราไม่กล้าให้คนแปลกหน้าเข้ามาจับ ก็อย่าใส่โฟลเดอร์นั้นในไฟล์ตั้งค่า MCP

เจอปัญหา ลองเช็กตามนี้

อาการสาเหตุวิธีแก้
ไม่เห็น filesystem ใน Connectorsแอปยังไม่ได้อ่านไฟล์ตั้งค่าใหม่Quit ให้สนิทแล้วเปิดใหม่
Quit แล้วก็ยังไม่เห็นJSON เขียนผิดเช็ก 5 จุดในหัวข้อ JSON ผิดบ่อย
Server ขึ้นว่าต่อไม่ได้path ไม่ใช่ absolute หรือโฟลเดอร์ไม่มีอยู่จริงใช้ path เต็ม และเช็กว่าสะกดถูก
log มี ENOENT และ ${APPDATA} (Windows)Server หาโฟลเดอร์ AppData ไม่เจอเพิ่ม "env" ตามกล่องด้านล่าง
npx ไม่ทำงานบน Windowsnpm ยังไม่ได้ติดตั้งแบบ globalรัน npm install -g npm
AI เรียกเครื่องมือแล้วเงียบServer มี error ระหว่างทำงานดู log แล้วเปิด Claude Desktop ใหม่
ขึ้นว่าเข้าโฟลเดอร์ไม่ได้โฟลเดอร์นั้นไม่อยู่ใน argsเพิ่ม path ใน args แล้วเปิดแอปใหม่
claude mcp list ขึ้น ✘ บน WindowsWindows เรียก npx ตรงๆ ไม่ได้ในบางเครื่องลบแล้วเพิ่มใหม่ โดยใส่ cmd /c หน้า npx

วิธีแก้ ENOENT บน Windows คือบอก Server ตรงๆ ว่าโฟลเดอร์ AppData อยู่ที่ไหน โดยเพิ่ม "env" ในบล็อกของ Server (เปลี่ยน folk เป็นชื่อผู้ใช้ของเรา)

claude_desktop_config.json (Windows) เพิ่ม env
{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-filesystem",
        "C:\\Users\\folk\\Desktop\\mcp-test"
      ],
      "env": {
        "APPDATA": "C:\\Users\\folk\\AppData\\Roaming\\"
      }
    }
  }
}

ลองรัน Server เองดู error

ถ้ายังไม่รู้ว่าผิดตรงไหน ลองรันคำสั่งเดียวกับที่ Claude Desktop ใช้ด้วยตัวเอง ถ้ามี error จะเห็นตรงหน้าเลย

PowerShell (Windows)
npx -y @modelcontextprotocol/server-filesystem C:\Users\folk\Desktop\mcp-test
Terminal (macOS)
npx -y @modelcontextprotocol/server-filesystem /Users/folk/Desktop/mcp-test

ถ้าไม่มี error มันจะค้างรอข้อความอยู่เฉยๆ ซึ่งแปลว่า Server ทำงานปกติ (มันรอให้ Client คุยด้วย) กด Ctrl+C เพื่อออก

ดู log ของ Claude Desktop

PowerShell (Windows)
type "$env:APPDATA\Claude\logs\mcp*.log"
Terminal (macOS)
tail -n 20 -f ~/Library/Logs/Claude/mcp*.log

ไฟล์ mcp.log เก็บเรื่องการเชื่อมต่อโดยรวม ส่วน mcp-server-filesystem.log เก็บข้อความที่ตัว Server พิมพ์ออกมา ถ้า Server พังตอนเปิด สาเหตุมักอยู่ในไฟล์หลัง บน macOS คำสั่ง tail -f จะค้างแสดงบรรทัดใหม่ไปเรื่อยๆ กด Ctrl+C เพื่อออก

ถอดออก และไปต่อ

ฝึกเสร็จแล้วถ้าไม่ใช้ต่อ ให้ถอด Server ออกตามข้อ 7 ของความปลอดภัย

  • Claude Desktop ลบบล็อก "filesystem": { ... } ออกจากไฟล์ตั้งค่า (ระวังจุลภาคที่เหลือค้าง) แล้ว Quit และเปิดแอปใหม่
  • Claude Code รัน claude mcp remove filesystem

ไปต่อได้หลายทาง

  • ดู Server อื่นๆ ทั้งตัวทางการและจากชุมชนที่ คลัง Server ของ MCP บน GitHub อ่าน README ของแต่ละตัวก่อนติดตั้งเสมอ
  • อยากทำ Server ของตัวเอง ดูหัวข้อ Build servers และ SDK ภาษาต่างๆ ที่ modelcontextprotocol.io
  • คู่มือต่อ Server แบบ Local ฉบับทางการ Connect to local MCP servers และการใช้ MCP ใน Claude Code
  • MCP คือหนึ่งในชิ้นส่วนของการให้ AI ทำงานวนเอง อ่านต่อได้ที่ Loop Engineering

สรุป

  • MCP คือมาตรฐานกลางที่ต่อแอป AI เข้ากับไฟล์ ฐานข้อมูล และเครื่องมือ เหมือน USB-C ที่สายเส้นเดียวเสียบได้ทุกเครื่อง
  • Host คือแอป AI, Client คือตัวกลางที่ Host สร้างให้หนึ่งตัวต่อหนึ่ง Server, Server คือปลายสายที่ต่อกับของจริง
  • ทุกครั้งที่ AI จะใช้เครื่องมือ แอปจะขออนุญาตก่อน และ Filesystem Server แตะได้เฉพาะโฟลเดอร์ที่ใส่ไว้ใน args
  • Claude Desktop ตั้งค่าใน claude_desktop_config.json แล้วต้อง Quit ให้สนิทก่อนเปิดใหม่ ส่วน Claude Code ใช้ claude mcp add, list, get, remove
  • ใช้แค่ Server ที่เชื่อถือได้ ให้สิทธิ์น้อยที่สุด อ่านกล่องขออนุญาตทุกครั้ง และถอดตัวที่ไม่ใช้ออก

พร้อมแล้วก็ไปทำ Quiz ท้ายบทด้านล่างเพื่อรับ XP ได้เลยครับ

Quiz ท้ายบท

5 ข้อ · ข้อละ 10 XP

ทดสอบความเข้าใจเรื่อง MCP ตอบถูกข้อละ 10 XP

  • 5 ข้อ
  • ไม่จับเวลา
  • เฉลยทันทีทุกข้อ