Hướng dẫn thiết kế dữ liệu đặt lịch và tìm chức năng bằng MCP Server
Back To BlogsỞ bài trước, website Nuny Nail đã lấy dịch vụ, bảng giá, album mẫu móng và blog từ trang admin EzyPlatform, mỗi dịch vụ đều có thời gian làm và nút "Đặt lịch" dẫn tới /dat-lich?dich-vu=... Nhưng trang /dat-lich vẫn đang hiện chữ "Đang xây dựng", vì website chưa có dữ liệu về thợ, giờ mở cửa, ngày nghỉ và lịch hẹn.
Trong bài này, chúng ta sẽ thiết kế dữ liệu đặt lịch, dùng MCP Server để AI tra cứu xem EzyPlatform đã có sẵn chức năng gì để lưu các dữ liệu đó, rồi làm trang /dat-lich để khách gửi được lịch hẹn và chủ tiệm thấy lịch ngay trong admin.
Phần 1. Kết nối AI với EzyPlatform qua MCP Server
MCP Server giúp trợ lý AI trong VS Code làm việc trực tiếp với EzyPlatform: xem plugin đang cài, đọc cấu trúc dữ liệu, tìm API và tạo dữ liệu trong admin. Nhờ vậy AI đề xuất dựa trên hệ thống thật của tiệm thay vì đoán. Bạn có thể tham khảo thêm tài liệu hướng dẫn kết nối MCP Server tại đây: https://ezyplatform.com/blog/chuong-9-mcp-server
Sau khi kết nối, kiểm tra AI đã dùng được MCP Server chưa:
Prompt mẫu
"Hãy kiểm tra kết nối MCP Server của EzyPlatform. CHƯA sửa file, CHƯA tạo hay xóa dữ liệu. Liệt kê các công cụ MCP Server đang có và công dụng của từng công cụ. Đánh dấu công cụ nào chỉ đọc, công cụ nào có thể tạo, sửa, xóa dữ liệu. Thử lấy danh sách plugin đang cài và dữ liệu dịch vụ đã tạo ở bài trước."
Lưu ý: MCP Server dùng quyền quản trị giống admin_access_token, chỉ dùng trong VS Code để AI làm việc. Mỗi khi AI muốn tạo, sửa, xóa dữ liệu, hãy đọc kỹ nó định làm gì trước khi đồng ý.
Phần 2. Thiết kế dữ liệu đặt lịch
Bước 1: Mô tả cách tiệm nhận lịch và liệt kê dữ liệu
AI không biết tiệm vận hành thế nào, nên hãy kể cụ thể trước khi hỏi về dữ liệu:
Prompt mẫu
"Đây là cách Nuny Nail nhận lịch: Tiệm mở cửa 9:00 đến 20:00, riêng Chủ nhật đến 18:00. Lịch hẹn phải xong trước giờ đóng cửa. Có 3 thợ: chị Lan (nghỉ thứ Hai), Mai (nghỉ thứ Tư), Thảo (nghỉ thứ Sáu). Ai cũng sơn gel được, chỉ chị Lan và Mai làm đắp bột, nối móng. Thợ có thể nghỉ đột xuất, tiệm nghỉ vài ngày dịp Tết. Khách có thể chọn nhiều dịch vụ, chọn thợ hoặc 'thợ nào cũng được', chỉ cần để lại tên và số điện thoại. Hãy liệt kê các loại dữ liệu cần có cho chức năng đặt lịch và thông tin cần lưu của từng loại. CHƯA sửa file, CHƯA tạo dữ liệu."
Bước 2: Dùng MCP Server tìm chức năng có sẵn
Giống bài trước, không để AI tự viết mới mà bắt AI tra cứu trước:
Prompt mẫu
"Dùng MCP Server, hãy tìm chức năng có sẵn trong EzyPlatform và các plugin đang cài để lưu từng loại dữ liệu ở trên. CHƯA sửa file, CHƯA tạo dữ liệu. Với mỗi loại, cho biết: Dùng chức năng nào có sẵn, kèm tên công cụ MCP hoặc API đã tra cứu được. Chủ tiệm thêm, sửa ở đâu trong trang admin. Website đọc, ghi dữ liệu đó bằng cách nào mà không cần admin_access_token. Phần nào EzyPlatform chưa có và cách bạn đề xuất làm thêm. Phần nào là suy đoán, không tra cứu được thì ghi rõ. Khi tôi đồng ý, ghi phương án vào file docs/thiet-ke-du-lieu-dat-lich.md."
Dòng "phần nào là suy đoán thì ghi rõ" giúp bạn phát hiện khi AI đưa ra tên API nghe hợp lý nhưng không có thật. Nếu AI đề xuất viết mới trong khi EzyPlatform đã có chức năng tương tự, hãy hỏi lại: "Có cách nào dùng chức năng có sẵn thay vì viết mới không?". Riêng lịch hẹn, hãy hỏi thêm: "Cách lưu này có tìm nhanh được lịch theo thợ và theo ngày, và có giữ kín số điện thoại của khách không?".
Phần 3. Nhập thợ và giờ mở cửa vào admin
Prompt mẫu
"Hãy tạo dữ liệu thợ, giờ mở cửa và ngày nghỉ của Nuny Nail trong EzyPlatform theo docs/thiet-ke-du-lieu-dat-lich.md, dùng thông tin tiệm ở trên. Trước khi tạo, liệt kê những gì sẽ tạo và chờ tôi đồng ý. Không tạo trùng nếu dữ liệu đã có. Xong thì cho tôi biết vào đâu trong admin để xem và sửa."
Vào admin thử sửa như chủ tiệm: thêm một ngày nghỉ đột xuất cho Thảo, đổi giờ đóng cửa Chủ nhật. Nếu việc nào phải sửa code mới làm được, quay lại Phần 2 nhờ AI tìm cách khác.
Phần 4. Hiển thị đặt lịch trên website
Bước 1: Làm trang /dat-lich
Khi đã có dữ liệu, cho AI thay trang "Đang xây dựng" bằng trang đặt lịch thật:
Prompt mẫu
"Hãy làm trang /dat-lich dùng dữ liệu trong EzyPlatform theo docs/thiet-ke-du-lieu-dat-lich.md: Nếu đường dẫn có ?dich-vu=<mã dịch vụ> thì chọn sẵn dịch vụ đó, hiển thị tên, giá, thời gian làm. Khách chọn thợ (chỉ hiện thợ làm được dịch vụ đã chọn) hoặc 'thợ nào cũng được'. Khách chọn ngày và giờ: chỉ cho chọn trong giờ mở cửa, giờ kết thúc không quá giờ đóng cửa, không cho chọn ngày thợ nghỉ hoặc tiệm nghỉ. Khách nhập tên, số điện thoại, ghi chú rồi bấm 'Gửi lịch hẹn'. Lịch hẹn được lưu vào EzyPlatform với trạng thái 'chờ xác nhận', sau đó hiện màn hình cảm ơn kèm tóm tắt lịch và số Zalo của tiệm. Làm theo brand-guide.md, ưu tiên hiển thị trên điện thoại. Yêu cầu: Không đưa admin_access_token hay thông tin bí mật vào code giao diện. Trang web chỉ được gửi lịch hẹn mới, không được đọc tên, số điện thoại của khách khác. Nếu không lưu được lịch, hiển thị thông báo thân thiện kèm số điện thoại, Zalo của tiệm. Sau khi xong, liệt kê các file đã thay đổi và dừng lại để tôi xem trước."
Ở bài này, trang đặt lịch mới loại được giờ ngoài giờ mở cửa và ngày nghỉ. Việc ẩn những giờ thợ đã có khách sẽ làm ở bài sau, khi chúng ta tính khung giờ còn trống cho từng thợ.
Bước 2: Thử đặt lịch như một khách hàng
Vào trang /dich-vu trên điện thoại, bấm "Đặt lịch" ở thẻ Đắp bột: trang /dat-lich phải chọn sẵn Đắp bột và chỉ hiện chị Lan, Mai. Chọn Mai, thử chọn thứ Tư: ngày này phải không chọn được vì Mai nghỉ. Chọn Chủ nhật: giờ muộn nhất cho Đắp bột 90 phút là 16:30.
Gửi một lịch hẹn với tên "của bạn", rồi vào admin: lịch phải hiện với đúng dịch vụ, thợ, giờ và trạng thái chờ xác nhận. Xóa lịch thử sau khi kiểm tra xong. Nếu có chỗ chưa đúng, mô tả cho AI đúng những gì bạn thấy.
Kết luận
Qua bài này, Nuny Nail đã có đủ dữ liệu cho chức năng đặt lịch và trang /dat-lich đã thực sự nhận lịch từ khách: AI được kết nối với EzyPlatform qua MCP Server để tra cứu trên hệ thống thật, dữ liệu thợ, giờ mở cửa, ngày nghỉ và lịch hẹn được thiết kế dựa trên cách tiệm vận hành và lưu bằng chức năng có sẵn của EzyPlatform, chủ tiệm tự sửa thợ và giờ mở cửa trong admin, còn khách bấm "Đặt lịch" từ bất kỳ thẻ dịch vụ nào là có thể chọn thợ, chọn giờ trong giờ mở cửa và gửi lịch hẹn để chủ tiệm xem ngay trong admin.
Điểm mấu chốt vẫn là để AI phân tích và tra cứu trước khi làm, đọc kỹ mỗi lần AI muốn thay đổi dữ liệu và giữ quyền quản trị ngoài code giao diện.
Ở bài tiếp theo, chúng ta sẽ cùng AI tính khung giờ còn trống cho từng thợ, để trang đặt lịch chỉ hiện những giờ thợ thật sự rảnh và không còn hai khách đặt trùng cùng một thợ.
Nguyễn Thị Thanh Tuyền - Chuyên viên Marketing