การใช้งานจริงคือจุดที่พลังของ Model Context Protocol (MCP) กลายเป็นสิ่งที่จับต้องได้ แม้ว่าการเข้าใจทฤษฎีและสถาปัตยกรรมเบื้องหลัง MCP จะมีความสำคัญ แต่คุณค่าที่แท้จริงจะเกิดขึ้นเมื่อคุณนำแนวคิดเหล่านี้ไปใช้ในการสร้าง ทดสอบ และนำโซลูชันไปใช้งานจริงเพื่อแก้ปัญหาในโลกแห่งความเป็นจริง บทนี้จะเชื่อมช่องว่างระหว่างความรู้เชิงแนวคิดกับการพัฒนาจริง โดยแนะนำขั้นตอนในการสร้างแอปพลิเคชันที่ใช้ MCP ให้เกิดขึ้นได้
ไม่ว่าคุณจะกำลังพัฒนาผู้ช่วยอัจฉริยะ การผสาน AI เข้ากับเวิร์กโฟลว์ธุรกิจ หรือสร้างเครื่องมือเฉพาะสำหรับการประมวลผลข้อมูล MCP มอบพื้นฐานที่ยืดหยุ่น การออกแบบที่ไม่ขึ้นกับภาษาโปรแกรมและ SDK อย่างเป็นทางการสำหรับภาษายอดนิยมช่วยให้เข้าถึงได้สำหรับนักพัฒนาหลากหลายกลุ่ม ด้วยการใช้ SDK เหล่านี้ คุณสามารถสร้างต้นแบบ ทดสอบ และขยายโซลูชันของคุณได้อย่างรวดเร็วในแพลตฟอร์มและสภาพแวดล้อมที่แตกต่างกัน
ในส่วนถัดไป คุณจะพบตัวอย่างการใช้งานจริง โค้ดตัวอย่าง และกลยุทธ์การนำไปใช้งานที่แสดงให้เห็นวิธีการใช้งาน MCP ใน C#, Java, TypeScript, JavaScript และ Python คุณจะได้เรียนรู้วิธีการดีบักและทดสอบเซิร์ฟเวอร์ MCP การจัดการ API และการนำโซลูชันขึ้นคลาวด์ด้วย Azure ทรัพยากรเหล่านี้ถูกออกแบบมาเพื่อเร่งการเรียนรู้ของคุณและช่วยให้คุณสร้างแอป MCP ที่มั่นคงและพร้อมใช้งานจริงได้อย่างมั่นใจ
บทเรียนนี้เน้นไปที่แง่มุมการใช้งานจริงของ MCP ในหลายภาษาโปรแกรม เราจะสำรวจวิธีการใช้ MCP SDK ใน C#, Java, TypeScript, JavaScript และ Python เพื่อสร้างแอปพลิเคชันที่มั่นคง ดีบักและทดสอบเซิร์ฟเวอร์ MCP รวมถึงการสร้างทรัพยากร, prompts และเครื่องมือที่นำกลับมาใช้ใหม่ได้
เมื่อจบบทเรียนนี้ คุณจะสามารถ:
- นำโซลูชัน MCP ไปใช้งานโดยใช้ SDK อย่างเป็นทางการในหลายภาษาโปรแกรม
- ดีบักและทดสอบเซิร์ฟเวอร์ MCP อย่างเป็นระบบ
- สร้างและใช้งานฟีเจอร์ของเซิร์ฟเวอร์ (Resources, Prompts และ Tools)
- ออกแบบเวิร์กโฟลว์ MCP ที่มีประสิทธิภาพสำหรับงานที่ซับซ้อน
- ปรับแต่งการใช้งาน MCP เพื่อประสิทธิภาพและความน่าเชื่อถือ
Model Context Protocol มี SDK อย่างเป็นทางการสำหรับหลายภาษา:
ส่วนนี้นำเสนอตัวอย่างการใช้งาน MCP ในหลายภาษาโปรแกรม คุณสามารถดูโค้ดตัวอย่างในไดเรกทอรี samples ที่จัดเรียงตามภาษา
รีโพสิตอรีประกอบด้วย ตัวอย่างการใช้งาน ในภาษาต่อไปนี้:
แต่ละตัวอย่างแสดงแนวคิดหลักของ MCP และรูปแบบการใช้งานสำหรับภาษานั้นๆ และระบบนิเวศของมัน
เซิร์ฟเวอร์ MCP สามารถใช้งานฟีเจอร์เหล่านี้ร่วมกันได้:
Resources ให้บริบทและข้อมูลสำหรับผู้ใช้หรือโมเดล AI ใช้ประกอบการทำงาน:
- ที่เก็บเอกสาร
- ฐานความรู้
- แหล่งข้อมูลที่มีโครงสร้าง
- ระบบไฟล์
Prompts คือข้อความแม่แบบและเวิร์กโฟลว์สำหรับผู้ใช้:
- แม่แบบการสนทนาที่กำหนดไว้ล่วงหน้า
- รูปแบบการโต้ตอบที่มีการแนะนำ
- โครงสร้างบทสนทนาเฉพาะทาง
Tools คือฟังก์ชันที่โมเดล AI สามารถเรียกใช้งานได้:
- ยูทิลิตี้ประมวลผลข้อมูล
- การเชื่อมต่อ API ภายนอก
- ความสามารถในการคำนวณ
- ฟังก์ชันการค้นหา
รีโพสิตอรี SDK C# อย่างเป็นทางการมีตัวอย่างการใช้งานหลายแบบที่แสดงแง่มุมต่างๆ ของ MCP:
- Basic MCP Client: ตัวอย่างง่ายๆ ที่แสดงวิธีสร้าง MCP client และเรียกใช้งานเครื่องมือ
- Basic MCP Server: การใช้งานเซิร์ฟเวอร์พื้นฐานที่ลงทะเบียนเครื่องมืออย่างง่าย
- Advanced MCP Server: เซิร์ฟเวอร์ที่มีฟีเจอร์ครบครันพร้อมการลงทะเบียนเครื่องมือ การตรวจสอบสิทธิ์ และการจัดการข้อผิดพลาด
- ASP.NET Integration: ตัวอย่างการผสานรวมกับ ASP.NET Core
- Tool Implementation Patterns: รูปแบบต่างๆ สำหรับการสร้างเครื่องมือที่มีความซับซ้อนหลากหลายระดับ
SDK MCP สำหรับ C# ยังอยู่ในช่วงพรีวิวและ API อาจมีการเปลี่ยนแปลง เราจะอัปเดตบล็อกนี้อย่างต่อเนื่องเมื่อ SDK พัฒนาไป
สำหรับตัวอย่างการใช้งาน C# แบบครบถ้วน ให้เยี่ยมชม รีโพสิตอรีตัวอย่าง C# SDK อย่างเป็นทางการ
Java SDK มอบตัวเลือกการใช้งาน MCP ที่แข็งแกร่งพร้อมฟีเจอร์ระดับองค์กร
- การผสานรวมกับ Spring Framework
- ความปลอดภัยของชนิดข้อมูลที่เข้มงวด
- รองรับโปรแกรมเชิงปฏิกิริยา (Reactive programming)
- การจัดการข้อผิดพลาดอย่างครบถ้วน
สำหรับตัวอย่างการใช้งาน Java แบบครบถ้วน ดูได้ที่ Java sample ในไดเรกทอรีตัวอย่าง
JavaScript SDK มอบวิธีการใช้งาน MCP ที่เบาและยืดหยุ่น
- รองรับ Node.js และเบราว์เซอร์
- API แบบ Promise
- การผสานรวมง่ายกับ Express และเฟรมเวิร์กอื่นๆ
- รองรับ WebSocket สำหรับการสตรีมข้อมูล
สำหรับตัวอย่างการใช้งาน JavaScript แบบครบถ้วน ดูได้ที่ JavaScript sample ในไดเรกทอรีตัวอย่าง
Python SDK มอบวิธีการใช้งาน MCP ที่เป็นธรรมชาติสำหรับ Python พร้อมการผสานรวมกับเฟรมเวิร์ก ML ชั้นนำ
- รองรับ async/await ด้วย asyncio
- การผสานรวมกับ Flask และ FastAPI
- การลงทะเบียนเครื่องมืออย่างง่าย
- การผสานรวมเนทีฟกับไลบรารี ML ยอดนิยม
สำหรับตัวอย่างการใช้งาน Python แบบครบถ้วน ดูได้ที่ Python sample ในไดเรกทอรีตัวอย่าง
Azure API Management เป็นคำตอบที่ดีสำหรับการรักษาความปลอดภัยของ MCP Servers แนวคิดคือการวาง Azure API Management ไว้หน้าตัว MCP Server ของคุณและให้มันจัดการฟีเจอร์ต่างๆ ที่คุณอาจต้องการ เช่น:
- การจำกัดอัตราการเรียกใช้งาน (rate limiting)
- การจัดการโทเคน
- การตรวจสอบและมอนิเตอร์
- การกระจายโหลด
- ความปลอดภัย
นี่คือตัวอย่าง Azure ที่ทำตามแนวทางนี้ เช่น การสร้าง MCP Server และรักษาความปลอดภัยด้วย Azure API Management
ดูการไหลของการอนุญาตในภาพด้านล่าง:
ในภาพนี้ เกิดเหตุการณ์ดังนี้:
- การตรวจสอบสิทธิ์และการอนุญาตเกิดขึ้นโดยใช้ Microsoft Entra
- Azure API Management ทำหน้าที่เป็นเกตเวย์และใช้โพลิซีเพื่อกำหนดทิศทางและจัดการทราฟฟิก
- Azure Monitor บันทึกคำขอทั้งหมดเพื่อนำไปวิเคราะห์เพิ่มเติม
มาดูรายละเอียดการไหลของการอนุญาตกัน:
เรียนรู้เพิ่มเติมเกี่ยวกับ ข้อกำหนดการอนุญาต MCP
มาลองดูว่าเราสามารถนำตัวอย่างที่กล่าวถึงไปใช้งานได้หรือไม่:
-
โคลนรีโพสิตอรี
git clone https://github.com/Azure-Samples/remote-mcp-apim-functions-python.git cd remote-mcp-apim-functions-python -
ลงทะเบียน
Microsoft.Appด้วยคำสั่งaz provider register --namespace Microsoft.App --waitหรือRegister-AzResourceProvider -ProviderNamespace Microsoft.Appและตรวจสอบสถานะการลงทะเบียนด้วย(Get-AzResourceProvider -ProviderNamespace Microsoft.App).RegistrationStateหลังจากรอสักครู่ -
รันคำสั่ง azd นี้เพื่อจัดเตรียมบริการ API Management, function app (พร้อมโค้ด) และทรัพยากร Azure อื่นๆ ที่จำเป็นทั้งหมด
azd up
คำสั่งนี้จะนำทรัพยากรทั้งหมดขึ้นบนคลาวด์ Azure
-
ใน หน้าต่างเทอร์มินัลใหม่ ให้ติดตั้งและรัน MCP Inspector
npx @modelcontextprotocol/inspector
คุณจะเห็นอินเทอร์เฟซคล้ายกับ:
-
กด CTRL คลิกเพื่อโหลดเว็บแอป MCP Inspector จาก URL ที่แอปแสดง (เช่น http://127.0.0.1:6274/#resources)
-
ตั้งค่าประเภทการส่งข้อมูลเป็น
SSEและ Connect:https://<apim-servicename-from-azd-output>.azure-api.net/mcp/sse
-
แสดงรายการ Tools คลิกที่เครื่องมือแล้ว Run Tool
ถ้าทุกขั้นตอนสำเร็จ คุณจะเชื่อมต่อกับเซิร์ฟเวอร์ MCP ได้และเรียกใช้งานเครื่องมือได้
Remote-mcp-functions: ชุดรีโพสิตอรีนี้เป็นเทมเพลตเริ่มต้นอย่างรวดเร็วสำหรับการสร้างและนำเซิร์ฟเวอร์ MCP ระยะไกลแบบกำหนดเองโดยใช้ Azure Functions กับ Python, C# .NET หรือ Node/TypeScript
ตัวอย่างเหล่านี้นำเสนอโซลูชันครบถ้วนที่ช่วยให้นักพัฒนาสามารถ:
- สร้างและรันบนเครื่องท้องถิ่น: พัฒนาและดีบักเซิร์ฟเวอร์ MCP บนเครื่องของคุณ
- นำขึ้น Azure: นำขึ้นคลาวด์ได้ง่ายด้วยคำสั่ง azd up เพียงคำสั่งเดียว
- เชื่อมต่อจากไคลเอนต์: เชื่อมต่อกับเซิร์ฟเวอร์ MCP จากไคลเอนต์ต่างๆ รวมถึงโหมด Copilot agent ของ VS Code และเครื่องมือ MCP Inspector
- ความปลอดภัยตั้งแต่การออกแบบ: เซิร์ฟเวอร์ MCP ปลอดภัยด้วยคีย์และ HTTPS
- ตัวเลือกการตรวจสอบสิทธิ์: รองรับ OAuth ผ่านระบบ auth ในตัวและ/หรือ API Management
- การแยกเครือข่าย: รองรับการแยกเครือข่ายด้วย Azure Virtual Networks (VNET)
- สถาปัตยกรรมแบบไร้เซิร์ฟเวอร์: ใช้ Azure Functions เพื่อประมวลผลแบบขยายตัวตามเหตุการณ์
- การพัฒนาท้องถิ่น: รองรับการพัฒนาและดีบักแบบครบวงจรบนเครื่อง
- การนำขึ้นใช้งานง่าย: กระบวนการนำขึ้นใช้งานไปยัง Azure ที่เรียบง่าย
รีโพสิตอรีมีไฟล์คอนฟิก โค้ดต้นฉบับ และคำจำกัดความโครงสร้างพื้นฐานที่จำเป็นทั้งหมด เพื่อให้คุณเริ่มต้นใช้งานเซิร์ฟเวอร์ MCP พร้อมใช้งานจริงได้อย่างรวดเร็ว
-
Azure Remote MCP Functions Python - ตัวอย่างการใช้งาน MCP ด้วย Azure Functions และ Python
-
Azure Remote MCP Functions .NET - ตัวอย่างการใช้งาน MCP ด้วย Azure Functions และ C# .NET
-
Azure Remote MCP Functions Node/Typescript - ตัวอย่างการใช้งาน MCP ด้วย Azure Functions และ Node/TypeScript
- MCP SDK มอบเครื่องมือเฉพาะภาษาสำหรับการสร้างโซลูชัน MCP ที่มั่นคง
- กระบวนการดีบักและทดสอบเป็นสิ่งสำคัญสำหรับแอป MCP ที่เชื่อถือได้
- แม่แบบ prompt ที่นำกลับมาใช้ใหม่ช่วยให้การโต้ตอบกับ AI มีความสม่ำเสมอ
- เวิร์กโฟลว์ที่ออกแบบดีสามารถจัดการงานซับซ้อนได้โดยใช้เครื่องมือหลายตัว
- การใช้งาน MCP ต้องคำนึงถึงความปลอดภัย ประสิทธิภาพ และการจัดการข้อผิดพลาด
ออกแบบเวิร์กโฟลว์ MCP ที่ใช้งานได้จริงเพื่อแก้ปัญหาในโดเมนของคุณ:
- ระบุเครื่องมือ 3-4 ตัวที่เป็นประโยชน์สำหรับการแก้ปัญหานี้
- สร้างไดอะแกรมเวิร์กโฟลว์แสดงการทำงานร่วมกันของเครื่องมือเหล่านี้
- พัฒนาเวอร์ชันพื้นฐานของเครื่องมือหนึ่งตัวโดยใช้ภาษาที่คุณถนัด
- สร้างแม่แบบ prompt ที่ช่วยให้โมเดลใช้เครื่องมือของคุณได้อย่างมีประสิทธิภาพ
ถัดไป: หัวข้อขั้นสูง
ข้อจำกัดความรับผิดชอบ:
เอกสารนี้ได้รับการแปลโดยใช้บริการแปลภาษาอัตโนมัติ Co-op Translator แม้เราจะพยายามให้มีความถูกต้องสูงสุด แต่โปรดทราบว่าการแปลอัตโนมัติอาจมีข้อผิดพลาดหรือความคลาดเคลื่อนได้ เอกสารต้นฉบับในภาษาต้นทางถือเป็นแหล่งข้อมูลที่เชื่อถือได้ หากเป็นข้อมูลสำคัญ แนะนำให้ใช้บริการแปลโดยผู้เชี่ยวชาญด้านภาษามนุษย์ เราไม่รับผิดชอบต่อความเข้าใจผิดหรือการตีความผิดที่เกิดขึ้นจากการใช้การแปลนี้


