AcademyOcean MCP by usefulapi
List learners, courses, teams, progress, quiz results and certificates in AcademyOcean.
¿Debería usar esto?
Calidad y seguridad
Hallazgos (10)
- LOWen academyocean_get_learner_progress
- LOWen academyocean_learners_registered
- LOWen academyocean_learners_repeated_logins
- LOWen academyocean_learners_completed_course
- LOWen academyocean_course_progress_by_learners
- LOWen academyocean_learners_churn_at_content
- LOWen academyocean_learners_by_country
- LOWen academyocean_learner_certificates
- LOWen academyocean_learner_quiz_statistics
- LOWen academyocean_check_learner_invites
Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.
Costo de contexto
Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.
Instalar
Instalación con un clic
Agrega esto a tu archivo `claude_desktop_config.json`:
{
"mcpServers": {
"academyocean": {
"url": "https://academyocean.usefulapi.io/mcp"
}
}
}Puntos de conexión remotos
https://academyocean.usefulapi.io/mcpstreamable-httpQué puede hacer
Inventario de herramientas
Herramientas (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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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"
}Comunidad
Evidencia