AcademyOcean MCP by usefulapi

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

사용해야 할까요

품질 및 안전성

A
설명 품질
96%
스키마 완전성
85%
이름 품질
68%
오염 위험
100%
권한 일치
100%
프로토콜 준수
100%

발견 사항 (10)

  • LOWTool 'academyocean_get_learner_progress' name length outside 3-30 rangeacademyocean_get_learner_progress에서
  • LOWTool 'academyocean_learners_registered' name length outside 3-30 rangeacademyocean_learners_registered에서
  • LOWTool 'academyocean_learners_repeated_logins' name length outside 3-30 rangeacademyocean_learners_repeated_logins에서
  • LOWTool 'academyocean_learners_completed_course' name length outside 3-30 rangeacademyocean_learners_completed_course에서
  • LOWTool 'academyocean_course_progress_by_learners' name length outside 3-30 rangeacademyocean_course_progress_by_learners에서
  • LOWTool 'academyocean_learners_churn_at_content' name length outside 3-30 rangeacademyocean_learners_churn_at_content에서
  • LOWTool 'academyocean_learners_by_country' name length outside 3-30 rangeacademyocean_learners_by_country에서
  • LOWTool 'academyocean_learner_certificates' name length outside 3-30 rangeacademyocean_learner_certificates에서
  • LOWTool 'academyocean_learner_quiz_statistics' name length outside 3-30 rangeacademyocean_learner_quiz_statistics에서
  • LOWTool 'academyocean_check_learner_invites' name length outside 3-30 rangeacademyocean_check_learner_invites에서

도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.

컨텍스트 비용

~2,803토큰 (도구 정의)
~1.0 KB일반적인 응답 크기
상당한 주의 영향 (128k 컨텍스트의 2.19%)

이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.

설치

원클릭 설치

`claude_desktop_config.json` 파일에 다음을 추가하세요:

{
  "mcpServers": {
    "academyocean": {
      "url": "https://academyocean.usefulapi.io/mcp"
    }
  }
}

원격 엔드포인트

https://academyocean.usefulapi.io/mcpstreamable-http

할 수 있는 일

도구 목록

도구 (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.

입력 스키마

{
  "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.

입력 스키마

{
  "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.

입력 스키마

{
  "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.

입력 스키마

{
  "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.

입력 스키마

{
  "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.

입력 스키마

{
  "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.

입력 스키마

{
  "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.

입력 스키마

{
  "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.

입력 스키마

{
  "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.

입력 스키마

{
  "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.

입력 스키마

{
  "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.

입력 스키마

{
  "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.

입력 스키마

{
  "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.

입력 스키마

{
  "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.

입력 스키마

{
  "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.

입력 스키마

{
  "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.

입력 스키마

{
  "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"
}

커뮤니티

이 서버 평가하기

증거

최근 관측

검증됨버전이 기록되지 않음도구 17개