Skip to content

Latest commit

 

History

History
162 lines (120 loc) · 11.2 KB

File metadata and controls

162 lines (120 loc) · 11.2 KB

ตัวอย่าง MCP Client ที่สมบูรณ์

ไดเรกทอรีนี้ประกอบด้วยตัวอย่าง MCP client ที่สมบูรณ์และใช้งานได้ในภาษาการเขียนโปรแกรมต่างๆ แต่ละ client แสดงให้เห็นถึงฟังก์ชันการทำงานทั้งหมดที่อธิบายไว้ในบทแนะนำ README.md หลัก

Client ที่มีให้ใช้งาน

1. Java Client (client_example_java.java)

  • Transport: SSE (Server-Sent Events) ผ่าน HTTP
  • เซิร์ฟเวอร์เป้าหมาย: http://localhost:8080
  • ฟีเจอร์:
    • การเชื่อมต่อและการ ping
    • การแสดงรายการเครื่องมือ
    • การดำเนินการเครื่องคิดเลข (บวก ลบ คูณ หาร ความช่วยเหลือ)
    • การจัดการข้อผิดพลาดและการดึงผลลัพธ์

วิธีการรัน:

# Ensure your MCP server is running on localhost:8080
javac client_example_java.java
java client_example_java

2. C# Client (client_example_csharp.cs)

  • Transport: Stdio (Standard Input/Output)
  • เซิร์ฟเวอร์เป้าหมาย: เซิร์ฟเวอร์ MCP .NET ในเครื่องผ่าน dotnet run
  • ฟีเจอร์:
    • การเริ่มต้นเซิร์ฟเวอร์อัตโนมัติผ่าน stdio transport
    • การแสดงรายการเครื่องมือและทรัพยากร
    • การดำเนินการเครื่องคิดเลข
    • การแปลงผลลัพธ์ JSON
    • การจัดการข้อผิดพลาดอย่างครอบคลุม

วิธีการรัน:

dotnet run

3. TypeScript Client (client_example_typescript.ts)

  • Transport: Stdio (Standard Input/Output)
  • เซิร์ฟเวอร์เป้าหมาย: เซิร์ฟเวอร์ MCP Node.js ในเครื่อง
  • ฟีเจอร์:
    • รองรับโปรโตคอล MCP อย่างเต็มรูปแบบ
    • การดำเนินการเครื่องมือ ทรัพยากร และ prompt
    • การดำเนินการเครื่องคิดเลข
    • การอ่านทรัพยากรและการดำเนินการ prompt
    • การจัดการข้อผิดพลาดที่แข็งแกร่ง

วิธีการรัน:

# First compile TypeScript (if needed)
npm run build

# Then run the client
npm run client
# or
node client_example_typescript.js

4. Python Client (client_example_python.py)

  • Transport: Stdio (Standard Input/Output)
  • เซิร์ฟเวอร์เป้าหมาย: เซิร์ฟเวอร์ MCP Python ในเครื่อง
  • ฟีเจอร์:
    • รูปแบบ async/await สำหรับการดำเนินการ
    • การค้นพบเครื่องมือและทรัพยากร
    • การทดสอบการดำเนินการเครื่องคิดเลข
    • การอ่านเนื้อหาทรัพยากร
    • การจัดระเบียบแบบใช้คลาส

วิธีการรัน:

python client_example_python.py

ฟีเจอร์ทั่วไปในทุก Client

การใช้งาน client แต่ละตัวแสดงให้เห็นถึง:

  1. การจัดการการเชื่อมต่อ

    • การเชื่อมต่อกับเซิร์ฟเวอร์ MCP
    • การจัดการข้อผิดพลาดในการเชื่อมต่อ
    • การทำความสะอาดและการจัดการทรัพยากรอย่างเหมาะสม
  2. การค้นพบเซิร์ฟเวอร์

    • การแสดงรายการเครื่องมือที่มีอยู่
    • การแสดงรายการทรัพยากรที่มีอยู่ (ถ้ารองรับ)
    • การแสดงรายการ prompt ที่มีอยู่ (ถ้ารองรับ)
  3. การเรียกใช้เครื่องมือ

    • การดำเนินการเครื่องคิดเลขพื้นฐาน (บวก ลบ คูณ หาร)
    • คำสั่งช่วยเหลือสำหรับข้อมูลเซิร์ฟเวอร์
    • การส่งผ่านอาร์กิวเมนต์และการจัดการผลลัพธ์อย่างเหมาะสม
  4. การจัดการข้อผิดพลาด

    • ข้อผิดพลาดในการเชื่อมต่อ
    • ข้อผิดพลาดในการดำเนินการเครื่องมือ
    • การจัดการความล้มเหลวอย่างราบรื่นและการแจ้งเตือนผู้ใช้
  5. การประมวลผลผลลัพธ์

    • การดึงเนื้อหาข้อความจากการตอบกลับ
    • การจัดรูปแบบผลลัพธ์ให้อ่านง่าย
    • การจัดการรูปแบบการตอบกลับที่แตกต่างกัน

ข้อกำหนดเบื้องต้น

ก่อนที่จะรัน client เหล่านี้ ตรวจสอบให้แน่ใจว่าคุณมี:

  1. เซิร์ฟเวอร์ MCP ที่ทำงานอยู่ (จาก ../01-first-server/)
  2. ติดตั้ง dependencies ที่จำเป็น สำหรับภาษาที่คุณเลือก
  3. การเชื่อมต่อเครือข่ายที่เหมาะสม (สำหรับ transport ที่ใช้ HTTP)

ความแตกต่างสำคัญระหว่างการใช้งาน

ภาษา Transport การเริ่มต้นเซิร์ฟเวอร์ รูปแบบ Async ไลบรารีหลัก
Java SSE/HTTP ภายนอก Sync WebFlux, MCP SDK
C# Stdio อัตโนมัติ Async/Await .NET MCP SDK
TypeScript Stdio อัตโนมัติ Async/Await Node MCP SDK
Python Stdio อัตโนมัติ AsyncIO Python MCP SDK
Rust Stdio อัตโนมัติ Async/Await Rust MCP SDK, Tokio

ขั้นตอนถัดไป

หลังจากสำรวจตัวอย่าง client เหล่านี้:

  1. ปรับแต่ง client เพื่อเพิ่มฟีเจอร์หรือการดำเนินการใหม่
  2. สร้างเซิร์ฟเวอร์ของคุณเอง และทดสอบกับ client เหล่านี้
  3. ทดลองใช้ transport ต่างๆ (SSE กับ Stdio)
  4. สร้างแอปพลิเคชันที่ซับซ้อนยิ่งขึ้น ที่ผสานรวมฟังก์ชัน MCP

การแก้ไขปัญหา

ปัญหาทั่วไป

  1. การเชื่อมต่อถูกปฏิเสธ: ตรวจสอบให้แน่ใจว่าเซิร์ฟเวอร์ MCP กำลังทำงานอยู่บนพอร์ต/เส้นทางที่คาดหวัง
  2. ไม่พบโมดูล: ติดตั้ง MCP SDK ที่จำเป็นสำหรับภาษาของคุณ
  3. การอนุญาตถูกปฏิเสธ: ตรวจสอบสิทธิ์ไฟล์สำหรับ stdio transport
  4. ไม่พบเครื่องมือ: ตรวจสอบว่าเซิร์ฟเวอร์มีเครื่องมือที่คาดหวัง

เคล็ดลับการดีบัก

  1. เปิดใช้งานการล็อกแบบละเอียด ใน MCP SDK ของคุณ
  2. ตรวจสอบบันทึกเซิร์ฟเวอร์ เพื่อดูข้อความแสดงข้อผิดพลาด
  3. ตรวจสอบชื่อและลายเซ็นของเครื่องมือ ให้ตรงกันระหว่าง client และเซิร์ฟเวอร์
  4. ทดสอบด้วย MCP Inspector ก่อนเพื่อยืนยันฟังก์ชันเซิร์ฟเวอร์

เอกสารที่เกี่ยวข้อง

ข้อจำกัดความรับผิดชอบ:
เอกสารนี้ได้รับการแปลโดยใช้บริการแปลภาษา AI Co-op Translator แม้ว่าเราจะพยายามให้การแปลมีความถูกต้อง แต่โปรดทราบว่าการแปลอัตโนมัติอาจมีข้อผิดพลาดหรือความไม่แม่นยำ เอกสารต้นฉบับในภาษาต้นทางควรถือเป็นแหล่งข้อมูลที่เชื่อถือได้ สำหรับข้อมูลที่สำคัญ ขอแนะนำให้ใช้บริการแปลภาษามนุษย์ที่เป็นมืออาชีพ เราจะไม่รับผิดชอบต่อความเข้าใจผิดหรือการตีความที่ผิดพลาดซึ่งเกิดจากการใช้การแปลนี้