ข้ามไปยังเนื้อหาหลัก

คำถามสัมภาษณ์ MCP: ตั้งแต่ระดับเริ่มต้นถึงขั้นสูง (2026)

เตรียมพร้อมสำหรับการสัมภาษณ์ MCP ด้วยคำถามครอบคลุมสถาปัตยกรรม เครื่องมือ เอเจนต์ ความปลอดภัย และการออกแบบระบบจริง ทั้งหมดเทียบกับสเปกโปรโตคอลปัจจุบัน
อัปเดตแล้ว 5 ก.ค. 2569  · 6 นาที อ่าน

เมื่อปีครึ่งก่อน Model Context Protocol ยังเป็นคำเฉพาะกลุ่มนอก Anthropic ทุกวันนี้กลับถูกถามบ่อยในการสัมภาษณ์สายวิศวกรรม AI นักพัฒนาความสัมพันธ์นักพัฒนา และงานแบ็กเอนด์ เพราะหลายทีมที่ปล่อยเอเจนต์มีเซิร์ฟเวอร์หรือไคลเอนต์ MCP อยู่ที่ใดที่หนึ่งในสแตก

MCP (Model Context Protocol) คือโปรโตคอลแบบเปิดที่มาตรฐานวิธีที่แอปพลิเคชัน AI เชื่อมต่อกับเครื่องมือภายนอก ข้อมูล และเทมเพลตพรอมป์ต มันแก้ปัญหาการเชื่อมต่อแบบ N x M: หากไม่มีโปรโตคอลร่วมกัน การจับคู่โมเดล-เครื่องมือแต่ละคู่ต้องมีคอนเน็กเตอร์ของตนเอง ด้วย MCP คุณสร้างคอนเน็กเตอร์ครั้งเดียวแล้วโฮสต์ที่สอดคล้องตามสเปกใด ๆ ก็ใช้ได้ คุณอาจได้ยินว่ามันคือ "USB-C ของโลก AI" ซึ่งพอใช้เป็นคำอธิบายเบื้องต้น แต่อย่าไปไกลกว่านั้น

คำถามที่ผู้สัมภาษณ์ถามขึ้นกับบทบาทมาก นักพัฒนาระดับจูเนียร์อาจต้องอธิบายความต่างของ tools กับ resources วิศวกรแพลตฟอร์มมีแนวโน้มถูกถามเรื่องผลกระทบของแกนโปรโตคอลแบบสเตตเลสต่อการดีพลอยมากกว่า บทความนี้จัดตามระดับความยากและกรณีใช้งาน เลือกอ่านส่วนที่ตรงกับบทบาทของตน

เวลาเป็นเรื่องสำคัญ และขอระบุให้ชัดเจนเพราะ MCP ยังเปลี่ยนแปลงอยู่ ณ เวลาที่เขียน สเปกเสถียรปัจจุบันคือ 2025-11-25 ส่วนผู้ปล่อยตัวเสมือนจริง (RC) ของรุ่น 2026-07-28 ถูกล็อกแล้วและคาดว่าจะปล่อยในราวสี่สัปดาห์ ดังนั้นสิ่งใดจาก RC นั้นจะถูกระบุว่าเป็นมุมมองอนาคต

คำถามสัมภาษณ์ MCP ระดับเริ่มต้น

คำถามเหล่านี้โผล่ในหลายรอบ ไม่ว่าระดับอาวุโสเพียงใด ควรเริ่มจากคำศัพท์พื้นฐาน

MCP คืออะไร และถูกสร้างขึ้นมาทำไม?

MCP เป็นมาตรฐานเปิด สร้างโดย Anthropic และเปิดซอร์สเมื่อพฤศจิกายน 2024 สำหรับเชื่อมแอป AI กับเครื่องมือและแหล่งข้อมูลภายนอก พูดตรง ๆ คือ ทำ MCP ครั้งเดียว แล้วคุยกับเซิร์ฟเวอร์ที่รองรับ MCP ใดก็ได้ แทนการเขียนคอนเน็กเตอร์ใหม่สำหรับทุกเครื่องมือ

MCP server คืออะไร?

เซิร์ฟเวอร์คือโปรแกรมที่เปิดเผย tools, resources และ prompts ให้กับไคลเอนต์ MCP มันรันได้เป็นโปรเซสย่อยแบบโลคัลผ่าน stdio หรือเป็นโปรเซสระยะไกลแบบอิสระที่เข้าถึงผ่าน HTTP เซิร์ฟเวอร์ไม่รู้เรื่องโมเดลเอง มันตอบคำขอตามโปรโตคอล

MCP client คืออะไร?

ไคลเอนต์คือคอนเน็กเตอร์ระดับโปรโตคอลที่อยู่ในแอปโฮสต์ (เช่น Claude Desktop, VS Code, หรือ Cursor) และคุยกับเซิร์ฟเวอร์ครั้งละหนึ่งตัวผ่าน JSON-RPC โฮสต์หนึ่งตัวสามารถรันไคลเอนต์หลายตัว แต่ละตัวถือการเชื่อมต่อแบบหนึ่งต่อหนึ่งกับเซิร์ฟเวอร์

MCP ต่างจาก REST API ทั่วไปอย่างไร?

REST API เขียนมาให้เดเวล็อปเปอร์เรียกจากโค้ด MCP ถูกสร้างมาให้ LLM ค้นพบและเรียกใช้งานขณะรันไทม์ ความต่างนี้สำคัญกว่าฟอร์แมตบนสายสื่อสาร ไคลเอนต์สามารถขอ tools/list จากเซิร์ฟเวอร์และได้คำอธิบายความสามารถเป็นโครงสร้าง ซึ่ง REST API ทั่วไปไม่มีโดยปริยาย สำหรับการเชื่อมหนึ่งต่อหนึ่งแบบง่าย การเรียก API ตรงมักเร็วและถูกกว่า

เซิร์ฟเวอร์สามารถเปิดเผย resource แบบใดได้บ้าง?

อะไรก็ตามที่อ้างอิงด้วย URI ได้: ไฟล์ ระเบียนฐานข้อมูล เอกสาร ค่าคอนฟิก การตอบกลับจาก API Resource คือบริบทแบบอ่านอย่างเดียว ไม่ใช่การกระทำ ซึ่งเป็นจุดที่มือใหม่มักสับสน

คำถามสัมภาษณ์แนวคิดแกนกลางของ MCP

เมื่อคำศัพท์แน่นแล้ว ผู้สัมภาษณ์จะเปลี่ยนไปถามว่าองค์ประกอบต่าง ๆ สื่อสารกันอย่างไร

สถาปัตยกรรมภาพรวมเป็นอย่างไร?

มีสามบทบาท: host, client, server โฮสต์คือแอปที่ผู้ใช้ใช้งาน มันสร้างไคลเอนต์อย่างน้อยหนึ่งตัว และแต่ละไคลเอนต์ถือการเชื่อมต่อเดี่ยวกับเซิร์ฟเวอร์ ข้อความทุกฉบับระหว่างไคลเอนต์และเซิร์ฟเวอร์ใช้ JSON-RPC 2.0 ทำให้ได้ฟอร์แมตสายสื่อสารที่คงที่ไม่ว่าใช้ทรานสปอร์ตใด

สามเฟสวงจรชีวิตของการเชื่อมต่อคืออะไร?

เริ่มต้น ทำงาน และปิด ในช่วงเริ่มต้น ไคลเอนต์จะส่งเวอร์ชันโปรโตคอลและความสามารถที่รองรับ และเซิร์ฟเวอร์ตอบด้วยของตน เมื่อทั้งสองฝ่ายตกลงกันแล้ว คำขอทั่วไปอย่าง tools/list และ tools/call จะเกิดในเฟสการทำงาน ส่วนปิดคือการปิดอย่างเรียบร้อย

วันนี้ MCP ใช้ทรานสปอร์ตอะไรบ้าง?

stdio สำหรับเซิร์ฟเวอร์โลคัลแบบโปรเซสย่อย และ Streamable HTTP สำหรับเซิร์ฟเวอร์ระยะไกล Streamable HTTP มาแทน HTTP บวก SSE ตั้งแต่สเปก 2025-03-26 ดังนั้นการอธิบายว่ามีสองเอ็นด์พอยต์ SSE แยกกันถือว่าไม่อัปเดตแล้ว

ความต่างจริง ๆ ระหว่าง tools, resources และ prompts คืออะไร?

ความต่างอยู่ที่การควบคุม ไม่ใช่ชนิดข้อมูล:

  • Tools ถูกควบคุมโดยโมเดล LLM ตัดสินใจเองว่าจะเรียกเมื่อใดตามบริบท
  • Resources ถูกควบคุมโดยแอป โฮสต์หรือผู้ใช้เป็นผู้ตัดสินใจว่าจะโหลดเมื่อใด
  • Prompts ถูกควบคุมโดยผู้ใช้ บุคคลจะเลือกเทมเพลตอย่างชัดเจนก่อนเริ่มอินเฟอเรนซ์

ผู้สมัครจำนวนมากนิยามสิ่งเหล่านี้จากชนิดข้อมูลที่ถืออยู่ ซึ่งคลาดประเด็น

คำถามสัมภาษณ์เกี่ยวกับ Tools, Resources และ Prompts ของ MCP

เมื่อโมเดลการควบคุมชัดแล้ว คำถามถัดไปคือสิ่งเหล่านี้หน้าตาเชิงปฏิบัติเป็นอย่างไร

คำจำกัดความของ tool ประกอบด้วยอะไรบ้าง?

มี name, description, inputSchema ที่เขียนด้วย JSON Schema และตั้งแต่สเปก 2025-06-18 มี outputSchema แบบเลือกใส่ได้ พร้อม annotations ที่อธิบายพฤติกรรม เช่น เป็นแบบอ่านอย่างเดียวหรือทำลายข้อมูล ไคลเอนต์ควรมอง annotations ว่าไม่เชื่อถือได้ เว้นแต่มาจากเซิร์ฟเวอร์ที่เชื่อถือได้ มันเป็นเพียงคำใบ้ ไม่ใช่การรับประกัน

ควรทำสิ่งใดให้เป็น tool แทนที่จะเป็น resource?

ถ้ามีผลข้างเคียงหรือจำเป็นต้องคำนวณแบบสดใหม่ ให้เป็น tool ถ้าเป็นข้อมูลอ้างอิงคงที่หรือกึ่งคงที่และไม่มีผลข้างเคียง ให้เป็น resource การดูพยากรณ์อากาศกับ API สดคือ tool รายการเมืองที่รองรับแบบแคชไว้คือ resource

tool ที่ดีควรเป็นอย่างไร นอกเหนือจากใช้การได้?

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

from mcp.server.fastmcp import FastMCP

app = FastMCP("weather-demo")

@app.tool()
async def get_weather(city: str) -> str:
    """Get the current weather for a city."""
    return f"Weather data for {city}"

@app.resource("config://units")
async def get_units() -> str:
    """Static configuration for the unit system in use."""
    return '{"temperature": "celsius"}'

docstring ของ tool จะกลายเป็นคำอธิบายของมัน ส่วน resource คือข้อมูลสถิติเบื้องหลัง URI ไม่มีผลข้างเคียง

ไคลเอนต์ดึง resource อย่างไร?

เรียก resources/read จาก URI ที่ได้จาก resources/list หากเซิร์ฟเวอร์รองรับความสามารถ listChanged มันจะสามารถแจ้งไคลเอนต์เมื่อรายการ resource เปลี่ยนแปลง หากไม่มีความสามารถนี้ ไคลเอนต์จะไม่มีสัญญาณและต้องโพลล์หรือรีเฟรชเอง

คำถามสัมภาษณ์งานพัฒนา MCP Server

ตรงนี้คือจุดที่ความรู้เชิงแนวคิดต้องกลายเป็นของที่รันได้จริง

มี SDK อย่างเป็นทางการใดบ้าง และทั้งหมดสุกงอมเท่ากันหรือไม่?

ไม่ SDK ถูกจัดชั้น: TypeScript, Python, C#, และ Go อยู่ Tier 1 รองรับฟีเจอร์ครบ Java และ Rust อยู่ Tier 2 ส่วน Swift, Ruby, PHP และ Kotlin อยู่ Tier 3 SDK ฝั่ง Python มี FastMCP ซึ่งเป็น API ฝั่งเซิร์ฟเวอร์แบบใช้เดคอเรเตอร์

บั๊กที่พบบ่อยสุดซึ่งทำให้เซิร์ฟเวอร์โลคัลพังคืออะไร?

การเขียนออก stdout โดยไม่ควรเขียน ทรานสปอร์ต stdio ใช้ stdout เฉพาะข้อความ JSON-RPC ดังนั้นคำสั่ง print() หรือ console.log() ที่หลงมาเพียงตัวเดียวก็ทำให้สตรีมข้อความเสีย และพาร์เซอร์ฝั่งไคลเอนต์จะอ่านไม่ออก ทุกอย่างที่อยากล็อกเพื่อดีบักต้องส่งไป stderr แทน

MCP Inspector แสดงให้เห็น tool และ resource วิดีโอโดยผู้เขียน

การจัดการข้อผิดพลาดใน MCP ทำงานอย่างไร และเหตุใดจึงสำคัญสำหรับการสัมภาษณ์?

มีสามชั้น ความล้มเหลวระดับทรานสปอร์ตคือปัญหาการเชื่อมต่อ ข้อผิดพลาดระดับโปรโตคอลใช้โค้ดมาตรฐานของ JSON-RPC (-32700 สำหรับ parse error, -32600 ถึง -32603 สำหรับคำขอไม่ถูกต้อง เมธอดไม่รู้จัก และปัญหาคล้ายกัน) ความล้มเหลวระดับแอป เช่น API ที่คุณเรียกภายใน tool คืนข้อผิดพลาด ควรส่งกลับมาพร้อม isError: true ในผลลัพธ์ของ tool เพื่อให้โมเดลมองเห็นและตอบสนองได้

return {
    "content": [{"type": "text", "text": "Rate limit exceeded, try again later"}],
    "isError": True
}

แฟล็กนี้ทำให้โมเดลเห็นความล้มเหลวและลองแนวทางอื่น

ตอนนี้ MCP มีสเตตหรือไม่?

มี เซสชันวันนี้ถูกตามรอยในระดับการเชื่อมต่อ ซึ่งสร้างปัญหาการสเกลสำหรับทีมโปรดักชัน จะอธิบายในส่วนออกแบบระบบ

คำถามสัมภาษณ์ด้านความปลอดภัยและธรรมาภิบาลของ MCP

คำถามด้านความปลอดภัยถูกถามบ่อยในหลายการสัมภาษณ์ MCP โดยเฉพาะบทบาทแพลตฟอร์มและองค์กร

การยืนยันตัวตนต่างกันอย่างไรระหว่างทรานสปอร์ต stdio และ HTTP?

สำหรับเซิร์ฟเวอร์โลคัลที่ใช้ stdio การยืนยันตัวตนในทางปฏิบัติเป็นตัวเลือก คุณได้เชื่อใจกระบวนการที่เรียกใช้อยู่แล้ว สำหรับเซิร์ฟเวอร์ระยะไกลผ่าน HTTP ใช้กรอบ OAuth 2.1 และเซิร์ฟเวอร์ถูกจัดประเภทเป็น OAuth 2.0 resource servers ตามสเปก 2025-06-18 อย่างไรก็ตาม OAuth ไม่ได้จำเป็นในทุกที่ของ MCP

tool poisoning คืออะไร?

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

การโจมตีแบบ rug pull ต่างจาก tool poisoning อย่างไร?

tool poisoning เป็นปัญหาที่จุดเข้า การ rug pull เป็นปัญหาความต่อเนื่อง: tool ดูสะอาดตอนอนุมัติ แต่คำนิยามถูกเปลี่ยนภายหลัง และไคลเอนต์ส่วนใหญ่ไม่มีวิธีบังคับให้อนุมัติใหม่ในตัว การป้องกันอย่างใดอย่างหนึ่งไม่เท่ากับป้องกันอีกแบบ

Enterprise-Managed Authorization คืออะไร และทำไมถึงสำคัญตอนนี้?

EMA เป็นส่วนขยายของ MCP ที่ขึ้นสถานะเสถียรเมื่อ 18 มิถุนายน 2026 มันย้ายการตัดสินใจอนุญาตไปยังผู้ให้บริการระบุตัวตนขององค์กร แทนคลิกยินยอมต่อเซิร์ฟเวอร์รายตัวจากพนักงานแต่ละคน ไคลเอนต์จะได้รับ Identity Assertion JWT ที่ลงนามระหว่าง SSO และแลกเป็นโทเค็นการเข้าถึงแบบจำกัดขอบเขตจาก authorization server ของเซิร์ฟเวอร์ ผู้สนับสนุนมี Anthropic, Microsoft และ Okta

คำถามสัมภาษณ์ MCP กับ AI Agent

ตรงนี้คือจุดที่โปรโตคอลเชื่อมกับการออกแบบเอเจนต์

ทำไม MCP จึงสำคัญต่อเอเจนต์โดยเฉพาะ?

เอเจนต์ ต้องการบริบทและการกระทำ MCP รวมทั้งสองอย่างไว้ในโปรโตคอลเดียว อย่างที่กล่าว tools/list ช่วยให้อเอเจนต์ค้นพบสิ่งที่มีอยู่ แทนพึ่งพารายการฮาร์ดโค้ดในโค้ดเอเจนต์

Diagram showing an AI agent's host and client connecting over JSON-RPC to an MCP server that exposes tools, resources, and prompts.

โมเดล host, client และ server ของเอเจนต์ ภาพโดยผู้เขียน

ความต่างระหว่าง MCP กับ A2A คืออะไร?

กฎสั้น ๆ คือ: MCP เชื่อมเอเจนต์กับเครื่องมือ ส่วน A2A เชื่อมเอเจนต์กับเอเจนต์อื่น ทั้งสองโปรโตคอลอยู่ภายใต้ Agentic AI Foundation แล้ว จึงมักถูกพูดถึงเป็นเลเยอร์แยกกัน ไม่ใช่คู่แข่ง

sampling primitive คืออะไร และควรพูดถึงอยู่ไหม?

Sampling ทำให้เซิร์ฟเวอร์ขอให้ไคลเอนต์เรียกโมเดลคอมพลีชัน ซึ่งเป็นวิธีที่เซิร์ฟเวอร์ทำตัวคล้ายเอเจนต์ได้โดยไม่ต้องถือกุญแจ API รู้จัก primitive นี้ แต่ใส่ข้อแม้ไว้ด้วย: RC ของ 2026-07-28 ทำเครื่องหมาย Sampling, Roots และ Logging ว่าถูกเลิกใช้ภายใต้นโยบายวัฏจักรฟีเจอร์ใหม่ ยังใช้งานได้อย่างน้อยสิบสองเดือน แต่ผู้เขียนเซิร์ฟเวอร์ถูกแนะให้เรียก API ของผู้ให้บริการโมเดลโดยตรงมากขึ้น

เอเจนต์หลีกเลี่ยงการทำให้หน้าต่างบริบทบวมจากคำนิยาม tool อย่างไร?

โดยไม่โหลดคำนิยาม tool ทั้งหมดตั้งแต่ต้น วิธี Tool Search ของ Anthropic ชะลอการโหลดสคีมาของ tool จนกว่าจะต้องใช้ และจากบทความวิศวกรรมรายงานว่าลดการใช้โทเค็นได้ 85% สำหรับสภาพแวดล้อมที่มี tool หนัก ในคำตอบสัมภาษณ์ ควรจับคู่การโหลดแบบหน่วงกับการแยกเซิร์ฟเวอร์ตามขอบเขตแคบ ๆ

คำถามสัมภาษณ์การออกแบบระบบ MCP

คำถามสถานการณ์ทดสอบว่าคุณประยุกต์แนวคิดภายใต้ข้อจำกัดได้หรือไม่ ไม่ใช่แค่ท่องนิยาม

ออกแบบระบบดึงเอกสารด้วย MCP

MCP และ RAG ไม่ได้แข่งขันกัน RAG จัดการการสืบค้นเวกเตอร์จากคลังความรู้ที่จัดทำดัชนีไว้ล่วงหน้า ส่วน MCP เปิดเผยการสืบค้นนั้นเป็น tool หรือ resource ที่เอเจนต์เรียกสดได้ ควบคู่ไปกับการกระทำอื่น ๆ ที่เอเจนต์ต้องการ มองคำถามนี้ว่าเป็นการประกอบสองชิ้นเข้าด้วยกัน ไม่ใช่เลือกแทนที่กัน

ออกแบบ MCP server สำหรับข้อมูลภายในบริษัท

เริ่มจากหลัก Single Responsibility: หนึ่งเซิร์ฟเวอร์ต่อหนึ่งโดเมน เช่น เซิร์ฟเวอร์ฐานข้อมูล และแยกเซิร์ฟเวอร์ไฟล์ แทนเซิร์ฟเวอร์เดียวทำทุกอย่าง เพิ่ม OAuth 2.1 ขอบเขตสิทธิ์แบบน้อยที่สุดต่อ tool และบันทึกการตรวจสอบตั้งแต่แรก เพราะการควบคุมการเข้าถึงแก้ทีหลังยากกว่า

จะสเกลการดีพลอย MCP อย่างไรในวันนี้ ก่อนสเปกแบบสเตตเลสจะปล่อย?

ผู้สมัครมักพลาดโดยอธิบายสเปกอนาคตเหมือนปล่อยแล้ว ประเด็นการสเกลคือความมีสเตตจากส่วนเซิร์ฟเวอร์: การสเกลแนวนอนต้องมีการรูตแบบติดหนึบ สตอร์เซสชันร่วม หรือเกตเวย์ MCP RC 2026-07-28 จะลบเซสชันระดับโปรโตคอล แต่ยังไม่ใช่ของจริงตอนนี้

จะกันไม่ให้การดีพลอยขนาดใหญ่หลายเซิร์ฟเวอร์ถมโทเค็นใส่โมเดลอย่างไร?

แนวคิดโหลดแบบหน่วงจากส่วนเอเจนต์ช่วยได้ ที่ระดับดีพลอยให้กรองและสรุปข้อมูลฝั่งเซิร์ฟเวอร์ก่อนเข้าบริบทของโมเดล และแบ่งหน้า (paginate) ทุกสิ่งที่คืนรายการ กฎหลักคือคุมสิ่งที่เข้าหน้าต่างบริบท

คำถามสัมภาษณ์การผสานรวม MCP

คำถามด้านการผสานรวมตรวจว่าคุณเข้าใจว่า MCP ปรากฏในเครื่องมือของนักพัฒนาอย่างไร

MCP ปรากฏในผลิตภัณฑ์ Claude อย่างไร?

ทั้ง Claude.ai, Claude Desktop และ Claude Code รองรับ MCP และ Anthropic มีไดเรกทอรีคอนเน็กเตอร์ที่รวมเซิร์ฟเวอร์สำเร็จรูป นอกจากนี้ยังมีคอนเน็กเตอร์ MCP ใน Messages API สำหรับเซิร์ฟเวอร์ระยะไกล ซึ่งยังเป็นเบต้าในขณะเขียน

Claude Desktop developer settings showing a locally connected MCP server with one available tool.

Claude Desktop แสดง MCP server ที่เชื่อมต่อ ภาพโดยผู้เขียน

MCP ใช้ได้แค่กับ Claude เท่านั้นหรือ?

ไม่ OpenAI นำ MCP มาใช้ใน Agents SDK และ Apps SDK ตั้งแต่มีนาคม 2025 VS Code ส่งมอบการรองรับสเปกเต็มกลางปี 2025 Cursor รองรับ MCP ผ่าน mcp.json และ Google Cloud มี MCP server แบบจัดการมากกว่า 50 ตัว ทั้งแบบพร้อมใช้งานทั่วไปหรือพรีวิวภายในเมษายน 2026

MCP ต่างจาก RAG แบบจับต้องได้อย่างไร?

นี่คือคำตอบแบบย่อของการออกแบบระบบ: RAG ตอบจากคลังความรู้ที่อัปเดตตามรอบ ส่วน MCP จัดการการค้นหาแบบสดและการกระทำ

คำถามสัมภาษณ์ MCP ขั้นสูง

คำถามขั้นสูงตรวจว่าคุณติดตามโปรโตคอลที่เปลี่ยนแปลงอยู่หรือไม่ ไม่ใช่แค่ว่ามันทำงานอย่างไรวันนี้

ช่วยเล่าย้อนประวัติเวอร์ชันของสเปกได้ไหม?

ผู้สัมภาษณ์ถามเพื่อดูว่าคุณรู้ว่าอะไรเปลี่ยนและเมื่อใด มีห้าฉบับที่สำคัญ และมีเพียงหนึ่งที่ยังเป็นสมมติฐาน:

Version

Date

What changed

2024-11-05

Nov 2024

Initial release

2025-03-26

Mar 2025

Streamable HTTP replaces HTTP+SSE; OAuth 2.1 introduced

2025-06-18

Jun 2025

Structured tool outputs, elicitation, OAuth resource server classification

2025-11-25

Nov 2025

Current stable spec; async Tasks (experimental), governance formalized

2026-07-28

RC locked May 2026

Stateless core, MCP Apps, extensions framework

ประเด็นสำคัญคือรู้ว่าแถวใดปล่อยจริงแล้ว

ตอนนี้ใครเป็นผู้ดูแล MCP จริง ๆ?

Anthropic มอบโปรโตคอลให้ Agentic AI Foundation ซึ่งเป็นกองทุนกำกับภายใต้ Linux Foundation เมื่อ 9 ธันวาคม 2025 Block และ OpenAI ร่วมก่อตั้ง AAIF เคียงข้าง Anthropic โดยมี Google, Microsoft, AWS, Cloudflare และ Bloomberg เป็นสมาชิกสนับสนุน ผู้ดูแลยังคงคุมการตัดสินใจเชิงเทคนิค ส่วนธรรมาภิบาลย้ายไปมูลนิธิที่กว้างขึ้น

อะไรจะเปลี่ยนจริงในรุ่น 2026-07-28?

การเปลี่ยนหลักคือแกนสเตตเลสจากส่วนออกแบบระบบ: การจับมือ initialize/initialized และเฮดเดอร์ Mcp-Session-Id ถูกถอดออก แทนที่ด้วยข้อมูลความสามารถที่วิ่งใน _meta ทุกคำขอ ช่วยลบความจำเป็นของ sticky routing กรอบส่วนขยายยังนิยามวิธีที่ความสามารถเสริมอย่าง MCP Apps และ Tasks ส่งและทำให้เสถียรได้เอง

ส่วนขยาย MCP คืออะไร และใช้ได้ทุกที่หรือไม่?

ไม่ ส่วนขยายคือความสามารถแบบเลือกใช้ เช่น Enterprise-Managed Authorization, OAuth Client Credentials สำหรับการยืนยันเครื่องกับเครื่อง และ MCP Apps สำหรับ UI โต้ตอบภายในโฮสต์ การรองรับต่างกันไปตามไคลเอนต์ อย่าออกแบบโดยสมมติว่ามีส่วนขยายทุกตัวเสมอ

คำถามสัมภาษณ์ MCP แบบสถานการณ์

คำถามเหล่านี้ทดสอบการวินิจฉัยมากกว่าความจำ ควรจัดโครงคำตอบจากอาการ ไปสาเหตุ ไปวิธีแก้

การเรียก tool ล้มเหลวเป็นครั้งคราว ตรวจอะไรก่อน?

ดูว่าความล้มเหลวกลับมารูปแบบ isError: true ในผลลัพธ์ของ tool หรือเป็นข้อผิดพลาดระดับโปรโตคอล จะแยกได้ว่าปัญหาอยู่ในลอจิกของ tool เองหรือทรานสปอร์ต จากนั้นดูเรตลิมิตของระบบที่ tool ห่อไว้ และตรวจทามเอาต์ก่อนจะโทษโมเดล

เอเจนต์ยังคงใช้ resource แบบข้อมูลค้าง ทำไม?

ย้อนกลับไปที่คำถาม resource ก่อนหน้า: listChanged คือสิ่งที่บอกไคลเอนต์ว่า resource เปลี่ยน หากไม่ประกาศ ไคลเอนต์จะไม่มีสัญญาณและให้สแน็ประดับแคชต่อไปจนกว่าจะถูกบังคับให้รีเฟรช

MCP server ตัวหนึ่งกลายเป็นคอขวดชัดเจน ทำอย่างไร?

แยกตามโดเมน เพิ่มพูลการเชื่อมต่อ และสเกลแนวนอน ก่อนแกนสเตตเลสจะปล่อย อาจยังต้องใช้ session affinity ตามที่พูดถึงในส่วนออกแบบระบบ

ข้อมูลอ่อนไหวรั่วผ่านการเรียก tool เกิดขึ้นได้อย่างไร?

สองสาเหตุพบบ่อยคือ tool มีสิทธิ์กว้างเกินจำเป็น หรือขาดการทำความสะอาดผลลัพธ์ก่อนใส่เข้าสู่บริบทของโมเดล แนวทางแก้คือสิทธิ์น้อยที่สุดต่อ tool และขั้นตอนทำความสะอาดก่อนเข้า context เกี่ยวเนื่องกับ tool poisoning ด้วย: โมเดลอาจถูกสั่งให้ส่งต่อข้อมูลได้โดยไม่มีใครเขียนโค้ดขโมยข้อมูล

ข้อผิดพลาดที่พบบ่อยในการสัมภาษณ์ MCP

รูปแบบบางอย่างเกิดบ่อยพอที่จะต้องเอ่ยถึงโดยตรง:

  • ปฏิบัติกับ MCP ราวกับแทนที่ REST ตรง ๆ ทั้งที่ความต่างของ REST อธิบายไปแล้ว

  • นิยาม tools กับ resources ตามชนิดข้อมูล ทั้งที่โมเดลการควบคุมอธิบายไปแล้ว

  • คิดว่ากฎยืนยันตัวตนเดียวกันใช้กับ stdio และ HTTP

  • ให้คำตอบแบบ SSE รุ่นเก่าหลังการเปลี่ยนทรานสปอร์ตที่อธิบายไปแล้ว

  • สับสนสเปกที่ปล่อยแล้วกับ RC ของ 2026-07-28

  • ข้ามความเสี่ยงด้านความปลอดภัยที่กล่าวไว้เมื่อต้องออกแบบระบบเรียก tool

ส่วนใหญ่ข้อผิดพลาดเหล่านี้มาจากบทเรียนเก่า

เตรียมตัวสำหรับการสัมภาษณ์ MCP อย่างไร

การลงมือทำสำคัญสำหรับโปรโตคอลนี้

  • สร้างเซิร์ฟเวอร์เล็ก ๆ ด้วย FastMCP หรือ TypeScript SDK เปิดเผย tool หนึ่งตัวและ resource หนึ่งตัว แล้วให้รันได้

  • ติดตั้ง Inspector อย่างเป็นทางการ (npx @modelcontextprotocol/inspector) และดูทราฟฟิก JSON-RPC ดิบที่มันแสดง

  • เชื่อมเซิร์ฟเวอร์ของคุณกับไคลเอนต์จริง Claude Desktop, VS Code หรือ Cursor และดูการจับมือเริ่มต้น

  • อ่านบันทึกการเปลี่ยนสเปกจริง แทนสรุปมือสอง โดยเฉพาะรายการของ 2025-06-18 และ 2025-11-25

  • เลือกสถานการณ์ออกแบบระบบหนึ่งจากบทความนี้และเขียนคำตอบเต็มก่อนสัมภาษณ์

ขั้นตอนเหล่านี้จะแยกความรู้เชิงนิยามออกจากความคุ้นมือจริง

บทสรุป

การท่องนิยาม MCP อย่างเดียวไม่พออีกต่อไป ส่วนที่ยากกว่าคือรู้ว่าคำตอบไหนอยู่ในสเปกเวอร์ชันใด การดีพลอยปัจจุบันยังต้องรับมือกับเซสชันระดับการเชื่อมต่อ ส่วน RC 2026-07-28 ชี้ไปที่แกนสเตตเลส หากคุณพร่ามัวสองอย่างนี้ คำตอบสถาปัตยกรรมจะฟังดูมั่นใจกว่าความถูกต้อง

ดังนั้นควรมอง MCP เป็นสิ่งที่ต้องทดลอง ไม่ใช่แค่อ่าน สร้างเซิร์ฟเวอร์เล็ก ๆ ตามส่วนเตรียมตัว ดูไคลเอนต์ลิสต์ tools และอ่าน resources และสังเกตว่าโปรโตคอลจบตรงไหน และการออกแบบแอปของคุณเริ่มตรงไหน คำตอบสัมภาษณ์ที่มีประโยชน์ไม่ใช่ "MCP คือ USB-C ของ AI" แต่คือ "นี่คือสิ่งที่ MCP ทำให้เป็นมาตรฐาน นี่คือสิ่งที่ไม่ และนี่คือสิ่งที่เพิ่งเปลี่ยนไป"

หากต้องการต่อยอดแบบเป็นโครงสร้าง หลักสูตร Building Scalable Agentic Systems ของเราครอบคลุม MCP และ A2A ในบริบทของการออกแบบ ทดสอบ และดีพลอยเอเจนต์

FAQs

ต้องท่องวันที่ของทุกเวอร์ชันสเปกหรือไม่?

ไม่จำเป็น รู้ลำดับและสิ่งที่เปลี่ยนในแต่ละขั้น โดยเฉพาะการสลับทรานสปอร์ตและเวอร์ชันที่ปล่อยจริง ผู้สัมภาษณ์สนใจมากกว่าว่าคุณให้เหตุผลได้ว่าทำไมถึงมีการเปลี่ยน มากกว่าท่องวันที่เป๊ะ ๆ

Sampling กำลังถูกเลิกใช้ ยังควรเรียนไหม?

ตอนนี้ควรเรียนรู้ ยังใช้งานได้เต็มที่อย่างน้อยหนึ่งปีหลังประกาศเลิกใช้ รู้เหตุผลที่ถูกลดบทบาท: เสี่ยงด้านความปลอดภัย และการนำไปใช้น้อยเมื่อเทียบกับความซับซ้อน

ควรเริ่มจาก SDK ไหนถ้าไม่เคยแตะ MCP มาก่อน?

Python กับ FastMCP เป็นจุดเริ่มที่ง่ายที่สุด เพราะ API แบบเดคอเรเตอร์ซ่อนโค้ดโครงร่างส่วนใหญ่ ถ้าสต็กของคุณหนักไปทาง JavaScript ให้ใช้ TypeScript ก็ได้ SDK นั้นอยู่ Tier 1 เช่นกัน

เมื่อสเปก 2026-07-28 ปล่อยแล้ว MCP จะยังสำคัญหรือไม่?

มีแนวโน้มว่าใช่ แกนสเตตเลสที่กล่าวถึงจะช่วยแก้ปัญหาการสเกลในโปรดักชันที่ทีมต่าง ๆ เจอ โปรโตคอลที่ง่ายขึ้นภายใต้แรงกดดันมักเป็นสัญญาณของความเป็นผู้ใหญ่ ไม่ใช่การถดถอย

การสัมภาษณ์ MCP ระดับเริ่มต้นจะลึกเชิงเทคนิคแค่ไหน?

ขึ้นกับบทบาท รอบคัดกรองสายวิศวกรรม AI ทั่วไปอาจหยุดที่ host เทียบกับ client เทียบกับ server และ tools เทียบกับ resources บทบาทแพลตฟอร์มหรือโครงสร้างพื้นฐานอาจเข้าสู่ทรานสปอร์ตและการยืนยันตัวตนอย่างรวดเร็ว แม้ในระดับค่อนข้างจูเนียร์

หัวข้อ

เรียนรู้กับ Datacamp

Courses

การสร้างระบบ Agentic ที่รองรับการขยายขนาด

1 30
16K
ค้นพบสิ่งที่ต้องใช้ในการขยายสเกลเอเจนต์ AI พร้อมความช่วยเหลือเล็กน้อยจากเฟรมเวิร์กอย่าง MCP และ A2A
ดูรายละเอียดRight Arrow
เริ่มหลักสูตร
ดูเพิ่มเติมRight Arrow