Thư mục này chứa các ví dụ hoàn chỉnh và hoạt động của MCP client trong các ngôn ngữ lập trình khác nhau. Mỗi client minh họa đầy đủ các chức năng được mô tả trong hướng dẫn README.md chính.
- Giao thức truyền tải: SSE (Server-Sent Events) qua HTTP
- Máy chủ mục tiêu:
http://localhost:8080 - Tính năng:
- Thiết lập kết nối và ping
- Liệt kê công cụ
- Các phép toán máy tính (cộng, trừ, nhân, chia, trợ giúp)
- Xử lý lỗi và trích xuất kết quả
Cách chạy:
# Ensure your MCP server is running on localhost:8080
javac client_example_java.java
java client_example_java- Giao thức truyền tải: Stdio (Đầu vào/Đầu ra chuẩn)
- Máy chủ mục tiêu: Máy chủ MCP .NET cục bộ qua dotnet run
- Tính năng:
- Tự động khởi động máy chủ qua giao thức stdio
- Liệt kê công cụ và tài nguyên
- Các phép toán máy tính
- Phân tích kết quả JSON
- Xử lý lỗi toàn diện
Cách chạy:
dotnet run- Giao thức truyền tải: Stdio (Đầu vào/Đầu ra chuẩn)
- Máy chủ mục tiêu: Máy chủ MCP Node.js cục bộ
- Tính năng:
- Hỗ trợ đầy đủ giao thức MCP
- Các thao tác công cụ, tài nguyên và prompt
- Các phép toán máy tính
- Đọc tài nguyên và thực thi prompt
- Xử lý lỗi mạnh mẽ
Cách chạy:
# First compile TypeScript (if needed)
npm run build
# Then run the client
npm run client
# or
node client_example_typescript.js- Giao thức truyền tải: Stdio (Đầu vào/Đầu ra chuẩn)
- Máy chủ mục tiêu: Máy chủ MCP Python cục bộ
- Tính năng:
- Mô hình async/await cho các thao tác
- Khám phá công cụ và tài nguyên
- Kiểm tra các phép toán máy tính
- Đọc nội dung tài nguyên
- Tổ chức theo lớp
Cách chạy:
python client_example_python.pyMỗi triển khai client minh họa:
-
Quản lý kết nối
- Thiết lập kết nối với máy chủ MCP
- Xử lý lỗi kết nối
- Dọn dẹp và quản lý tài nguyên đúng cách
-
Khám phá máy chủ
- Liệt kê các công cụ có sẵn
- Liệt kê các tài nguyên có sẵn (nếu được hỗ trợ)
- Liệt kê các prompt có sẵn (nếu được hỗ trợ)
-
Thực thi công cụ
- Các phép toán máy tính cơ bản (cộng, trừ, nhân, chia)
- Lệnh trợ giúp để lấy thông tin máy chủ
- Truyền tham số đúng cách và xử lý kết quả
-
Xử lý lỗi
- Lỗi kết nối
- Lỗi thực thi công cụ
- Xử lý thất bại một cách nhẹ nhàng và phản hồi cho người dùng
-
Xử lý kết quả
- Trích xuất nội dung văn bản từ phản hồi
- Định dạng đầu ra để dễ đọc
- Xử lý các định dạng phản hồi khác nhau
Trước khi chạy các client này, hãy đảm bảo bạn đã:
- Máy chủ MCP tương ứng đang chạy (từ
../01-first-server/) - Cài đặt các phụ thuộc cần thiết cho ngôn ngữ bạn chọn
- Kết nối mạng đúng cách (đối với các giao thức truyền tải qua HTTP)
| Ngôn ngữ | Giao thức truyền tải | Khởi động máy chủ | Mô hình Async | Thư viện chính |
|---|---|---|---|---|
| Java | SSE/HTTP | Bên ngoài | Đồng bộ | WebFlux, MCP SDK |
| C# | Stdio | Tự động | Async/Await | .NET MCP SDK |
| TypeScript | Stdio | Tự động | Async/Await | Node MCP SDK |
| Python | Stdio | Tự động | AsyncIO | Python MCP SDK |
| Rust | Stdio | Tự động | Async/Await | Rust MCP SDK, Tokio |
Sau khi khám phá các ví dụ client này:
- Chỉnh sửa các client để thêm tính năng hoặc thao tác mới
- Tạo máy chủ của riêng bạn và kiểm tra với các client này
- Thử nghiệm với các giao thức truyền tải khác nhau (SSE so với Stdio)
- Xây dựng ứng dụng phức tạp hơn tích hợp chức năng MCP
- Kết nối bị từ chối: Đảm bảo máy chủ MCP đang chạy trên cổng/đường dẫn mong đợi
- Không tìm thấy module: Cài đặt MCP SDK cần thiết cho ngôn ngữ của bạn
- Quyền bị từ chối: Kiểm tra quyền tệp cho giao thức stdio
- Không tìm thấy công cụ: Xác minh máy chủ triển khai các công cụ mong đợi
- Bật ghi nhật ký chi tiết trong MCP SDK của bạn
- Kiểm tra nhật ký máy chủ để tìm thông báo lỗi
- Xác minh tên và chữ ký công cụ khớp giữa client và máy chủ
- Kiểm tra với MCP Inspector trước để xác thực chức năng máy chủ
Tuyên bố miễn trừ trách nhiệm:
Tài liệu này đã được dịch bằng dịch vụ dịch thuật AI Co-op Translator. Mặc dù chúng tôi cố gắng đảm bảo độ chính xác, xin lưu ý rằng các bản dịch tự động có thể chứa lỗi hoặc không chính xác. Tài liệu gốc bằng ngôn ngữ bản địa nên được coi là nguồn tham khảo chính thức. Đối với các thông tin quan trọng, chúng tôi khuyến nghị sử dụng dịch vụ dịch thuật chuyên nghiệp từ con người. Chúng tôi không chịu trách nhiệm cho bất kỳ sự hiểu lầm hoặc diễn giải sai nào phát sinh từ việc sử dụng bản dịch này.