Bỏ qua để đến nội dung

Log và progress notifications

Bài viết được dịch tự động từ bài viết gốc, chưa được kiểm tra lại bởi con người. Chỉ những bài viết có dấu tick xanh cạnh tiêu đề là đã được kiểm tra.

Với các tool MCP chạy lâu, việc thông báo tiến độ theo thời gian thực giúp trải nghiệm người dùng tốt hơn nhiều, thay vì để họ băn khoăn không biết tool có đang hoạt động hay không.

Python MCP SDK dùng một tham số Context truyền vào hàm tool, cho phép giao tiếp hai chiều:

  • context.info() gửi thông điệp log tới client.
  • context.report_progress() cập nhật tiến độ, với giá trị hiện tại và tổng số.

Ví dụ: một tool nghiên cứu có thể báo cáo trạng thái và tiến độ ở nhiều giai đoạn khác nhau trong lúc thực thi.

Client cần thiết lập các hàm callback để xử lý notification:

  • Logging callback - nhận và xử lý các thông điệp log.
  • Progress callback - xử lý cập nhật tiến độ, có thể kèm tính toán phần trăm tuỳ chọn.

Các callback này được cung cấp khi tạo client session và khi thực hiện lệnh gọi tool.

Cách triển khai tuỳ thuộc vào loại ứng dụng:

  • Ứng dụng CLI hiển thị thông điệp/tiến độ trực tiếp trong terminal.
  • Ứng dụng web dùng WebSocket, server-sent events, hoặc polling.
  • Ứng dụng desktop cập nhật thanh tiến độ và trạng thái trên UI.

Notification là tính năng tuỳ chọn; ứng dụng có thể bỏ qua chúng, hoặc chỉ hiển thị một phần.