MCP servers สำหรับ Claude Code ในปี 2026: 7 integrations และการติดตั้ง
MarkdownMCP คืออะไร และจะเชื่อมต่อภายใน 5 นาทีด้วยคำสั่ง claude mcp add ได้อย่างไร เซิร์ฟเวอร์ 7 รายการ: GitHub, Postgres, Slack, Notion, Sentry และ Playwright กำหนด allowlist ผ่าน hooks
อ่านบทความฉบับเต็ม
ดูคำแนะนำเพิ่มเติมเกี่ยวกับการใช้งาน Ailoot ได้ในเอกสารประกอบ
MCP Server คืออะไร และทำไม Claude Code จึงต้องใช้?
ประเด็นสำคัญ
MCP (Model Context Protocol) เป็นมาตรฐานเปิดจาก Anthropic ที่ช่วยให้ Claude Code เข้าถึงเครื่องมือและข้อมูลภายนอกผ่านอินเทอร์เฟซแบบรวมศูนย์ ใช้โปรโตคอลเดียวแทน API ที่แตกต่างกันสิบชุด Anthropic เรียกสิ่งนี้ว่า “USB-C สำหรับแอปพลิเคชัน AI”: เสียบพอร์ต แล้ว Claude ก็จะมองเห็นฐานข้อมูล อีเมล แอปส่งข้อความ หรือ repository ของคุณ
Anthropic ประกาศเปิดตัว MCP ในวันที่ 25 พฤศจิกายน 2024 ในฐานะมาตรฐานเปิด ภายในหนึ่งปี โปรโตคอลนี้ก็กลายเป็นมาตรฐานอุตสาหกรรม โดย OpenAI, Google DeepMind และ Microsoft รองรับแล้ว repository modelcontextprotocol/servers อย่างเป็นทางการมี reference servers จากโครงการ MCP เอง (Filesystem, Memory, Sequential Thinking, Fetch และอื่น ๆ) ส่วนผู้ให้บริการอย่าง GitHub, Notion, Stripe, Linear, Cloudflare และ Sentry เผยแพร่ MCP servers ใน repository ของตนเอง ดัชนีชุมชนต่าง ๆ มีเซิร์ฟเวอร์รวมกันนับพันรายการ
ในทางเทคนิค MCP ทำงานผ่าน JSON-RPC 2.0 สถาปัตยกรรมเรียบง่าย: Claude Code ของคุณเป็น client ส่วนบริการใด ๆ ก็เป็น server และ MCP server ที่อยู่ตรงกลางมีองค์ประกอบสามอย่าง ได้แก่ tools (สิ่งที่ AI เรียกใช้ได้), resources (สิ่งที่ AI อ่านได้) และ prompts (เทมเพลตสำเร็จรูป)
เช่นเดียวกับที่ USB-C เป็นวิธีมาตรฐานในการเชื่อมต่ออุปกรณ์กับอุปกรณ์ต่อพ่วงประเภทต่าง ๆ MCP ก็เป็นวิธีมาตรฐานในการเชื่อมต่อโมเดล AI กับแหล่งข้อมูลและเครื่องมือต่าง ๆ
เหตุใดเรื่องนี้จึงสำคัญสำหรับคนทำ vibe coding: ก่อนมี MCP การเชื่อมต่อระหว่าง Claude กับบริการของบุคคลที่สามแต่ละครั้งต้องทำเป็น integration แยกต่างหากพร้อม wrapper ของตัวเอง แต่เมื่อใช้ MCP การเชื่อมต่อ Postgres, Slack และ GitHub ใช้คำสั่งที่คล้ายกันสามคำสั่ง และเมื่อต้องการเลิกใช้บริการ ก็ถอดการเชื่อมต่อได้ง่ายเช่นกัน
MCP แตกต่างจาก Skills และ Subagents อย่างไร?
ประเด็นสำคัญ
กลไกทั้งสามอย่างดูคล้ายกัน แต่แก้ปัญหาคนละแบบ Skills คือเวิร์กโฟลว์และพรอมป์ต์ของคุณในรูปแบบโค้ด ส่วน Subagents คือ “เพื่อนร่วมงาน” ผู้เชี่ยวชาญที่แยกออกมาต่างหากและมีบริบทของตนเอง MCP มอบเครื่องมือภายนอกที่ Claude ใช้เข้าถึงบริการและข้อมูลได้ ค่าใช้จ่ายด้านโทเค็นของแต่ละแบบต่างกัน: Skill มีค่าใช้จ่ายต่ำที่สุด ส่วน MCP มักมีค่าใช้จ่ายสูงกว่า ตอนเริ่มต้น MCP จะใส่เฉพาะชื่อเครื่องมือและคำแนะนำของเซิร์ฟเวอร์ไว้ในบริบท จากนั้น Claude จะโหลดคำอธิบายฉบับเต็มเมื่อต้องการ ค่าใช้จ่ายส่วนใหญ่มาจากการตอบกลับของบริการ ซึ่งอาจมีขนาดใหญ่และยังคงอยู่ในบทสนทนา
ตารางง่าย ๆ สำหรับแยกความแตกต่าง:
| กลไก | คืออะไร | ใช้เมื่อใด | ค่าใช้จ่ายด้านโทเค็น |
|---|---|---|---|
| Skill | ไฟล์ที่มีคำแนะนำและพรอมป์ต์ใน .claude/skills/ | เวิร์กโฟลว์ที่ทำซ้ำ เช่น เขียนอีเมล จัดทำรายงาน เผยแพร่โพสต์ | ต่ำ โหลดเมื่อมีทริกเกอร์ |
| Subagent | Agent แยกต่างหากที่มีบริบทและเครื่องมือของตนเอง | งานยาวที่ทำควบคู่กัน เช่น ตรวจทาน ตรวจสอบ วิจัย | ปานกลาง ใช้บริบทของตนเอง |
| MCP server | บริการที่มี tools/resources ผ่าน JSON-RPC | ต้องการเข้าถึงข้อมูลแบบเรียลไทม์ เช่น ฐานข้อมูล อีเมล แอปส่งข้อความ repository | ปานกลางถึงสูง มีเพียงชื่อเครื่องมือที่อยู่ในบริบท ส่วนคำอธิบายโหลดเมื่อต้องการ และการตอบกลับจากบริการอาจมีขนาดใหญ่ |
ข้อสรุปเชิงปฏิบัติ: หากกำหนดงานไว้ครั้งเดียวแล้วทำซ้ำเป็นข้อความ นั่นคือ Skill หาก AI ต้องรับคำตอบสดจากระบบภายนอก นั่นคือ MCP หากงานยาว มีหลายแขนง และต้องใช้สมองแยกต่างหาก นั่นคือ Subagent
อ่านเพิ่มเติมเกี่ยวกับกลไกอีกสองแบบที่เกี่ยวข้องได้ที่ Claude Code Skills: วิธีสร้างคลังของคุณเอง และ Claude Code Subagents: 5 ตัวอย่างพร้อมใช้
วิธีติดตั้ง MCP Server: คำสั่งแรกของคุณภายใน 5 นาที
ประเด็นสำคัญ
ไวยากรณ์เดียวกันนี้ใช้ได้กับทุกกรณี: claude mcp add [name] -- [launch command] เซิร์ฟเวอร์จะปรากฏในรายการ claude mcp list จากนั้น Claude จะค้นหา tools ของเซิร์ฟเวอร์และเริ่มใช้งานในการสนทนา ไม่ต้องแก้ไข config ด้วยตนเอง ทุกอย่างทำผ่าน CLI
ไวยากรณ์เต็มจากเอกสารทางการ:
claude mcp add <name> [options] -- <command> [args...]
รองรับ transport สามแบบ: --transport stdio (ค่าเริ่มต้น เป็นโปรเซสในเครื่อง), --transport http (HTTP ระยะไกล) และ --transport sse (ระบุว่าเลิกใช้แล้ว ให้ใช้เฉพาะเมื่อเซิร์ฟเวอร์ยังไม่ได้ย้ายระบบ)
รองรับ scope สามแบบผ่านแฟล็ก --scope:
local— ใช้ได้เฉพาะในโฟลเดอร์โปรเจกต์ปัจจุบัน (ค่าเริ่มต้น)project— เขียนลง.mcp.jsoncommit ไปยัง repository และให้ทั้งทีมใช้งานได้user— ใช้ได้ทั่วโลกกับทุกโปรเจกต์ในเครื่อง
ตัวอย่างขั้นต่ำโดยใช้ Filesystem server อ้างอิงของโครงการ MCP เริ่มใช้งานได้ภายในครึ่งนาที:
claude mcp add filesystem -- npx -y @modelcontextprotocol/server-filesystem@2026.8.31 /Users/me/projects
claude mcp list
หลังเรียก list คุณจะเห็น filesystem ในรายการหากโฟลเดอร์ที่ระบุในคำสั่งมีอยู่ หากไม่มี เซิร์ฟเวอร์จะเริ่มทำงานไม่ได้ เซิร์ฟเวอร์จะมองเห็นโฟลเดอร์ทำงานของ Claude Code ซึ่งก็คือโฟลเดอร์ที่คุณใช้เปิดโปรแกรม ด้านล่างในหัวข้อ 5.2 ฉันจะอธิบายว่าเหตุใดจึงเป็นเช่นนั้นและเซิร์ฟเวอร์นี้มีประโยชน์จริงเมื่อใด
หากต้องการตรวจสอบว่า MCP เชื่อมต่อแล้ว ให้เรียก /mcp ภายในเซสชัน Claude Code ระบบจะแสดงเซิร์ฟเวอร์ทั้งหมด สถานะ และรายการ tools คำแนะนำเพิ่มเติมเกี่ยวกับการใช้งาน Ailoot มีอยู่ในเอกสารประกอบ ตรวจสอบ README ของ MCP server ที่เลือกเพื่อดูคำสั่งเฉพาะของเซิร์ฟเวอร์นั้น
stdio หรือ HTTP: ควรเลือก transport แบบใด?
ประเด็นสำคัญ
stdio เป็นโปรเซสในเครื่องของคุณ ทุกอย่างทำงานได้โดยไม่ต้องใช้เครือข่าย และไม่ต้องใช้ OAuth ส่วน HTTP เป็นบริการระยะไกลที่เข้าถึงด้วย token หรือ OAuth และแชร์ข้ามอุปกรณ์ได้ หากติดตั้ง MCP server ผ่าน npx หรือ uvx ก็จะใช้ stdio หากบริการมีที่อยู่บริการสาธารณะของตัวเอง ก็จะใช้ HTTP ส่วน SSE ถูกระบุอย่างเป็นทางการว่าเลิกใช้แล้ว จึงไม่ควรพึ่งพา
เปรียบเทียบตามเกณฑ์สำคัญ:
| เกณฑ์ | stdio | HTTP |
|---|---|---|
| ทำงานที่ใด | ในเครื่อง (โปรเซสลูกของ Claude Code) | เซิร์ฟเวอร์ระยะไกล |
| การยืนยันตัวตน | ไม่จำเป็น | OAuth 2.1 หรือ Bearer token |
| พอร์ตเครือข่าย | ไม่มี | ที่อยู่สาธารณะ |
| กรณีใช้งาน | Filesystem, Postgres, ยูทิลิตีในเครื่อง | GitHub, Slack, Notion, Linear, Sentry |
| การเชื่อมต่อใหม่ | ไม่จำเป็น | หน่วงเวลาแบบ exponential backoff สูงสุด 5 ครั้ง |
| การติดตั้งใช้งาน | ติดตั้งแพ็กเกจในเครื่อง | บริการของผู้ให้บริการ |
กฎคร่าว ๆ: ทุกอย่างที่เก็บอยู่ในดิสก์หรือฐานข้อมูลในเครื่องใช้ stdio ส่วนทุกอย่างที่อยู่บนคลาวด์ใช้ HTTP โดยทางการระบุว่า SSE เลิกใช้แล้ว อย่าเลือกใช้
MCP Servers พร้อมใช้ 7 รายการสำหรับผู้ประกอบการ
ประเด็นสำคัญ
การตั้งค่าเจ็ดแบบต่อไปนี้ครอบคลุมงาน 80% ของคนทำ vibe coding ได้แก่ โค้ด (GitHub), ไฟล์ (Filesystem), ฐานข้อมูล (Postgres ผ่าน DBHub), การสื่อสารในทีม (Slack), คลังความรู้ (Notion), การติดตามข้อผิดพลาด (Sentry) และเวิร์กโฟลว์ในเบราว์เซอร์ (Playwright) สำหรับแต่ละแบบด้านล่าง ฉันให้คำสั่งติดตั้งบรรทัดเดียวและตัวอย่างคำขอที่คุณใช้สั่งให้ Claude ทำงานในการสนทนาจริงได้อย่างชัดเจน
5.1. GitHub MCP — Server อย่างเป็นทางการจาก GitHub
ทำอะไรได้: ให้ Claude Code เข้าถึง issues, pull requests, ไฟล์ repository และการรัน actions เซิร์ฟเวอร์เป็นโอเพนซอร์สและมีดาวบน GitHub มากกว่า 30,000 ดวง
การติดตั้ง (HTTP ผ่าน OAuth):
claude mcp add --transport http github https://api.githubcopilot.com/mcp/
อีกทางเลือกหนึ่ง ใช้ stdio ผ่าน Docker หากคุณต้องการ PAT token แทน OAuth
ตัวอย่าง: “อ่าน issues ที่ยังเปิดอยู่และติดป้ายกำกับ bug จัดกลุ่มตามคอมโพเนนต์ แล้วเสนอว่าควรปิดรายการใดก่อน” Claude จะเรียก GitHub MCP อ่าน issues ทั้งหมด แล้วส่งคืนรายการที่จัดลำดับความสำคัญแล้ว
Repository: github/github-mcp-server
5.2. Filesystem MCP — Reference Server ของโครงการ MCP
ทำอะไรได้: ให้ AI เข้าถึงไฟล์ในคอมพิวเตอร์ภายในโฟลเดอร์ที่ได้รับอนุมัติ เผยแพร่โดยโครงการ MCP เอง โดย registry ของ npm ระบุว่า Model Context Protocol a Series of LF Projects, LLC เป็นผู้เขียน
การติดตั้ง (stdio) โดยระบุเวอร์ชันตายตัว:
claude mcp add filesystem -- npx -y @modelcontextprotocol/server-filesystem@2026.8.31 /Users/me/projects
เมื่อ Claude Code เชื่อมต่อ จะส่งโฟลเดอร์ทำงานของตนให้เซิร์ฟเวอร์ ซึ่งจะเข้ามาแทนที่ทุกอย่างที่ระบุไว้ในคำสั่ง โฟลเดอร์ทำงานของ Claude Code คือโฟลเดอร์ที่คุณใช้เปิดโปรแกรม รวมถึงโฟลเดอร์ที่เพิ่มด้วยคำสั่ง /add-dir หรือแฟล็ก --add-dir คุณไม่สามารถระบุโฟลเดอร์แยกที่มี mockups ให้เซิร์ฟเวอร์ผ่านคำสั่งได้ อย่างไรก็ตาม โฟลเดอร์ในคำสั่งยังต้องมีอยู่จริง มิฉะนั้นเซิร์ฟเวอร์จะเริ่มทำงานไม่ได้
ดังนั้นใน Claude Code เซิร์ฟเวอร์นี้จึงทำหน้าที่ซ้ำกับเครื่องมือในตัวเป็นส่วนใหญ่ หากต้องการเข้าถึงไฟล์ในโฟลเดอร์อื่น ใช้ /add-dir ก็พอ หลังจากนั้นเครื่องมือของ Claude Code เองก็อ่านโฟลเดอร์นั้นได้เช่นกัน เซิร์ฟเวอร์นี้มีประโยชน์กว่าสำหรับโปรแกรมที่ไม่มีระบบเข้าถึงไฟล์ของตนเอง ส่วนใน Claude Desktop อาจพบปัญหาอีกแบบ: tools ของเซิร์ฟเวอร์ถูกปฏิเสธเพราะคำอธิบายใช้รูปแบบ schema รุ่นเก่า ปัญหานี้ยังไม่ได้รับการแก้ไข
ให้สิทธิ์เข้าถึงเฉพาะโฟลเดอร์ที่จำเป็นจริง ๆ ทั้งในคำสั่งและผ่าน /add-dir อย่าให้สิทธิ์เข้าถึงรากของดิสก์ เพราะนั่นคือช่องโหว่ด้านความปลอดภัยอันดับแรก
ตัวอย่าง: เรียก /add-dir ~/Documents/design ก่อน จากนั้นสั่งว่า “ย้าย mockups ทั้งหมดจาก ~/Documents/design/landing-v3/ ไปยังโปรเจกต์ปัจจุบัน แล้วเปลี่ยนชื่อให้ตรงตามรูปแบบ hero-*.png”
5.3. Postgres MCP — DBHub (Bytebase)
ทำอะไรได้: เชื่อมต่อ Claude กับ Postgres, MySQL, SQL Server, MariaDB หรือ SQLite รองรับโหมดอ่านอย่างเดียว เพื่อให้ AI agent ไม่สามารถลบฐานข้อมูลด้วยคำสั่งเดียวได้ มักใช้แทน reference server server-postgres ของ Anthropic ที่เก็บถาวรแล้ว
การติดตั้ง (HTTP, อ่านอย่างเดียว):
claude mcp add postgres -- npx -y @bytebase/dbhub --dsn "postgresql://user:pass@localhost:5432/mydb?sslmode=disable" --readonly
สำหรับฐานข้อมูล production ให้ใช้ผู้ใช้แยกที่มีสิทธิ์อ่านอย่างเดียวเสมอ และปกปิดข้อมูลส่วนบุคคลผ่าน VIEW หรือเส้นทาง API ตัวกลาง อย่าเชื่อมต่อฐานข้อมูล production ด้วยสิทธิ์เขียน
ตัวอย่าง: “ค้นหาลูกค้าที่มีสถานะการสมัครสมาชิกเป็น expired ในเดือนที่ผ่านมา แล้วแสดง 20 อันดับแรกตามยอดชำระเงินรวม”
Repository: bytebase/dbhub
5.4. Slack MCP — การสื่อสารในทีม
ทำอะไรได้: ให้ Claude อ่านช่อง Slack และส่งข้อความได้ มีประโยชน์สำหรับระบบอัตโนมัติ เช่น “เมื่อ build ผ่าน ให้โพสต์ใน #releases” หรือ “รวบรวมสรุปรายสัปดาห์จาก #engineering”
การติดตั้ง (stdio ผ่านตัวครอบ npx เช่น @modelcontextprotocol/server-slack หรือเวอร์ชันเทียบเท่าจากผู้ให้บริการ):
claude mcp add slack \
-e SLACK_BOT_TOKEN=xoxb-... \
-e SLACK_TEAM_ID=T0... \
-- npx -y @modelcontextprotocol/server-slack
การยืนยันตัวตนใช้ Slack Bot Token โดยจำกัดการเข้าถึงผ่าน scopes ฝั่ง Slack คุณให้ AI ใช้ได้เฉพาะ chat:read และ chat:write:user ซึ่งจะทำให้แก้ไขการตั้งค่า workspace ไม่ได้ ตรวจสอบ README ของเซิร์ฟเวอร์ที่เลือกเพื่อดูคำสั่งปัจจุบัน เนื่องจากระบบนิเวศนี้เปลี่ยนแปลงรวดเร็ว
ตัวอย่าง: “ทุกเช้าเวลา 9:00 ส่งรายการ PR ที่ merge เมื่อวานไปยัง #daily”
5.5. Notion MCP — คลังความรู้
ทำอะไรได้: ให้ Claude เข้าถึงหน้าและฐานข้อมูลใน Notion เป็นคลังความรู้นอกโปรเจกต์ของคุณ: หากคุณเก็บบันทึก ทะเบียนลูกค้า หรือนโยบายบรรณาธิการไว้ที่นั่น AI ก็อ่านได้
การติดตั้ง (HTTP ผ่าน OAuth):
claude mcp add --transport http notion https://mcp.notion.com/mcp
อีกทางเลือกหนึ่ง ใช้ปลั๊กอิน @makenotion/claude-code-notion-plugin อย่างเป็นทางการของ Anthropic
ตัวอย่าง: “ในฐานข้อมูล ‘Customers’ ของ Notion ให้ค้นหาทุกคนที่มีสถานะ ‘active’ และไม่ได้คุยกับเรามานานกว่าสองสัปดาห์ แล้วร่างอีเมลให้แต่ละคน”
คู่มือจาก Notion: developers.notion.com/guides/mcp
5.6. Sentry MCP — การติดตามข้อผิดพลาด
ทำอะไรได้: เชื่อมต่อ Claude กับข้อผิดพลาดในระบบ production ของคุณ เมื่อหน้าเว็บล้มเหลวด้วย 500 คุณสามารถถามว่า “แสดงปัญหา 10 รายการล่าสุดของโปรเจกต์ใน Sentry แล้วอธิบายสาเหตุที่แท้จริงของแต่ละรายการ” และรับบทวิเคราะห์ได้ทันที
การติดตั้ง (HTTP):
claude mcp add --transport http sentry https://mcp.sentry.dev/mcp
การยืนยันตัวตนทำผ่าน OAuth ของ Sentry สามารถจำกัดสิทธิ์เข้าถึงเฉพาะโปรเจกต์ได้
ตัวอย่าง: “เลือกสามปัญหาที่เกิดบ่อยที่สุดใน 24 ชั่วโมงที่ผ่านมา อธิบายด้วยภาษาง่าย ๆ ว่าเกิดอะไรขึ้น และเสนอวิธีแก้ไข”
Repository: getsentry/sentry-mcp
5.7. Playwright MCP — เวิร์กโฟลว์ในเบราว์เซอร์
ทำอะไรได้: มอบเบราว์เซอร์ให้ Claude AI สามารถเปิดหน้าเว็บ คลิก กรอกแบบฟอร์ม และจับภาพหน้าจอได้ มีประโยชน์สำหรับตรวจสอบ UI ทดสอบด้วยตนเองหลังเผยแพร่ และแยกวิเคราะห์เวิร์กโฟลว์
การติดตั้ง (stdio):
claude mcp add playwright -- npx -y @playwright/mcp@latest
เวอร์ชัน v0.0.75 ซึ่งเผยแพร่เมื่อวันที่ 7 พฤษภาคม 2026 ได้รับการดูแลอย่างต่อเนื่องโดย Microsoft (มีดาวมากกว่า 32,000 ดวง)
ตัวอย่าง: “เปิดหน้าแรกของเว็บไซต์เรา ตรวจสอบว่าการ์ดทั้งหมดแสดงผลถูกต้อง แล้วจับภาพหน้าจอบนเดสก์ท็อปและมือถือ”
Repository: microsoft/playwright-mcp
ตรวจสอบ README ของ Playwright MCP เวอร์ชันที่เลือกเพื่อดูคำสั่งที่ระบุเวอร์ชันตายตัว แฟล็กสำหรับเซสชันพร้อมกันหลายรายการ และข้อผิดพลาดในการติดตั้งที่พบบ่อย
ควบคุมความปลอดภัยด้วย PreToolUse Hook อย่างไร
ประเด็นสำคัญ
MCP มอบอำนาจให้ AI มาก: เขียนลงฐานข้อมูล ส่งข้อความ และลบไฟล์ได้ PreToolUse hook ควบคุมคำขอเครื่องมือที่ตรง matcher ได้ แต่ regex ของ prefix SQL ไม่ใช่สิทธิ์ฐานข้อมูล และ matcher เฉพาะ Postgres ไม่ครอบคลุม Slack หรือเครื่องมือไฟล์ ใช้สิทธิ์บริการและระบบไฟล์จริงก่อน แล้วทดสอบขอบเขต hook แยก
การบล็อกด้วย prefix SQL ไม่ใช่ขอบเขตอ่านอย่างเดียว เพราะสาม prefix ตัวใหญ่ไม่ครอบคลุม SQL ตัวเล็ก comments, UPDATE, INSERT, ALTER, หลาย statements หรือฟังก์ชันที่มีผลข้างเคียง ใช้ role ฐานข้อมูลแยกที่มี read-only grants และตรวจ grants บนฐานข้อมูลทดสอบที่ทิ้งได้ Hook เป็นการควบคุมเรียกเครื่องมือเพิ่ม ไม่แทนสิทธิ์จริง
ตัวอย่าง กักกันที่จงใจจำกัดขอบเขต นี้ปฏิเสธทุกคำขอผ่าน MCP สามตระกูลที่ระบุจนกว่าจะตรวจและทดสอบนโยบายเฉพาะ บล็อกทั้งอ่านและเขียน ต้องจับคู่ชื่อเซิร์ฟเวอร์และเครื่องมือจริง เซิร์ฟเวอร์ที่เปลี่ยนชื่อ Bash ในตัว หรือ connector อื่นอยู่นอก patterns
ใส่กฎแยกเหล่านี้ใน .claude/settings.json:
{
"hooks": {
"PreToolUse": [
{
"matcher": "mcp__postgres__.*",
"hooks": [{"type": "command", "command": "bash \"$CLAUDE_PROJECT_DIR/.claude/hooks/deny-unapproved-mcp.sh\""}]
},
{
"matcher": "mcp__slack__.*",
"hooks": [{"type": "command", "command": "bash \"$CLAUDE_PROJECT_DIR/.claude/hooks/deny-unapproved-mcp.sh\""}]
},
{
"matcher": "mcp__filesystem__.*",
"hooks": [{"type": "command", "command": "bash \"$CLAUDE_PROJECT_DIR/.claude/hooks/deny-unapproved-mcp.sh\""}]
}
]
}
}
บันทึกสคริปต์นี้เป็น .claude/hooks/deny-unapproved-mcp.sh ใช้ สัญญาตัดสินใจ PreToolUse ตามเอกสาร ไม่ใช้ decision: approve/block ที่ระดับบนแบบเก่า:
#!/bin/bash
printf '%s\n' '{"hookSpecificOutput":{"hookEventName":"PreToolUse","permissionDecision":"deny","permissionDecisionReason":"This MCP server family is quarantined pending a reviewed policy."}}'
สคริปต์ไม่ parse หรือจัดหมวด SQL แต่ปฏิเสธเสมอเมื่อชื่อเครื่องมือตรง ทดสอบ matcher และผล hook ในเซสชันแยกก่อนเชื่อมข้อมูลสำคัญ: SELECT 1, delete ตัวเล็ก, UPDATE ที่มี comment นำหน้า เครื่องมืออ่านหรือส่ง Slack และ Filesystem อ่าน .env ต้องถูกปฏิเสธเมื่อชื่อตรง เครื่องมือจากตระกูลเซิร์ฟเวอร์อื่นต้องอยู่นอกตัวอย่าง และต้องตรวจขอบเขตนั้นแยก
หากต้องให้อ่านฐานข้อมูล ใช้ grants ที่ตรวจแล้วและแทนการกักกันด้วยนโยบายที่รีวิวสำหรับเครื่องมือจริง Slack งานอ่านต้องใช้ credential ไม่มีสิทธิ์ส่ง ส่วนไฟล์ต้องจำกัด allowed roots และสิทธิ์ไฟล์ของกระบวนการ อย่าอ้างว่า hook นี้ป้องกันการเข้าถึงผ่านเครื่องมืออื่น shell commands ไฟล์แนบพรอมป์ต์ หรือไฟล์นโยบายที่เอเจนต์แก้ได้
แนวทางเดียวกันนี้อธิบายอย่างละเอียดขึ้นในคู่มือ Plan Mode ใน Claude Code ซึ่งมีกลไก “ตรวจสอบก่อนดำเนินการ” คล้ายกัน
ควรทำอย่างไรหากมีเครื่องมือ 40+ รายการแล้ว Claude สับสน?
ประเด็นสำคัญ
เซิร์ฟเวอร์เจ็ดรายการอาจมีเครื่องมือรวมกัน 50–100 รายการได้อย่างง่ายดาย Claude Code ใช้ Tool Search โดยค่าเริ่มต้น: เมื่อเริ่มต้น จะใส่เฉพาะชื่อเครื่องมือและคำแนะนำของเซิร์ฟเวอร์ลงในบริบท และ Claude จะโหลดคำอธิบายฉบับเต็มเมื่อต้องใช้เครื่องมือนั้น หากปิดการค้นหา คำอธิบายทั้งหมดจะถูกโหลดพร้อมกัน และเมื่อมีเครื่องมือประมาณ 40 รายการ Claude ก็เริ่มสับสน: เลือกเครื่องมือผิด หรือเรียกใช้ MCP ทั้งที่คำสั่งทั่วไปก็ทำได้
ตามเอกสาร Claude Code ฟีเจอร์นี้เปิดใช้งานเป็นค่าเริ่มต้นแล้วและไม่ต้องเปิดเอง
กรณียกเว้นที่ Claude Code โหลดเครื่องมือทั้งหมดทันที ได้แก่ การทำงานผ่านพร็อกซีของบุคคลที่สาม (เมื่อตั้ง ANTHROPIC_BASE_URL เป็นที่อยู่อื่นที่ไม่ใช่ของ Anthropic), โมเดลรุ่นก่อนเจเนอเรชัน 4.5 บน Google Cloud และการติดตั้งใช้งาน Microsoft Foundry บน Azure ตัวแปร ENABLE_TOOL_SEARCH ใช้เปลี่ยนพฤติกรรมดังนี้:
- ไม่ได้ตั้งค่า — MCP tools ทั้งหมดจะถูกเลื่อนการโหลดและโหลดเมื่อต้องการ;
true— ทำงานเหมือนเดิม และ Claude Code จะพยายามเปิดการค้นหาผ่านพร็อกซีด้วย;auto— โหมดตามเกณฑ์: ตราบใดที่คำอธิบายเครื่องมือทั้งหมดใช้พื้นที่น้อยกว่า 10% ของหน้าต่างบริบท จะโหลดทันที หากเกินกว่านั้นจะเลื่อนการโหลด;auto:N— ทำงานเหมือนเดิม แต่กำหนดเปอร์เซ็นต์เกณฑ์เองได้ เช่นauto:5;false— พฤติกรรมแบบเดิม โดยใส่เครื่องมือทั้งหมดไว้ในบริบททันที
สำหรับเครื่องมือสำคัญที่ต้องแสดงเสมอ มีแฟล็ก alwaysLoad: true ใน .mcp.json ถัดจากคำอธิบายเซิร์ฟเวอร์ เครื่องมือแต่ละรายการที่ตั้งค่านี้จะใช้พื้นที่ในบริบทตั้งแต่นาทีแรก จึงควรใช้เฉพาะกับเครื่องมือที่ Claude ต้องใช้เกือบทุกคำตอบ
หากคุณมี MCP servers ตั้งแต่ห้ารายการขึ้นไปและ Claude สับสนว่าจะเรียกเครื่องมือใด ให้ตรวจสอบก่อนว่าปิดการค้นหาไว้หรือไม่ โดยมองหา ENABLE_TOOL_SEARCH=false ในการตั้งค่า และตรวจสอบว่าคุณกำลังทำงานผ่านพร็อกซีหรือไม่
การลดบริบทด้วย /compact ก็อาจช่วยได้เช่นกัน
เมื่อใดไม่จำเป็นต้องใช้ MCP: ควรเลือก Skill, Subagent หรือ CLI แทน?
ประเด็นสำคัญ
MCP เป็นวิธีมอบความสามารถภายนอกให้ Claude ที่มีค่าใช้จ่ายด้านโทเค็นสูงที่สุด หากทำงานด้วยเครื่องมือ CLI สำเร็จรูป (gh issue list, psql, curl) หรือ Skill หนึ่งหน้าได้ ก็ใช้สิ่งเหล่านั้นแทนการสร้าง MCP servers กฎคือ MCP คุ้มค่าก็ต่อเมื่อ AI ต้องสนทนากับบริการแบบเรียลไทม์และสองทาง ไม่ใช่แค่รับคำตอบครั้งเดียว
ลำดับตามค่าใช้จ่ายด้านโทเค็นและความซับซ้อน:
- คำสั่ง CLI ผ่าน Bash — แทบไม่มีค่าใช้จ่าย AI เรียก
gh pr list,psql -cหรือcurlแล้วได้คำตอบเหมือนผู้ใช้ terminal ทั่วไป - Skill — ราคาถูก เป็นเทมเพลตพรอมป์ต์พร้อมคำแนะนำว่าจะเรียกอะไรและประมวลผลผลลัพธ์อย่างไร โหลดตามทริกเกอร์ในชื่อโฟลเดอร์
- Subagent — ปานกลาง ใช้บริบทแยกสำหรับงานยาว โดยมีเซสชันโทเค็นของตัวเอง
- MCP server — แพง มีเพียงชื่อเครื่องมือที่คงอยู่ในบริบท แต่คำอธิบายเครื่องมือจะโหลดเมื่อ Claude ค้นพบก่อนเรียกใช้งาน และการตอบกลับจากบริการอาจมีขนาดใหญ่: Claude Code จะแจ้งเตือนเมื่อคำตอบจากเครื่องมือมีขนาดเกิน 10,000 โทเค็น อีกทั้งยังต้องใช้เซสชัน OAuth สำหรับ HTTP
คำแนะนำที่อาจฟังดูขัดกับสัญชาตญาณ: หากต้องแยกวิเคราะห์หน้าเว็บ ทำงานกับ git เปิด PDF หรือใช้ยูทิลิตีโอเพนซอร์ส ให้เลือก CLI แทน MCP AI เรียกคำสั่งเทอร์มินัลได้เหมือนคน และใช้โทเค็นเฉพาะกับคำสั่งและคำตอบ โดยไม่ต้องจ่ายให้คำอธิบายเครื่องมือหรือ overhead ของเซิร์ฟเวอร์
MCP เหมาะสมในสองกรณี:
- บริการนั้น ปิด: Slack, Notion, Sentry, Linear มีเครื่องมือ CLI เช่นกัน แต่ MCP ให้การเข้าถึงแบบเจาะจงยิ่งขึ้นผ่าน OAuth และการควบคุม scope
- ต้องการ สนทนาแบบเรียลไทม์และสองทาง: AI เชื่อมต่อกับ Postgres ตรวจสอบ schema ส่งคำถามต่อเนื่อง รับข้อมูล แล้วดำเนินขั้นตอนถัดไป หากใช้ CLI กระบวนการนี้จะกลายเป็นคำสั่งที่ต้องเรียกด้วยตนเอง 10 คำสั่ง
รูปแบบการเชื่อมต่อ MCP ที่ควรหลีกเลี่ยง 6 แบบ
ประเด็นสำคัญ
ข้อผิดพลาดเฉพาะหกข้อที่ทำให้คนทำ vibe coding สะดุดในช่วงสัปดาห์แรก ๆ ของการใช้ MCP แก้รูปแบบที่ไม่เหมาะสมแต่ละข้อได้ภายในนาทีเดียว: เปิด claude mcp list ตรวจรายการ แล้วดู scopes และ hooks ปัญหาส่วนใหญ่แก้ได้ด้วยการเอาเซิร์ฟเวอร์ที่ไม่จำเป็นออก ไม่ใช่เพิ่มเซิร์ฟเวอร์ใหม่ ส่วนนี้เป็นรายการตรวจสอบสั้น ๆ ที่ไล่ทำจากบนลงล่างได้
ตู้เก็บ MCP. คุณเชื่อมต่อเซิร์ฟเวอร์ 10 รายการ “เผื่อไว้” จน Claude สับสนว่าจะเรียกเครื่องมือใด และคำตอบของเครื่องมือเหล่านั้นก็ทำให้บริบทแน่น วิธีแก้: เหลือ 3–5 เซิร์ฟเวอร์สำหรับโปรเจกต์ปัจจุบัน แล้วลบรายการอื่นด้วย
claude mcp removeให้สิทธิ์เขียนฐานข้อมูล production. คุณเชื่อมต่อ Postgres MCP กับฐานข้อมูล production โดยไม่มี
--readonly, ผู้ใช้แยก หรือ allowlist hook แค่พรอมป์ต์เดียวว่า “ลบระเบียนทดสอบ” ข้อมูล production ก็ถูกลบแล้ว วิธีแก้: ใช้ role ฐานข้อมูลแยกที่มี read-only grants ตรวจแล้ว โหมดอ่านอย่างเดียวของเซิร์ฟเวอร์เมื่อรองรับ และตัวควบคุมเรียกเครื่องมือที่ทดสอบ การบล็อก prefixDROP|TRUNCATE|DELETEไม่ใช่สิทธิ์ที่เพียงพอข้อมูลส่วนบุคคลที่ระบุตัวบุคคลได้โดยไม่ปกปิด. คุณเชื่อมต่อฐานข้อมูลที่มีอีเมล หมายเลขโทรศัพท์ และข้อมูลหนังสือเดินทางของลูกค้าโดยตรง Claude เห็นข้อมูลเหล่านั้น แล้วข้อมูลก็เข้าไปอยู่ในบันทึกของ Anthropic วิธีแก้: ใช้ VIEW หรือเส้นทาง API ตัวกลางที่ส่งคืนข้อมูลซึ่งปกปิดไว้ เช่น
j***@gmail.comใช้ MCP แทน Skill. คุณต้องการ “สร้างรายงานยอดขายในรูปแบบ X” ซึ่งเป็นงานประจำที่ Skill พร้อมพรอมป์ต์สำเร็จรูปจัดการได้ อย่าสร้าง MCP server
ใช้ MCP แทน CLI โอเพนซอร์ส. คุณต้องแปลง PDF เป็นข้อความ มี
pdftotextอยู่แล้ว อย่าสร้าง “PDF MCP” เพราะมีแต่ทำให้สิ้นเปลืองโทเค็นไม่ติดตามค่าใช้จ่ายด้านโทเค็น. คุณเห็นเซิร์ฟเวอร์ที่เชื่อมต่ออยู่ใน
claude mcp listแต่ไม่รู้ว่าแต่ละการสนทนาใช้ไปเท่าไร ผ่านไปหนึ่งสัปดาห์ คุณก็ยังไม่รู้ว่า “MCP ใช้บริบทไป 40% และฉันจ่ายเงินกับมันมาตลอด” วิธีแก้: ปิดเซิร์ฟเวอร์ที่ไม่ได้ใช้งานเป็นระยะ และติดตามการเปลี่ยนแปลงของการใช้งานผ่านการติดตามขีดจำกัดการใช้งาน Claude Code
วิธีแก้ปัญหาเมื่อการเชื่อมต่อ MCP ล้มเหลว
ประเด็นสำคัญ
ปัญหาที่พบบ่อยที่สุด: OAuth callback ใช้งานไม่ได้ ชื่อเซิร์ฟเวอร์ชนกับชื่อที่มีอยู่ หรือไม่พบเครื่องมือใน claude mcp list หลังเรียก add วงจรแก้ปัญหามาตรฐานช่วยจัดการได้: list แสดงสิ่งที่เชื่อมต่อแล้ว status ตรวจตัวบ่งชี้สถานะ และหากเป็นสีแดง logs จะแสดง stack trace หลังแก้ --scope หรือตัวแปร ENV ให้เริ่มทุกอย่างใหม่
รายการตรวจสอบทีละขั้น:
มองเห็นเซิร์ฟเวอร์ในรายการหรือไม่?
claude mcp listหากไม่เห็น แสดงว่า
claude mcp addทำงานไม่เสร็จ สาเหตุที่พบบ่อยที่สุดคือ--scope: คุณเพิ่มไว้ในlocalแต่กำลังตรวจสอบจากอีกโปรเจกต์หนึ่งสถานะของเซิร์ฟเวอร์เป็นสีเขียวหรือไม่?
claude mcp status <name>สีแดงหมายความว่าโปรเซสไม่เริ่มทำงาน (สำหรับ stdio) หรือเซิร์ฟเวอร์ไม่ตอบสนอง (สำหรับ HTTP)
บันทึกของเซิร์ฟเวอร์มีข้อมูลที่เป็นประโยชน์หรือไม่?
claude mcp logs <name>หากเห็น stack trace ปัญหามักอยู่ที่แพ็กเกจ (
npxหาแพ็กเกจไม่พบ หรือ Node เวอร์ชันต่ำกว่า 20)OAuth callback ไม่ยอมส่งกลับใช่หรือไม่? โดยทั่วไปปัญหาอยู่ที่
--callback-portหรือตัวกรองเครือข่าย ให้ส่งต่อพอร์ตที่กำหนดเจาะจง:claude mcp add --transport http --callback-port 8765 [name] [url]ชื่อเครื่องมือชนกันหรือไม่? มีเซิร์ฟเวอร์สองตัวเปิดเผยเครื่องมือชื่อเดียวกัน ทำให้ Claude เรียกผิดตัว ใช้ Tool Search (ดูหัวข้อ H2 ก่อนหน้า) หรือลบเซิร์ฟเวอร์ส่วนเกินด้วยตนเองผ่าน
claude mcp removeมองไม่เห็น extensions (connectors) ของ claude.ai ใช่หรือไม่? นี่เป็นปัญหาที่ทราบอยู่แล้ว: extensions (connectors) จากหน้าเว็บ claude.ai ใช้กับ Claude Code ไม่ได้เมื่อเชื่อมต่อด้วย API key วิธีแก้: เชื่อมต่อ MCP ผ่าน CLI แทนหน้าเว็บ
ขั้นต่อไป: OAuth, MCP servers ของคุณเอง และ Plugin Marketplace
ประเด็นสำคัญ
หลังจากเซิร์ฟเวอร์พร้อมใช้ทั้งเจ็ด ขั้นตอนถัดไปสามอย่างคือ ตั้ง OAuth สำหรับ HTTP servers ของคุณเอง (หากต้องการแชร์ MCP กับทีม) เขียน MCP ของคุณเองสำหรับบริการเฉพาะ และเชื่อมต่อกับ Plugin Marketplace ของ Anthropic Marketplace เปิดตัวเมื่อวันที่ 9 ตุลาคม 2025 และจัดแพ็กเกจ MCP เป็นปลั๊กอินที่ติดตั้งได้ด้วยคำสั่งเดียว
Plugin Marketplace ช่วยให้ทำงานเร็วขึ้นสำหรับคนที่ไม่อยากจำคำสั่งติดตั้ง รูปแบบคือ manifest .claude-plugin/marketplace.json ซึ่งอธิบายกลุ่มเซิร์ฟเวอร์ที่อยู่ในแพ็กเกจเดียวกัน
ติดตั้งปลั๊กอินจาก marketplace:
claude plugin install <plugin-name>
ปลั๊กอินหนึ่งตัวมี MCP servers, Skills และ Subagents หลายรายการได้พร้อมกัน เป็นชุดการตั้งค่าสำเร็จรูปสำหรับสถานการณ์เฉพาะ เช่น อีคอมเมิร์ซ การตลาด หรือฝ่ายกฎหมาย
เขียน MCP server ของคุณเองตามข้อกำหนดของ modelcontextprotocol.io เทมเพลตขั้นต่ำใช้ Anthropic Python หรือ TypeScript SDK จากนั้นอธิบาย tools และเชื่อมต่อ transport ระดับความซับซ้อนใกล้เคียงกับการเขียน REST API ด้วย FastAPI
หากโปรเจกต์ของคุณมี CLAUDE.md ที่ตั้งค่าไว้แล้ว และเข้าใจการออกแบบบริบท การเพิ่ม MCP ของคุณเองใช้เวลาหนึ่งวัน หากยังไม่มี ควรเรียนรู้พื้นฐานก่อน
แหล่งที่มา
- Model Context Protocol — เว็บไซต์ทางการ
- Anthropic เปิดตัว MCP — 25 พฤศจิกายน 2024
- เอกสาร MCP ของ Claude Code
- Claude Code: Tool Search สำหรับ MCP
- ประกาศ Claude Code Plugins — 9 ตุลาคม 2025
- Code with Claude 2026
- modelcontextprotocol/servers — registry อย่างเป็นทางการ
- github/github-mcp-server
- microsoft/playwright-mcp
- bytebase/dbhub — Postgres MCP
- getsentry/sentry-mcp
- makenotion/claude-code-notion-plugin
- คู่มือ Notion MCP
- Repository Claude Code ของ Anthropic — issues และ changelog
หากต้องการทำงานกับโมเดลต่อ ไปที่ Ailoot
รายละเอียดเพิ่มเติม
คำถามที่พบบ่อย
hook นี้ทำให้ฐานข้อมูล production อ่านอย่างเดียวหรือไม่?
ไม่ทำ ตัวอย่างกักกันทุกคำขอที่ตรงตระกูล MCP ที่ระบุ ไม่จัดหมวด SQL การอ่านอย่างเดียวต้องมาจาก role แยกที่มี read-only grants ซึ่งตรวจแล้ว และใช้ hook เป็นตัวควบคุมเสริม
ทดสอบขอบเขต hook อย่างไร?
ในเซสชันแยก ตรวจว่าชื่อเครื่องมือที่ตรงถูกปฏิเสธทั้งอ่านและเขียน รวม SQL ตัวเล็กหรือมี comment นำหน้า จากนั้นยืนยันว่าเครื่องมือไม่เกี่ยวข้องอยู่นอก matcher เส้นทางที่ไม่ครอบคลุมนั้นต้องมีสิทธิ์หรือนโยบายของตน