AcademyOcean MCP by usefulapi

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

Sollte ich dies verwenden

Qualität und Sicherheit

A
Qualität der Beschreibung
96%
Vollständigkeit des Schemas
85%
Qualität der Benennung
68%
Risiko der Vergiftung
100%
Übereinstimmung der Berechtigungen
100%
Einhaltung des Protokolls
100%

Befunde (10)

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

Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.

Kontextkosten

~2,803Tokens (Tool-Definitionen)
~1.0 KBTypische Antwortgröße
Erhebliche Auswirkung auf die Aufmerksamkeit (2.19% von 128k Kontext)

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

Was es kann

Tool-Inventar

Tools (17)

🟢 Nur lesen🟡 Schreiben🔴 Löschen⚪ Unbekannt
🟢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

Diesen Server bewerten

Nachweis

Aktuelle Beobachtungen

verifiziertVersion nicht aufgezeichnet17 Tools