Education Centre System MCP Tools

Organized from the real EducationCenter MCP manifest and CMS workflow docs, covering students, courses, classes, enrolments, attendance, make-up lessons, invoices, payment proofs, payment records, learning resources, notices, student events, and leave review workflows.

education_center.list_students

read

List students with search, school, gender, status, and record_state filters.

None

Read-only; no action request.

Use bounded pagination; do not dump all student records.

education_center.get_student

read

Read student profile, overview, events, and assigned resources/notices.

education_center.list_students

Read-only; no action request.

Use this state before student-centric assignment or event writes.

education_center.list_courses

read

List courses for class, enrolment, and invoice flows.

None

Read-only; no action request.

Respect record_state so archived courses are not accidentally used.

education_center.list_classes

read

List classes with optional course_id, active_only, and record_state filters.

education_center.list_courses

Read-only; no action request.

Before enrolment, attendance, or invoice work, confirm class is active and capacity is valid.

education_center.list_enrollments

read

List enrolments by student, class, or course filters.

education_center.get_student or education_center.list_classes

Read-only; no action request.

Invoice and default-lesson flows should be based on real enrolment state.

education_center.get_attendance_sheet

read

Read attendance sheet by date, class, tutor, and unmarked filters.

education_center.list_classes

Read-only; no action request.

Attendance writes must use lesson identifiers from this read.

education_center.list_invoices

read

List cashier or student-detail invoice summary rows.

education_center.get_student or filters

Read-only; no action request.

List is summary only; use get_invoice for lessons/payments detail.

education_center.get_invoice

read

Read one invoice with student, lessons, payments, and draft payload.

education_center.list_invoices

Read-only; no action request.

Read current invoice before update_invoice or payment writes.

education_center.preview_invoice_default_lessons

read

Preview backend-generated default invoice lessons and centralize charge_type rules.

education_center.list_enrollments + education_center.list_classes

Read-only preview; no action request.

create/update invoice must submit explicit lessons[]; do not let writes recalculate silently.

education_center.list_invoice_reminders

read

List invoice reminders based on remaining lessons.

education_center.list_invoices

Read-only; no action request.

Verify invoice state and remaining lessons before reminder actions.

education_center.list_payment_proofs

read

List payment proofs with search and status filters.

education_center.list_invoices

Read-only; no action request.

Before review, call get_payment_proof to inspect invoice/student/payment detail.

education_center.get_payment_proof

read

Read one payment proof with invoice, student, review, and applied payment details.

education_center.list_payment_proofs

Read-only; no action request.

Before apply/reject, confirm it is not duplicated and amount matches invoice context.

education_center.list_payment_records

read

List payment record summaries and invoice payment status aggregates.

education_center.list_invoices

Read-only; no action request.

payment-records is its own domain, not merely an invoice attachment.

education_center.list_resources

read

List learning resources.

None

Read-only; no action request.

Call get_resource before assignment changes.

education_center.get_resource

read

Read one learning resource and current assignments.

education_center.list_resources

Read-only; no action request.

Use this state to avoid duplicate or wrong assignments.

education_center.list_notices

read

List notices.

None

Read-only; no action request.

Before notice assignment, read get_notice and target student scope.

education_center.get_notice

read

Read one notice and assignments.

education_center.list_notices

Read-only; no action request.

Before update or assignment, confirm audience, attachments, and read-receipt impact.

education_center.list_student_events

read

List events for one student.

education_center.get_student

Read-only; no action request.

Event writes must remain student-centric and not cross-write another student.

education_center.list_leave_requests

read

List leave requests for review workflows.

education_center.get_attendance_sheet or filters

Read-only; no action request.

Leave affects attendance/makeup; read detail before approval.

education_center.get_leave_request

read

Read one leave request with linked lesson and review context.

education_center.list_leave_requests

Read-only; no action request.

Before approve-makeup, confirm makeup date/time to avoid reschedule conflicts.

education_center.update_attendance

write

Update attendance action for one lesson.

education_center.get_attendance_sheet

Governed write; may execute or return pending_approval.

Use canonical attendance action only; do not mutate lesson rows directly.

education_center.bulk_update_attendance

write

Bulk update attendance action for multiple lessons.

education_center.get_attendance_sheet

Governed write; may execute or return pending_approval.

Lesson identifiers must come from controlled reads; avoid mixing cross-scope rows.

education_center.reschedule_lesson

write

Reschedule one lesson by updating makeup_date, makeup_start_time, and makeup_end_time only.

education_center.get_attendance_sheet

Governed write; may execute or return pending_approval.

Do not change class, tutor, room, or original lesson time through this endpoint.

education_center.create_student_event

write

Create one student event in the student-centric flow.

education_center.get_student

Governed write; may execute or return pending_approval.

Use event_remark for notes because remark is reserved for MCP governance.

education_center.update_student_event

write

Update one student event.

education_center.list_student_events

Governed write; may execute or return pending_approval.

event_id must belong to the student; use event_remark for notes.

education_center.delete_student_event

write

Delete one student event.

education_center.list_student_events

Governed write; may execute or return pending_approval.

Confirm event_id belongs to the student before deletion.

education_center.apply_payment_proof

write

Approve and apply one payment proof, creating or mapping a payment.

education_center.get_payment_proof

High-risk review write; preserve approval/audit metadata.

Confirm amount, invoice, student, and non-duplication before executing.

education_center.reject_payment_proof

write

Reject one payment proof without creating a payment.

education_center.get_payment_proof

High-risk review write; preserve approval/audit metadata.

Rejection reason should be clear for parent follow-up context.

education_center.approve_leave_request_no_makeup

write

Approve one leave request without scheduling a makeup lesson.

education_center.get_leave_request

High-risk review write affecting attendance.

Confirm no-makeup is the business decision; the agent should not default to it.

education_center.approve_leave_request_makeup

write

Approve one leave request and schedule a makeup date.

education_center.get_leave_request

High-risk review write affecting attendance and makeup.

Makeup fields must align with the existing makeup/reschedule contract.

education_center.reject_leave_request

write

Reject one leave request.

education_center.get_leave_request

High-risk review write; preserve approval/audit metadata.

Before rejection, confirm linked lesson and reason to avoid wrong parent notice.

education_center.create_student

write

Create one student through the canonical setup student flow.

education_center.list_students

Governed write; may execute or return pending_approval.

Search first to avoid duplicate student/guardian records.

education_center.update_student

write

Update one student through the canonical setup student flow.

education_center.get_student

Governed write; may execute or return pending_approval.

Confirm student_id and record_state before updating, especially archived records.

education_center.create_enrollment

write

Create one enrolment through the setup enrolment flow.

education_center.get_student + education_center.list_classes

Governed write; may execute or return pending_approval.

Check class capacity, duplicate enrolment, and billing setup before creating.

education_center.create_invoice

write

Create an invoice through the canonical invoice flow; is_draft controls draft state.

education_center.preview_invoice_default_lessons

Governed cashier write; preserve audit metadata.

lessons[] is required and explicit; do not rely on implicit defaults.

education_center.update_invoice

write

Update an invoice through the canonical invoice flow; lessons[] remains explicit.

education_center.get_invoice + education_center.preview_invoice_default_lessons

Governed cashier write; preserve audit metadata.

Compare existing payments/draft state before update to avoid overwriting payment data.

education_center.add_invoice_payment

write

Append payments to an existing invoice; canonical day-to-day payment path.

education_center.get_invoice

Governed cashier payment write.

Check outstanding amount and payment method before appending payment.

education_center.replace_invoice_payments

write

Replace the full invoice payment list for administrative correction.

education_center.get_invoice

High-risk full-overwrite cashier write.

Not the daily payment path; use only when full overwrite is intentional.

education_center.upsert_resource_item

write

Create or update a learning_resource or notice with body, source, and attachments.

education_center.get_resource or education_center.get_notice

Governed write; may execute or return pending_approval.

type must be correct; resource_id means update, omitted means create.

education_center.delete_resource_item

write

Archive a learning_resource or notice through the shared resource backend flow.

education_center.get_resource or education_center.get_notice

Governed write; delete/archive operations should preserve audit.

Confirm assignments, attachments, and read-receipt impact before deletion.

education_center.assign_resource

write

Assign a learning_resource or notice through the shared assignment flow; supports is_all_students.

education_center.get_resource / get_notice + education_center.list_students

Governed write; all-students bulk assignment is high-impact.

type, target student, or is_all_students must be explicit and unambiguous.

education_center.unassign_resource

write

Unassign a student-specific resource/notice assignment through the shared assignment flow.

education_center.get_resource or education_center.get_notice

Governed write; may execute or return pending_approval.

Assignment must come from read result; do not guess assignment id.