Hướng sử dụng MCP guide để tạo cron expression với GraphQL Plugin
Back to graphqlGraphQL Plugin cung cấp MCP server cho khu vực admin tại endpoint
/graphql/mcp. Khi AI client kết nối MCP server này, nó có thể đọc cácresource guide của plugin để trả lời theo đúng quy ước của ezyplatform.
Với cron expression, resource cần đọc là:
guide://cron-expression-authoring
Mục tiêu của guide này là giúp AI biến lịch lặp bằng ngôn ngữ tự nhiên, ví dụ
mỗi ngày lúc 8 giờ sáng hoặc mỗi 15 phút, thành cron expression hợp lệ đểngười dùng copy vào trường
cron expression của tính năng tương ứng.Vì sao nên yêu cầu AI đọc MCP guide
Cron expression của ezyplatform không phải Quartz và cũng không phải POSIX
crontab tiêu chuẩn. Nếu AI tự suy đoán theo trí nhớ thông thường, nó rất dễ
đưa ra biểu thức có token không được hỗ trợ, như
?, L, W, #, tên thángJAN, tên thứ MON, hoặc trường năm thứ 7.Khi viết prompt, hãy yêu cầu AI đọc
guide://cron-expression-authoring trước.Guide này mô tả đúng cú pháp mà parser của ezyplatform chấp nhận, gồm số
trường, miền giá trị, các token hợp lệ và ý nghĩa khi kết hợp ngày-trong-tháng
với ngày-trong-tuần.
flowchart TD
A[Người dùng mô tả lịch lặp] --> B[AI client kết nối GraphQL MCP]
B --> C[resources/read guide://cron-expression-authoring]
C --> D[AI chuyển yêu cầu thành các trường cron cụ thể]
D --> E[AI kiểm tra cú pháp và các cảnh báo của guide]
E --> F[AI trả về cron expression và diễn giải ngắn]
F --> G[Người dùng copy vào trường cron expression]
Chuẩn cron expression của ezyplatform
Cron expression của ezyplatform có đúng 5 hoặc 6 trường số, cách nhau bằng
khoảng trắng:
MINUTE HOUR DAY-OF-MONTH MONTH DAY-OF-WEEK SECOND MINUTE HOUR DAY-OF-MONTH MONTH DAY-OF-WEEK
Dạng 5 trường được ưu tiên cho hầu hết lịch lặp thông thường; giây mặc định là
0. Chỉ dùng dạng 6 trường khi người dùng thật sự cần độ chính xác theo giây,ví dụ
mỗi 30 giây.Miền giá trị:
| Trường | Giá trị |
|---|---|
| SECOND | 0-59 |
| MINUTE | 0-59 |
| HOUR | 0-23 |
| DAY-OF-MONTH | 1-31 |
| MONTH | 1-12 |
| DAY-OF-WEEK | 0-6, trong đó 0 là Chủ nhật |
Token được hỗ trợ:
| Cú pháp | Ý nghĩa |
|---|---|
* | Mọi giá trị trong miền hợp lệ |
n | Một giá trị cụ thể |
n-m | Khoảng từ n đến m, bao gồm hai đầu |
*/step | Lặp theo bước, bắt đầu từ giá trị nhỏ nhất của trường |
n/step | Lặp theo bước, bắt đầu từ n đến giá trị lớn nhất |
n-m/step | Lặp theo bước trong một khoảng |
a,b,c | Danh sách các giá trị hoặc token hợp lệ |
Điểm dễ nhầm nhất là
DAY-OF-MONTH và DAY-OF-WEEK. Khi cả hai trường đềubị giới hạn, ezyplatform yêu cầu cả hai cùng khớp. Nói cách khác, đây là logic
AND. Nếu người dùng muốn
ngày 1 hằng tháng hoặc mỗi thứ Hai, không nên viếtcả hai điều kiện vào cùng một expression mà nên hỏi lại cách cấu hình phù hợp.
Cách viết prompt cho AI
Một prompt tốt nên nói rõ ba việc:
- AI phải đọc MCP resource guide trước khi trả lời.
- AI phải dùng cú pháp cron của ezyplatform, không dùng Quartz/crontab.
- AI phải giải thích lại lịch chạy bằng ngôn ngữ tự nhiên để người dùng kiểmtra trước khi copy.
Mẫu prompt ngắn:
Hãy dùng GraphQL MCP server và đọc resource guide://cron-expression-authoring trước khi tạo cron expression. Tôi cần lịch chạy: mỗi ngày lúc 8 giờ 30 sáng. Trả về: 1. Cron expression hợp lệ của ezyplatform. 2. Diễn giải ngắn lịch này sẽ chạy khi nào. 3. Nếu có điểm mơ hồ hoặc có nguy cơ nhầm với Quartz/crontab, hãy nói rõ.
Mẫu prompt cho lịch có ngày trong tuần:
Đọc guide://cron-expression-authoring từ GraphQL MCP trước. Tạo cron expression ezyplatform cho lịch: mỗi thứ Hai, thứ Tư và thứ Sáu lúc 18:00. Không dùng tên ngày trong tuần, không dùng Quartz syntax. Hãy trả về expression dạng plain text và giải thích lại ý nghĩa.
Kết quả mong đợi:
0 18 * * 1,3,5
Mẫu prompt khi cần độ chính xác theo giây:
Hãy đọc MCP guide guide://cron-expression-authoring và tạo cron expression của ezyplatform cho lịch: mỗi 30 giây. Vì lịch này cần cấp độ giây, nếu cần hãy dùng dạng 6 trường. Hãy giải thích vì sao không dùng dạng 5 trường.
Kết quả mong đợi:
0/30 * * * * *
Checklist trước khi copy cron expression
Trước khi copy kết quả của AI vào trường cấu hình, hãy kiểm tra nhanh:
- Expression có đúng 5 hoặc 6 trường không.
- Tất cả giá trị đều là số, không có
JAN,MON,SUN. - Không có token
?,L,W,#. - Không có trường năm thứ 7.
- Nếu có dùng
DAY-OF-WEEK, Chủ nhật phải là0, không phải7. - Nếu cả
DAY-OF-MONTHvàDAY-OF-WEEKđều khác*, bạn đã thật sự muốnlogic AND.
Một số ví dụ nhanh
| Nhu cầu | Cron expression |
|---|---|
| Mỗi phút | * * * * * |
| Đầu mỗi giờ | 0 * * * * |
| Mỗi ngày lúc 08:00 | 0 8 * * * |
| Mỗi ngày lúc 08:30 | 30 8 * * * |
| Mỗi thứ Hai lúc 08:00 | 0 8 * * 1 |
| Mỗi ngày trong tuần lúc 08:00 | 0 8 * * 1-5 |
| Mỗi 15 phút | */15 * * * * |
| Mỗi 2 giờ đúng đầu giờ | 0 */2 * * * |
| Ngày 1 hằng tháng lúc 00:00 | 0 0 1 * * |
| Mỗi 30 giây | 0/30 * * * * * |
Giới hạn cần nhớ
MCP guide chỉ giúp AI tạo và kiểm tra cron expression theo đúng cú pháp. Nó
không tự lưu, kích hoạt hay gán expression vào một tính năng cụ thể. Sau khi AI
trả về kết quả, người dùng vẫn cần copy expression vào trường cấu hình phù hợp
trong ezyplatform.