AcademyOcean MCP by usefulapi

List learners, courses, teams, progress, quiz results and certificates in AcademyOcean.

¿Debería usar esto?

Calidad y seguridad

A
Calidad de la descripción
96%
Integridad del esquema
85%
Calidad de los nombres
68%
Riesgo de envenenamiento
100%
Coincidencia de permisos
100%
Cumplimiento del protocolo
100%

Hallazgos (10)

  • LOWTool 'academyocean_get_learner_progress' name length outside 3-30 rangeen academyocean_get_learner_progress
  • LOWTool 'academyocean_learners_registered' name length outside 3-30 rangeen academyocean_learners_registered
  • LOWTool 'academyocean_learners_repeated_logins' name length outside 3-30 rangeen academyocean_learners_repeated_logins
  • LOWTool 'academyocean_learners_completed_course' name length outside 3-30 rangeen academyocean_learners_completed_course
  • LOWTool 'academyocean_course_progress_by_learners' name length outside 3-30 rangeen academyocean_course_progress_by_learners
  • LOWTool 'academyocean_learners_churn_at_content' name length outside 3-30 rangeen academyocean_learners_churn_at_content
  • LOWTool 'academyocean_learners_by_country' name length outside 3-30 rangeen academyocean_learners_by_country
  • LOWTool 'academyocean_learner_certificates' name length outside 3-30 rangeen academyocean_learner_certificates
  • LOWTool 'academyocean_learner_quiz_statistics' name length outside 3-30 rangeen academyocean_learner_quiz_statistics
  • LOWTool 'academyocean_check_learner_invites' name length outside 3-30 rangeen academyocean_check_learner_invites

Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.

Costo de contexto

~2,803Tokens (definiciones de herramientas)
~1.0 KBTamaño de respuesta típico
Impacto significativo en la atención (2.19% del contexto de 128k)

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-http

Qué puede hacer

Inventario de herramientas

Herramientas (17)

🟢 Solo lectura🟡 Escritura🔴 Eliminación⚪ Desconocido
🟢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

Califica este servidor

Evidencia

Observaciones recientes

verificadoversión no registrada17 herramientas