MCP servers คือระบบหลังบ้าน (plumbing) ตัวใหม่ที่กำลังมาแรงสำหรับ Claude Code แค่ใส่ GitHub server เข้าไป เอเจนต์ของคุณก็สามารถเปิด pull requests ได้เลย หรือถ้าเพิ่ม filesystem server เข้าไป มันก็สามารถอ่านโครงสร้าง repo ของคุณได้ ตัวเดโมดูเหมือนเวทมนตร์ แต่สิ่งที่ไม่มีใครเดโมให้ดูคือ "ใบเสร็จ"
ค่าใช้จ่ายไม่ได้อยู่ที่การเรียกใช้ API ของเครื่องมือเหล่านั้น แต่อยู่ที่ตัวเครื่องมือเอง
ทุกครั้งที่คุณลงทะเบียน MCP server คุณไม่ได้แค่เพิ่มความสามารถใหม่ แต่คุณกำลังเพิ่มบล็อกข้อความเข้าไปใน context window ของคุณ และบล็อกนั้นจะถูกคิดเงินในทุกๆ turn ไม่ว่าเอเจนต์จะใช้เครื่องมือนั้นหรือไม่ คุณก็ต้องจ่ายค่ามีอยู่ของมัน มิเตอร์จะเริ่มเดินทันทีที่เซิร์ฟเวอร์เชื่อมต่อ
จ่ายค่าเช่าให้เครื่องมือที่คุณไม่เคยแตะต้อง
นี่คือกลไกที่มักถูกมองข้าม คำจำกัดความ (definition) ของแต่ละเครื่องมือใน MCP server จะมาพร้อมกับชื่อ คำอธิบาย และ JSON schema ที่บอกโมเดลว่าเครื่องมือนั้นต้องการ argument อะไรบ้าง ข้อมูลทั้งหมดนั้นจะถูกฉีด (injected) เข้าไปใน system context เมื่อเริ่มแต่ละ turn โมเดลจำเป็นต้องเห็นรายการเครื่องมือทั้งหมดเพื่อให้สามารถตัดสินใจได้ว่าจะเรียกใช้เครื่องมือหรือไม่ แต่คุณคือคนที่ต้องเป็นคนจ่ายเงินเพื่อแลกกับความสามารถในการมองเห็นนั้น
ค่าใช้จ่ายส่วนเกิน (overhead) ต่อเครื่องมือนั้นไม่ใช่เรื่องเล็กน้อย ในทางปฏิบัติ คำจำกัดความของเครื่องมือเพียงตัวเดียวอาจใช้ token ระหว่าง 80 ถึง 150 tokens นั่นหมายความว่าเซิร์ฟเวอร์ขนาดกลางที่เปิดใช้งาน 10 เครื่องมือ จะแอบกิน token ไปถึง 800 ถึง 1,500 tokens ก่อนที่คุณจะพิมพ์ประโยคแรกเสียอีก คุณไม่ได้จ่ายเพื่อการประมวลผล (compute) แต่คุณกำลังจ่ายเพื่อสิทธิในการ "มีตัวเลือก"
ผมลองคำนวณตัวเลขจากการใช้งานมาตรฐาน 20 turn เพื่อดูว่ามันจะทวีคูณขึ้นอย่างไร
หากไม่มีการโหลด MCP server เลย ค่า overhead จะเป็นศูนย์ Context window จะมีเพียงแค่บทสนทนาของคุณเท่านั้น
หากโหลดเซิร์ฟเวอร์ขนาดเล็กที่ปรับแต่งเองพร้อมเครื่องมือ 3 อย่างที่จำกัดขอบเขตไว้แคบๆ "ภาษี" ที่ต้องจ่ายคือ 180 tokens ต่อ turn เมื่อผ่านไป 20 turn นั่นคือ 3,600 tokens ที่หายไป ไม่ถึงกับหายนะ แต่ก็เป็นเงินจริงๆ
Filesystem server ยอดนิยมที่เปิดใช้งาน 7 เครื่องมือ จะดันค่าใช้จ่ายขึ้นไปถึง 640 tokens ต่อ turn ในเซสชันเดียวกัน คุณจะเสียไปถึง 12,800 tokens เพียงเพื่อรักษาการเชื่อมต่อไว้ คุณยังไม่ได้อ่านไฟล์เลยด้วยซ้ำ ยังไม่ได้ลิสต์ไดเรกทอรีเลย คุณแค่เพียงเปิดเครื่องมือทิ้งไว้ในเมนูเท่านั้น
แล้วก็ยังมี GitHub server ด้วย ด้วยเครื่องมือที่ลงทะเบียนไว้ถึง 26 อย่าง มันจะเทข้อมูลลงไป 3,100 tokens ในทุกๆ turn หลังจากโต้ตอบกันไปมา 20 ครั้ง ค่า overhead จะรวมเป็น 62,000 tokens หากคิดตามราคาของ Sonnet 4 นั่นคือภาษี context บริสุทธิ์ถึง $0.19 คุณจ่ายเงิน 19 เซนต์ไปกับค่า overhead ก่อนที่เอเจนต์จะเริ่มคิดเรื่องการสร้าง issue เสียด้วยซ้ำ
ตัวเลขนั้นอาจดูน้อยเมื่อมองแยกกัน แต่มันไม่ใช่
ปัญหาของเอเจนต์ที่ทำงานข้ามคืน
จุดที่เจ็บปวดที่สุดคือในลูปการทำงานอัตโนมัติ (autonomous loops) ที่รันต่อเนื่องยาวนาน หากคุณใช้ Claude Code เป็นเอเจนต์ที่ทำงานวนซ้ำด้วยตัวเอง ภาษีต่อ turn นั้นจะทวีคูณขึ้นอย่างโหดร้าย เอเจนต์ที่รันข้ามคืนผ่าน 2,000 turn โดยโหลด GitHub server ไว้ ไม่ได้จ่ายค่า overhead แค่ 62,000 tokens แต่มันต้องจ่ายถึง 6.2 ล้าน tokens
นั่นคือเงิน $18.60 ที่เสียไปกับสิ่งที่ไม่ก่อให้เกิดประโยชน์เลยแม้แต่น้อย เอเจนต์อาจจะหลับไปตลอดทั้งคืนโดยไม่ได้แตะต้องเครื่องมือ GitHub เลยแม้แต่ตัวเดียว หรืออาจจะทำงานอยู่แค่ภายในไฟล์ในเครื่องเท่านั้น แต่คุณก็ยังถูกคิดเงินสำหรับคำจำกัดความของเครื่องมือ GitHub ทั้ง 26 อย่างในทุกๆ หนึ่งใน 2,000 turn นั้น เพราะพวกมันถูกลงทะเบียนไว้ในเซสชัน
ประเด็นสำคัญที่ต้องจำให้ขึ้นใจคือ คุณจ่ายเงินสำหรับเครื่องมือที่ "ลงทะเบียน" ไม่ใช่เครื่องมือที่ "ถูกเรียกใช้" โมเดลไม่ได้ตรวจสอบว่ามันใช้เครื่องมือไหนไปบ้างแล้วค่อยลดบิลให้คุณ หากเซิร์ฟเวอร์เชื่อมต่ออยู่ รายการเครื่องมือทั้งหมด (manifest) จะถูกนำกลับเข้าสู่ context ในทุกๆ รอบ นี่คือภาษีต่อ turn ที่เก็บจาก "ศักยภาพ" ไม่ใช่จาก "การกระทำ"
สำหรับนักพัฒนาที่รันเอเจนต์เขียนโค้ดแบบวนซ้ำ, ชุดทดสอบ (test harnesses), หรือการตรวจสอบโค้ดแบบกลุ่ม (batch review) นี่คือตัวฆ่าบประมาณที่เงียบเชียบ การสนทนาระหว่างมนุษย์ 20 turn นั้นเบามาก แต่ลูปของเอเจนต์ 200 หรือ 2,000 turn คือจุดที่ตัวเลขจะกลายเป็นบทลงโทษทางการเงิน
วิธีควบคุมค่าใช้จ่าย
MCP มีประโยชน์จริงๆ และคุณควรใช้มัน แต่ให้ปฏิบัติกับมันเหมือนเป็นอุปกรณ์ไฟฟ้าที่คุณเปิดใช้เฉพาะงานที่ทำ ไม่ใช่สิ่งที่ต้องติดตั้งถาวรไว้ในทุกเซสชัน
จำกัดขอบเขตการตั้งค่า (Configs) ให้ตรงกับโปรเจกต์และงาน
อย่าโหลดทุกเซิร์ฟเวอร์ลงใน Claude Code configuration แบบ global เป็นค่าเริ่มต้น แต่ให้สร้าง MCP configs ที่จำกัดขอบเขตตามโปรเจกต์ให้ตรงกับงานที่คุณกำลังทำจริงๆ หากคุณกำลังปรับปรุงโค้ด (refactoring) ในโมดูลท้องถิ่น คุณก็น่าจะต้องการแค่ filesystem server และอย่างอื่นก็ไม่จำเป็น หากคุณกำลังจัดการ issue ให้โหลด GitHub server สำหรับงานนั้นโดยเฉพาะ และตัดการเชื่อมต่อเมื่อคุณสลับกลับไปทำงานในเครื่อง
ให้คิดเหมือนการเปิดแอปทิ้งไว้ในโทรศัพท์ เปิดสักหนึ่งหรือสองแอปนั้นไม่เป็นไร แต่ถ้าเปิดทิ้งไว้ยี่สิบแอปในพื้นหลัง มันจะสูบแบตเตอรี่โดยไม่มีเหตุผล
เลือกใช้เซิร์ฟเวอร์ที่มีเครื่องมือน้อยกว่า
ไม่ใช่ MCP server ทุกตัวจะถูกออกแบบมาด้วยมาตรฐานเดียวกัน บางตัวมีอินเทอร์เฟซที่เรียบง่ายซึ่งประกอบด้วยการทำงานที่เน้นเฉพาะจุดเพียงสองหรือสามอย่าง แต่บางตัวกลับมาพร้อมกับรายการเครื่องมือ (tools) จำนวนมหาศาลถึง 25 หรือ 30 อย่าง ซึ่งหลายอย่างคุณอาจไม่ได้เรียกใช้งานเลย Server ที่มีเครื่องมือเพียง 3 อย่างอาจมีค่าใช้จ่าย 180 tokens ต่อเทิร์น ในขณะที่ตัวที่มี 26 เครื่องมืออาจพุ่งสูงถึง 3,100 tokens นั่นคือภาระส่วนเกิน (overhead) ที่เพิ่มขึ้นถึง 17 เท่า สำหรับความสามารถที่เพิ่มขึ้นเพียงเล็กน้อยซึ่งอาจไม่ได้สำคัญกับคุณเลย
ก่อนจะติดตั้ง server ให้ตรวจสอบ tool manifest ของมันก่อน หากมันลงทะเบียนการทำงานที่ซ้ำซ้อนกันนับสิบอย่างทั้งที่คุณต้องการเพียงอย่างเดียว ให้พิจารณาว่าคุณสามารถตั้งค่าให้ลดลง (configure down) ทำการ fork หรือเขียน wrapper ที่บางกว่าเดิมได้หรือไม่ ทุกๆ คำจำกัดความของเครื่องมือ (tool definition) ที่คุณตัดออกไปได้ คือการประหยัด tokens อย่างถาวรและโดยตรงในทุกๆ เทิร์นต่อจากนี้
ตัดทอนคำอธิบายเครื่องมือ (Tool Descriptions)
ช่วง 80 ถึง 150 tokens ต่อเครื่องมือไม่ใช่กฎธรรมชาติ แต่มันขึ้นอยู่กับว่าคำอธิบายและ schema นั้นเยิ่นเย้อเพียงใด คำอธิบายที่บวมโตถึง 400 tokens จะกินพื้นที่ context มากกว่าคำอธิบายขนาด 80 tokens ถึงห้าเท่า และบทลงโทษห้าเท่านี้จะเกิดขึ้นในทุกๆ เทิร์น
ตรวจสอบ (Audit) server ที่คุณใช้งานอยู่ หากคำอธิบายเครื่องมืออ่านดูเหมือนคำโฆษณา ให้เขียนมันใหม่ ตัดคำคุณศัพท์ออก ตัดตัวอย่างที่ไม่ช่วยให้เข้าใจ schema ชัดเจนขึ้น ปรับ JSON ให้กระชับ โมเดลจำเป็นต้องเข้าใจว่าเครื่องมือนั้นทำอะไร แต่ไม่จำเป็นต้องมีบทนำยาวเป็นย่อหน้า ให้ปฏิบัติกับคำจำกัดความของเครื่องมือเหมือนกับโค้ด: ยิ่งสั้นและชัดเจนเท่าไหร่ก็ยิ่งดีเท่านั้น
บทสรุปที่สำคัญ
MCP ช่วยขยายขอบเขตสิ่งที่ Claude Code เข้าถึงได้ แต่มันไม่ได้ขยาย context window ให้คุณฟรีๆ ภาระส่วนเกิน (overhead) นั้นเป็นสิ่งที่คาดการณ์ได้แน่นอน เกิดขึ้นซ้ำๆ และไม่เกี่ยวข้องเลยว่าเครื่องมือเหล่านั้นจะถูกเรียกใช้งานจริงหรือไม่
โหลดเฉพาะ server ที่งานปัจจุบันของคุณต้องการเท่านั้น และตัดการเชื่อมต่อเมื่อใช้งานเสร็จ ตรวจสอบจำนวนเครื่องมือและความยาวของคำอธิบายเหมือนที่คุณตรวจสอบ dependency อื่นๆ กฎนั้นง่ายมาก: หากเครื่องมือนั้นไม่ได้เพิ่มคุณค่าให้กับเซสชันนี้ มันก็ไม่ควรเพิ่ม tokens ในบิลค่าใช้จ่ายของคุณ
การวัดผลและวิธีการ: I added MCP servers to Claude Code — here’s what they cost in tokens
เข้าร่วมชุมชนการเรียนรู้ GyaanSetu AI เพื่อรับการเจาะลึกด้านวิศวกรรมเพิ่มเติม: t.me/GyaanSetuAi
