AcademyOcean MCP by usefulapi
List learners, courses, teams, progress, quiz results and certificates in AcademyOcean.
Sollte ich dies verwenden
Qualität und Sicherheit
Befunde (10)
- LOWin academyocean_get_learner_progress
- LOWin academyocean_learners_registered
- LOWin academyocean_learners_repeated_logins
- LOWin academyocean_learners_completed_course
- LOWin academyocean_course_progress_by_learners
- LOWin academyocean_learners_churn_at_content
- LOWin academyocean_learners_by_country
- LOWin academyocean_learner_certificates
- LOWin academyocean_learner_quiz_statistics
- LOWin academyocean_check_learner_invites
Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.
Kontextkosten
Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.
Installieren
Installation mit einem Klick
Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:
{
"mcpServers": {
"academyocean": {
"url": "https://academyocean.usefulapi.io/mcp"
}
}
}Remote-Endpunkte
https://academyocean.usefulapi.io/mcpstreamable-httpWas es kann
Tool-Inventar
Tools (17)
🟢academyocean_list_academies
List the academies in the account with their learner counts, publish state and custom domain. Good first call to find an academy id. Action: academies.
Eingabe-Schema
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢academyocean_list_courses
List the courses in the academy with their id, slug, description, group flag and SCORM flag. Use the id in the course tools. Action: courses.
Eingabe-Schema
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢academyocean_list_teams(include_course_assignments)
List the teams in the academy. Set include_course_assignments to add the courses each team is assigned. Action: getTeams.
Eingabe-Schema
{
"type": "object",
"properties": {
"include_course_assignments": {
"description": "Also return the courses assigned to each team.",
"type": "boolean"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢academyocean_list_learners(email, with_academy, with_teams, limit)
List learners registered in the academy with their score, lesson counts, last login and country. Filter by one email. Action: learners.
Eingabe-Schema
{
"type": "object",
"properties": {
"email": {
"description": "Return only the learner with this email.",
"type": "string",
"format": "email",
"pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
},
"with_academy": {
"description": "Include the academy id and name.",
"type": "boolean"
},
"with_teams": {
"description": "Include the team ids and names.",
"type": "boolean"
},
"limit": {
"description": "Maximum number of learners to return.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢academyocean_get_learner_progress(email, course_type, with_academy, with_teams, only_displayed_courses)
Return one learner's progress in every course or group, with a breakdown of each lesson and quiz (passed, score, times). Action: courseProgress.
Eingabe-Schema
{
"type": "object",
"properties": {
"email": {
"type": "string",
"format": "email",
"pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
"description": "Learner email address."
},
"course_type": {
"description": "Which courses to include (default all).",
"type": "string",
"enum": [
"all",
"published",
"unpublished"
]
},
"with_academy": {
"description": "Include the academy id and name.",
"type": "boolean"
},
"with_teams": {
"description": "Include the team ids and names.",
"type": "boolean"
},
"only_displayed_courses": {
"description": "Only courses shown to the learner (published and assigned to their team).",
"type": "boolean"
}
},
"required": [
"email"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢academyocean_learners_registered(date, operator, start, end)
List learners who registered on one date (with an operator such as >=) or within a start and end date range. Dates are UTC. Action: learnersRegisteredAt.
Eingabe-Schema
{
"type": "object",
"properties": {
"date": {
"description": "Date to match, for example '2026-01-25 00:00:00'. Use with operator.",
"type": "string"
},
"operator": {
"description": "Comparison for date (default =).",
"type": "string",
"enum": [
"=",
">",
"<",
">=",
"<=",
"<>"
]
},
"start": {
"description": "Range start (UTC). Use together with end.",
"type": "string"
},
"end": {
"description": "Range end (UTC). Use together with start.",
"type": "string"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢academyocean_learners_repeated_logins(start, end)
List learners who logged in more than once, optionally within a date range (UTC). Action: learnersRepeatedLogIns.
Eingabe-Schema
{
"type": "object",
"properties": {
"start": {
"description": "Login range start (UTC). Use together with end.",
"type": "string"
},
"end": {
"description": "Login range end (UTC). Use together with start.",
"type": "string"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢academyocean_learners_completed_course(course_id)
List learners who completed one course. Use the course id or URL slug from the course list. Action: learnersCourseComplete.
Eingabe-Schema
{
"type": "object",
"properties": {
"course_id": {
"type": "string",
"minLength": 1,
"description": "Encoded course id, or the course URL slug."
}
},
"required": [
"course_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢academyocean_course_progress_by_learners(course_id, course_slug, page, amount, show_not_started_learners, ...)
Return every learner's progress in one course, page by page. Give course_id or course_slug (course_id wins if both are set). Action: learnersProgressByCourse.
Eingabe-Schema
{
"type": "object",
"properties": {
"course_id": {
"description": "Course id from the course settings ('API, Course ID').",
"type": "string"
},
"course_slug": {
"description": "Course URL slug.",
"type": "string"
},
"page": {
"description": "Page number (default 1).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"amount": {
"description": "Learners per page.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"show_not_started_learners": {
"description": "Include learners who have not started the course.",
"type": "boolean"
},
"only_assigned_learners": {
"description": "Only learners whose team has this course assigned.",
"type": "boolean"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢academyocean_learners_by_score(score, operator)
List learners whose score matches a value, for example >= 80. Action: learnersWithScore.
Eingabe-Schema
{
"type": "object",
"properties": {
"score": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991,
"description": "Score value to compare."
},
"operator": {
"description": "Comparison (default =).",
"type": "string",
"enum": [
"=",
">",
"<",
">=",
"<=",
"<>"
]
}
},
"required": [
"score"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢academyocean_passive_learners
List learners who registered but never opened a lesson. Action: passiveLearners.
Eingabe-Schema
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢academyocean_learners_churn_at_content(course_id, content_id)
List learners who stopped progressing at one content item (lesson or quiz) of a course. Action: learnersChurnAtContent.
Eingabe-Schema
{
"type": "object",
"properties": {
"course_id": {
"type": "string",
"minLength": 1,
"description": "Encoded course id, or the course URL slug."
},
"content_id": {
"type": "string",
"minLength": 1,
"description": "Encoded content id."
}
},
"required": [
"course_id",
"content_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢academyocean_learners_by_country(country_iso_code)
List learners from one country by its ISO code, for example NL. Action: learnersFromCountry.
Eingabe-Schema
{
"type": "object",
"properties": {
"country_iso_code": {
"type": "string",
"pattern": "^[A-Za-z]{2}$",
"description": "2-letter ISO country code, for example US or NL."
}
},
"required": [
"country_iso_code"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢academyocean_learner_certificates(email)
List the certificates issued to one learner, with course name, issue date and PDF or image links. Action: certificates.
Eingabe-Schema
{
"type": "object",
"properties": {
"email": {
"type": "string",
"format": "email",
"pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
"description": "Learner email address."
}
},
"required": [
"email"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢academyocean_learner_variables(records)
Return custom variable values for learners. Pass an object keyed by learner email, each value a list of variable names. System fields are not returned. Action: getLearnerVariable.
Eingabe-Schema
{
"type": "object",
"properties": {
"records": {
"type": "object",
"propertyNames": {
"type": "string",
"format": "email",
"pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
},
"additionalProperties": {
"minItems": 1,
"type": "array",
"items": {
"type": "string"
}
},
"description": "Object keyed by learner email; each value is an array of ids or variable names."
}
},
"required": [
"records"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢academyocean_learner_quiz_statistics(records)
Return detailed quiz attempts for learners. Pass an object keyed by learner email, each value a list of encoded quiz ids. Includes scores, timing and per-question answers. Action: getLearnersQuizStatistic.
Eingabe-Schema
{
"type": "object",
"properties": {
"records": {
"type": "object",
"propertyNames": {
"type": "string",
"format": "email",
"pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
},
"additionalProperties": {
"minItems": 1,
"type": "array",
"items": {
"type": "string"
}
},
"description": "Object keyed by learner email; each value is an array of ids or variable names."
}
},
"required": [
"records"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢academyocean_check_learner_invites(emails)
Check whether invitations exist for some emails, and whether each one has been used. Returns one entry per email. Action: checkLearnerInvite.
Eingabe-Schema
{
"type": "object",
"properties": {
"emails": {
"minItems": 1,
"type": "array",
"items": {
"type": "string",
"format": "email",
"pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
"description": "Learner email address."
},
"description": "Learner emails to check."
}
},
"required": [
"emails"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Community
Nachweis