Giải quyết sự cố hỗ trợ MCP Server bằng một trang Hello đơn giản

Phần mềm16 tháng 5, 2026·3 phút đọc

Bài viết chia sẻ giải pháp cho vấn đề người dùng thường xuyên mở trực tiếp liên kết máy chủ MCP trên trình duyệt, dẫn đến lỗi và yêu cầu hỗ trợ. Bằng cách phát hiện tiêu đề Accept của trình duyệt để trả về một trang HTML hướng dẫn thay vì lỗi JSON, tác giả đã giảm thiểu đáng kể lượng vé hỗ trợ và cải thiện trải nghiệm thiết lập cho khách hàng.

Chúng tôi bắt đầu cung cấp một MCP (Model Context Protocol) Server cho công cụ chính của công ty. Mặc dù đây là một trải nghiệm thú vị, nằm ở giao điểm giữa các thế giới xác định và không xác định, nhưng thực tế cho thấy MCP vẫn là một nỗ lực "đặc tả kỹ thuật" (specification) còn nhiều thiếu sót.

Một vấn đề khó chịu liên tục phát sinh là khách hàng liên tục báo cáo rằng MCP server không hoạt động. Lý do rất đơn giản và nó cho thấy sự ma sát giữa việc các lập trình viên xây dựng đặc tả theo cảm hứng và người dùng thực tế khi bắt đầu sử dụng: nếu bạn mở đường dẫn mcp.acme.com/mcp trên một trình duyệt, bạn sẽ nhận ngay một lỗi 401 lớn và một đoạn JSON thô thông báo "Unauthorized" (Chưa được xác thực).

Vấn đề về trải nghiệm người dùng

Điều này thực sự gây phiền toái vì người dùng thường mở liên kết này, nhìn thấy thông báo lỗi và ngay lập tức tạo một vé hỗ trợ (ticket) than phiền rằng liên kết bị hỏng. Thực tế, liên kết không "hỏng" theo nghĩa kỹ thuật, nhưng nó không hoạt động vì họ cần dán đường dẫn đó vào ứng dụng khách LLM (LLM client) của mình thay vì trình duyệt web. Tuy nhiên, rất ít người dùng nghĩ đến điều này ngay lập tức.

Giải pháp gây đau đầu nhất là đóng gói server của chúng tôi thành một trình kết nối (connector) hoặc plugin và phát hành nó cho từng ứng dụng khách LLM riêng biệt trên thị trường. Đây là một quá trình chậm chạp, đau đớn và giống như một trò chơi "đập chuột" (whack-a-mole) không hồi kết, đặc biệt khi chúng tôi có nhiều khách hàng bắt đầu tự xây dựng các ứng dụng client nhúng trong nội bộ tổ chức của họ.

Giải pháp "hacky" nhưng hiệu quả

Thay vì đi vào vòng lặp phát triển plugin vô tận, tôi đã áp dụng một giải pháp hơi "mì ăn liền" nhưng rất thực tế: Nếu yêu cầu là GET /mcp và tiêu đề Accept bao gồm text/html nhưng KHÔNG phải application/json hay text/event-stream, tôi sẽ trả về một trang HTML đơn giản.

Trang này giải thích cho người dùng rằng họ đang cố gắng xem trực tiếp một máy chủ MCP và họ cần thêm đường dẫn này vào ứng dụng khách (client) của mình để sử dụng.

Kết quả và bài học

Kết quả thật đáng kinh ngạc: Số lượng vé hỗ trợ đã giảm sâu, đội ngũ Chăm sóc khách hàng (CS) vui vẻ hơn, và khách hàng có thể thiết lập nhanh chóng hơn nhiều. Tôi cũng không còn phải giải thích rằng không phải mọi lỗi hiển thị trên màn hình đều là lỗi hệ thống. Đây là chiến thắng trên mọi phương diện, và theo quan sát của chúng tôi, nó không gây ra tác động tiêu cực nào đến hiệu suất.

Tôi ước gì đặc tả kỹ thuật MCP có một số khả năng để giảm thiểu vấn đề này từ đầu. Nhưng đáng tiếc, giống như mọi thứ trong kỷ nguyên AI này, dường như chúng ta luôn phải di chuyển nhanh và hy vọng rằng AI có thể sửa lỗi nhanh hơn tốc độ chúng ta tạo ra chúng.

Cuối cùng, có thể nói rằng đặc tả MCP hiện tại giống như những "hướng dẫn" hơn là một đặc tả kỹ thuật thực thụ.

Chia sẻ:FacebookX
Nội dung tổng hợp bằng AI, mang tính tham khảo. Xem bài gốc ↗