Examples of what you can ask your agent
- “How many people enrolled in the onboarding course this month?”
- “Who’s halfway through the safety course? Show me their progress”
- “What percentage of students passed the final exam?”
- “Issue Laura Martínez’s certificate for her completed session”
- “Create a new customer service course, with an exam and certificate”
Read tools
learning_list_courses
Lists the courses for this business.
integer
default:"100"
Maximum number of courses to return.
_id, title, slug, description, published, isCertified, examApproveScore, created_at
learning_get_enrollment_stats
Gets enrollment statistics: counts by status (in_progress, exam, completed, certified, failed).
string
Course ID. If omitted, returns statistics for all courses.
string
Start date in ISO 8601 to filter by
startedAt. Optional.string
End date in ISO 8601 to filter by
startedAt. Optional.total_enrollments, by_status (object with counts per status), completion_rate, certification_rate
learning_get_course_progress
Gets progress per student for a specific course.
string
default:"''"
Course ID to query.
integer
default:"100"
Maximum number of progress records to return.
status, current module, completed modules, score, exam status, and identity (fullName, email).
learning_get_exam_results
Gets pass/fail rates and average exam scores.
string
Course ID. If omitted, returns results for all courses.
total_exams_started, total_exams_completed, pass_rate, average_score
learning_get_certificates_issued
Lists certificates issued by this business within a date range.
string
Start date in ISO 8601. Optional.
string
End date in ISO 8601. Optional.
integer
default:"100"
Maximum number of certificates to return.
session_id, user info (fullName, email), course info (title, slug), certificate details, and completedAt.
Write tools — Courses
learning_propose_create_course
Generates a preview of the course draft. Does not write to the database.
string
required
Course title.
string
required
Unique course slug in kebab-case (e.g.
"nippy-onboarding-2026").string
default:"''"
Course description.
float
Minimum score to pass the exam (e.g.
70.0). Optional.boolean
default:"false"
Whether the course grants a certificate upon completion.
learning_approve_create_course
Creates the course draft in the database. Same parameters as propose_create_course.
Response: {"_id": "...", "title": "Nippy Onboarding 2026", "status": "created"}
learning_propose_update_course
Generates a preview of changes to apply to an existing course. Does not write to the database. Only non-None fields are applied.
string
required
Course ID to update.
string
New course title.
string
New course description.
float
New minimum passing score.
boolean
Whether the course grants a certificate.
boolean
Whether the course is published and visible to students.
learning_approve_update_course
Applies changes to the course. Same parameters as propose_update_course.
Response: {"course_id": "664f1a2b3c4d5e6f7a8b9c0d", "updated": true}
Write tools — Certificates
learning_propose_issue_certificate
Generates a preview of issuing a certificate. Does not write to the database. Verifies the session exists, is completed, and belongs to the business.
string
required
ID of the completed course session.
learning_approve_issue_certificate
Forces certification of a completed session. Marks the session status as "certified".
string
required
ID of the course session to certify.
Technical details (advanced)
Technical details (advanced)
Schema references for the agent:
Important notes
- Courses must have
published: truebefore students can access them. Usepropose_update_courseandapprove_update_courseto publish. - Issuing certificates from MCP only updates the session status to
"certified". PDF generation and email delivery are handled bywhatsapp-platform.

