ChatGPT hiện sử dụng webhook tiêu chuẩn để phân phối sự kiện MCP theo thời gian thực
Phần mở rộng MCP Events mới của OpenAI cho phép ChatGPT phản hồi với các thay đổi từ hệ thống bên ngoài thông qua webhook tiêu chuẩn, đồng thời đặt ra các yêu cầu cụ thể về bảo mật và quản lý vòng đời cho nhà phát triển.
Bài được dịch tự động từ bản gốc tiếng Anh.
OpenAI đã tích hợp hỗ trợ cho Model Context Protocol (MCP) Events vào ChatGPT, cho phép trợ lý AI này đăng ký nhận cập nhật theo thời gian thực từ các hệ thống bên ngoài. Cách triển khai này, được chi tiết hóa trong một bài phân tích kỹ thuật bởi Svix vào ngày 21 tháng 10 năm 2026, hoàn toàn dựa trên các webhook tiêu chuẩn để phân phối sự kiện. Các nhà phát triển xây dựng máy chủ MCP giờ đây phải xử lý vòng đời đăng ký, xác minh mã hóa và tuân thủ nghiêm ngặt các giao thức bảo mật để đảm bảo ứng dụng của họ có thể đẩy dữ liệu an toàn đến ChatGPT.
Chuyện gì đã xảy ra
Model Context Protocol đã tiến hóa từ mô hình request-response không trạng thái sang kiến trúc hướng sự kiện. MCP Events là một phần mở rộng cho phép một client AI, chẳng hạn như ChatGPT, đăng ký theo dõi các sự kiện cụ thể trong một hệ thống khác, ví dụ như bình luận mới trên tài liệu, pull request được merge, hoặc cảnh báo sự cố nghiêm trọng. Khi những sự kiện này xảy ra, máy chủ MCP sẽ thông báo cho client, từ đó kích hoạt các hành động tự động hoặc lệnh gọi công cụ. Mặc dù đặc tả kỹ thuật định nghĩa ba chế độ phân phối—polling, push streams và webhooks—nhưng ChatGPT hiện chỉ hỗ trợ phân phối qua webhook.
Để hỗ trợ điều này, một máy chủ MCP phải khai báo khả năng sự kiện của mình và triển khai ba phương thức mới: events/list, events/subscribe và events/unsubscribe. Phương thức events/list mô tả các sự kiện khả dụng, bao gồm tên, mô tả và schema cho các tham số cũng như payload. Khi người dùng yêu cầu ChatGPT giám sát một tài nguyên cụ thể, client sẽ gửi một yêu cầu đăng ký chứa URL callback, một bí mật ký do client tạo ra và giá trị time-to-live. Máy chủ phải xác thực yêu cầu này, kiểm tra endpoint callback, sau đó bắt đầu gửi các sự kiện đã ký đến URL được cung cấp mỗi khi điều kiện chỉ định được đáp ứng.
Chi tiết chính
- ChatGPT chỉ sử dụng phân phối webhook cho MCP Events, yêu cầu máy chủ POST sự kiện đến URL callback do client cung cấp.
- Các đăng ký là tạm thời; chúng hết hạn dựa trên tham số
ttlMsvà phải được client làm mới trước thời điểm hết hạn. - Mỗi payload sự kiện bao gồm một
eventIdđể khử trùng lặp, dấu thời gian, dữ liệu và một con trỏ (cursor) để tiếp tục sau các khoảng trống. - Việc xác minh yêu cầu bắt tay challenge-response, trong đó endpoint phải ký một challenge bằng khóa dẫn xuất từ bí mật đăng ký.
- Máy chủ phải triển khai bảo vệ SSRF bằng cách xác thực địa chỉ IP tại thời điểm phân phối và tuyệt đối không đi theo các chuyển hướng (redirect).
- Payload sự kiện nên tối giản, chỉ chứa ID và tóm tắt, nhằm giảm thiểu rủi ro tấn chèn prompt injection.
Bối cảnh
Webhook là một mẫu thiết kế phổ biến cho giao tiếp giữa các máy chủ, nơi một ứng dụng gửi các yêu cầu HTTP POST đến ứng dụng khác khi các sự kiện cụ thể xảy ra. Standard Webhooks là một đặc tả mở được tạo ra vào năm 2023, định nghĩa cách các yêu cầu này cần được ký và cấu trúc để đảm bảo tính bảo mật và độ tin cậy. MCP Events xây dựng trực tiếp trên nền tảng này, sử dụng cùng lược đồ chữ ký HMAC-SHA256 và cấu trúc header. Sự tương thích này có nghĩa là các thư viện và công cụ hiện có dành cho Standard Webhooks phần lớn có thể được tái sử dụng cho các tích hợp MCP, giúp giảm bớt gánh nặng kỹ thuật cho nhà phát triển.
Việc chuyển sang tương tác hướng sự kiện giải quyết các hạn chế của hệ thống dựa trên polling, nơi client phải liên tục hỏi để lấy cập nhật. Bằng cách đẩy sự kiện chỉ khi có thay đổi, các hệ thống giảm độ trễ và lưu lượng mạng không cần thiết. Tuy nhiên, điều này cũng giới thiệu sự phức tạp liên quan đến độ tin cậy và bảo mật. Máy chủ phải đảm bảo việc phân phối thông qua cơ chế thử lại, xử lý các sự kiện trùng lặp một cách mềm mỏng và đảm bảo rằng các tác nhân độc hại không thể đăng ký các URL callback tùy ý để tấn công các bên thứ ba.
Tại sao điều này quan trọng
Đối với các đội ngũ vận hành phần mềm tự host hoặc xây dựng công cụ nội bộ, việc hỗ trợ MCP Events mở ra những hướng đi mới cho tích hợp AI. Thay vì phụ thuộc vào các kiểm tra định kỳ hoặc kích hoạt thủ công, hệ thống của bạn có thể chủ động thông báo cho ChatGPT về những thay đổi quan trọng. Điều này cho phép các quy trình làm việc phản hồi nhanh hơn và tự chủ hơn, chẳng hạn như tự động cập nhật tài liệu khi code thay đổi hoặc cảnh báo đội hỗ trợ khi một ticket ưu tiên cao được tạo. Tuy nhiên, nó cũng đòi hỏi sự chú ý nghiêm ngặt đến bảo mật và sự ổn định của hạ tầng.
Yêu cầu về các đăng ký ngắn hạn (ephemeral) và bí mật do client tạo ra thay đổi cách các endpoint webhook được quản lý. Không giống như các webhook truyền thống có thể tồn tại vô thời hạn, các đăng ký MCP phải được theo dõi, làm mới và dọn dẹp tự động. Việc không xử lý đúng đắn quá trình hết hạn có thể dẫn đến bỏ lỡ sự kiện hoặc rò rỉ tài nguyên. Ngoài ra, các hàm ý bảo mật khi chấp nhận URL callback bên ngoài đòi hỏi logic xác thực mạnh mẽ để ngăn chặn giả mạo yêu cầu phía máy chủ (SSRF) và tấn công chèn prompt injection, nơi dữ liệu sự kiện độc hại có thể thao túng hành vi của AI.
Bạn có thể làm gì
- Triển khai các phương thức
events/list,events/subscribevàevents/unsubscribetrong máy chủ MCP của bạn theo đặc tả dự thảo. - Sử dụng các thư viện Standard Webhooks để xử lý việc ký và xác minh, đảm bảo tương thích với định dạng mà ChatGPT mong đợi.
- Xác thực tất cả các URL callback trong quá trình đăng ký bằng cách thực hiện bắt tay challenge-response, yêu cầu endpoint chứng minh quyền sở hữu bí mật.
- Thực thi các biện pháp bảo vệ SSRF bằng cách phân giải và xác thực địa chỉ IP tại thời điểm phân phối sự kiện, chứ không chỉ tại thời điểm đăng ký.
- Giữ cho payload sự kiện nhỏ gọn và an toàn, chỉ gửi các định danh và tóm tắt thay vì toàn bộ nội dung để giảm thiểu rủi ro prompt injection.
- Duy trì một nhật ký sự kiện chỉ thêm (append-only) để hỗ trợ các con trỏ và đảm bảo không có sự kiện nào bị mất trong quá trình khởi động lại máy chủ hoặc gián đoạn đăng ký.



