อย่าใช้ MCP Tools ถ้าไม่จำเป็น
Table of Contents
ที่ผ่านมา MCP Server นั้นได้เฉิดฉายในกลุ่ม developer ผู้ใช้ AI อย่างมากมาย ไม่ว่าอะไรๆ ก็ใช้กันหมดตั้งแต่ design ยัน automate test กับ browser
แต่ถ้าหากคุณเป็นชาว Claude Code ผมขอแนะนำให้ใช้คำสั่ง
/context
แล้วคุณจะเห็นความจริงของ MCP Server ว่ามันล้างผลาญ context token เราไปเท่าไหร่ อย่าง iOS แบบผม
- XcodeBuildMCP: 45k (22%)
หรือสาย Web Frontend
- Playwright MCP: 13.7k (6.8%)
- Chrome DevTool MCP: 18k (9%)
ของพวกนี้จะถูก load เข้าไปใน context ของคุณเสมอ แม้คุณจะเรียก หรือไม่เรียกใช้มันก็ตาม (พอนึกย้อนไปเห็นภาพไหมว่า ทำไม quota 5 ชั่วโมงมันเต็มไวจังว้า ลง MCP ไว้เยอะเกินไปหรือเปล่า)
ใครลองเช็คของตัวเองแล้วมีตัวไหนเปลืองกว่านี้มาอวดกันได้! (ใช่เรื่องต้องอวดไหม)
ทำไมมันถึงเป็นอย่างนั้น ทำไมเปลือง? #
เพราะว่าหลังจากติดตั้ง MCP Server เข้าไปแล้ว ในแต่ละตัวมันก็จะมี tools ที่เอาไว้เป็นเหมือน function ให้ Claude Code เรียกใช้ครับ ทั้งชื่อและรายละเอียดว่า tool ใช้ยังไงใช้ทำอะไร
ยิ่ง MCP Server ตัวไหนมี tool เยอะ จากที่ดูเหมือนจะดีของมีประโยชน์ทำได้หลายอย่าง กลายเป็นว่ามันรก context เราโดยไม่ได้ใช้ประโยชน์ แต่ที่จะเอาอีก 20% ที่มีไว้ไปไล่ code หรือ debug กลายเป็นต้องเสียทิ้งไปกับ tool ที่อาจจะไม่ได้ใช้
และข่าวร้ายก็คือ เราไม่สามารถทำให้ subagent มี MCP Server ไว้ใช้เองคนเดียว เราจำเป็นต้อง add เข้ามาใน primary context ก่อนอยู่ดี
แล้วเราจะต้องทำยังไงให้ดีล่ะ? #
ก็ต้องบอกกันตามตรงว่ามันขึ้นอยู่กับ tool ที่คุณอยากใช้เลยครับ และคุณต้องการใช้มันมากแค่ไหน
อย่างเช่นของผม ผมเขียน iOS application ผมอยากให้ Claude Code มัน Build / Run / Test ตัว app ได้ ตอนแรกผมเลยใช้ XcodeBuildMCP เพื่อให้ชีวิตสะดวก แต่ด้วยต้นทุนที่เราก็กลัวชน limit บ่อยๆ ผมก็จะเลือก เอาแค่ command ที่เราใช้จริงๆ มากางดูว่ามีอะไรบ้าง แล้วก็เขียน subagent ใหม่บอกไปเลยว่าให้มันมีหน้าที่ build / run app นะ โดยใช้ command line ดังต่อไปนี้
# Build
xcodebuild -project Pygmy.xcodeproj -scheme Pygmy -destination 'platform=iOS Simulator,name=iPhone 17' build
# Simulator Status
xcrun simctl list devices
# View Logs
xcrun simctl spawn booted log stream --predicate 'subsystem contains "com.peerasak.pygmy"'
# Crash Logs
xcrun simctl spawn booted log collect --last 1h
อะไรประมาณนี้ แล้วเราค่อยไปบอกใน CLAUDE.md ให้เรียกหาน้อง @xcodebuild เสมอนะ ถ้าต้องทำการ build app น่ะ
หรือจะไป way advance กว่านั้น ก็ตามบทความนี้ครับ “What if you don’t need MCP at all?”
คนนี้เขาก็เพิ่มเติมจากของผมที่แค่เรียก command ตรงๆ เขียน Bash script ไปอีก รวมถึงหลายๆอย่างที่เขาอยากใช้จริงๆ
แล้วจากกระบวนการเหล่านี้คุณจะสามารถประหยัด tokens ต่อการส่ง 1 message ไปได้หลายหมื่น tokens แล้วก็ยังมีพื้นที่ให้ context ไปเก็บเรื่องอื่นๆหรืองานที่มันทำต่อได้ อย่าง case ผมนี่ก็เหลือแค่ 200-300 จาก 45k tokens
สรุปคือ #
การทำงานกับ LLM ทุกวันนี้ สิ่งสำคัญคือการพยายามรักษา context ให้มันพอดี ไม่ใช่มีอะไรก็ยัดๆเข้าไปจนปริ่มตลอด ถ้าแบบนั้น แค่เราถามหรือสั่งให้ agent ทำงานไปแค่ไปไม่กี่ขยักมันก็เต็ม 200k tokens แล้ว ดังนั้น
-
เข้าใจตัวเองก่อนว่าต้องการ tools อะไรกับ project นั้นๆ
-
หลังจากนั้นเข้าใจ tool ต่อว่ามันเปลืองไหม - ถ้า MCP Server ตัวนั้นมันใช้แค่ 200 token เราก็ไม่จำเป็นต้องมาทำอะไรใหม่หรอก แต่ถ้ามันใช้เยอะไปอันนี้ต้องมาแกะดูว่าจริงๆ เราใช้ command อะไรจากมันบ้าง
-
ทำ tools ง่ายๆให้ agent เรียกใช้เลย - หรือถ้ามี command line ในเครื่องอยู่แล้วก็บอกไปเลยใน CLAUDE.md หรือสร้าง subagent ที่ทำหน้าที่เฉพาะทางมารับงานไปเลย