protogrid

Search / io.github.williamechevarria/hivelearn-mcp

HiveLearn

R1· needs a key

Read and author HiveLearn courses, events, quizzes, certificates, resources, leaderboards, tracks.

v0.4.0 · active · repository · website · descriptor JSON · versions

An agent can connect on its own if it already holds X_HIVELEARN_API_KEY, X_HIVELEARN_API_KEY.Remote endpoint behind a static API key or header. The registry never sees the value; the agent fills the placeholder.
Quality74needs work
Trust93of 100
Uptime, 30 days100%
Latency p50410 ms

Connect

8 clients · secrets stay placeholders
{
  "mcpServers": {
    "hivelearn-mcp": {
      "type": "http",
      "url": "https://mcp.hivelearn.app",
      "headers": {
        "X-Hivelearn-Api-Key": "${X_HIVELEARN_API_KEY}",
        "Authorization": "${X_HIVELEARN_API_KEY}"
      }
    }
  }
}
claude mcp add --transport http hivelearn-mcp https://mcp.hivelearn.app --header "X-Hivelearn-Api-Key: ${X_HIVELEARN_API_KEY}" --header "Authorization: ${X_HIVELEARN_API_KEY}"
[mcp_servers.hivelearn-mcp]
url = "https://mcp.hivelearn.app"
env_http_headers = { "X-Hivelearn-Api-Key" = "X_HIVELEARN_API_KEY", "Authorization" = "X_HIVELEARN_API_KEY" }
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "hivelearn-mcp": {
      "type": "remote",
      "url": "https://mcp.hivelearn.app",
      "enabled": true,
      "headers": {
        "X-Hivelearn-Api-Key": "{env:X_HIVELEARN_API_KEY}",
        "Authorization": "{env:X_HIVELEARN_API_KEY}"
      }
    }
  }
}
{
  "mcpServers": {
    "hivelearn-mcp": {
      "type": "http",
      "url": "https://mcp.hivelearn.app",
      "headers": {
        "X-Hivelearn-Api-Key": "${X_HIVELEARN_API_KEY}",
        "Authorization": "${X_HIVELEARN_API_KEY}"
      }
    }
  },
  "deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=hivelearn-mcp&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vbWNwLmhpdmVsZWFybi5hcHAiLCJoZWFkZXJzIjp7IlgtSGl2ZWxlYXJuLUFwaS1LZXkiOiIke1hfSElWRUxFQVJOX0FQSV9LRVl9IiwiQXV0aG9yaXphdGlvbiI6IiR7WF9ISVZFTEVBUk5fQVBJX0tFWX0ifX0%3D"
}
{
  "servers": {
    "hivelearn-mcp": {
      "type": "http",
      "url": "https://mcp.hivelearn.app",
      "headers": {
        "X-Hivelearn-Api-Key": "${X_HIVELEARN_API_KEY}",
        "Authorization": "${X_HIVELEARN_API_KEY}"
      }
    }
  }
}
{
  "mcpServers": {
    "hivelearn-mcp": {
      "httpUrl": "https://mcp.hivelearn.app",
      "headers": {
        "X-Hivelearn-Api-Key": "${X_HIVELEARN_API_KEY}",
        "Authorization": "${X_HIVELEARN_API_KEY}"
      }
    }
  }
}
extensions:
  "hivelearn-mcp":
    enabled: true
    name: "hivelearn-mcp"
    type: streamable_http
    uri: "https://mcp.hivelearn.app"
    headers:
      "X-Hivelearn-Api-Key": "${X_HIVELEARN_API_KEY}"
      "Authorization": "${X_HIVELEARN_API_KEY}"
    timeout: 300

Placeholders to fill from your own secret store: ${X_HIVELEARN_API_KEY}, ${X_HIVELEARN_API_KEY}. The registry never accepts secret values.

Quality 74 / 100needs work

protocol75 · weight 25
  • warn
    protocol.modernnewest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
  • n/a
    protocol.statelessonly applies to 2026-07-28 servers
  • pass
    protocol.transportstreamable HTTP
  • n/a
    protocol.list_ttlonly applies to 2026-07-28 servers
authorizationn/a · weight 15
  • n/a
    auth.prm, auth.as_metadata, auth.cimdno remote uses OAuth
  • n/a
    auth.secret_in_urlno templated URL
tool hygiene64 · weight 30
  • pass
    tools.descriptionsevery tool has a description
  • pass
    tools.description_lengthdescriptions are concise
  • pass
    tools.schemasevery tool has an object input schema
  • fail
    tools.annotationsno tool declares readOnlyHint or destructiveHint, so clients cannot tell safe calls from risky ones
  • fail
    tools.directory_hintsno tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: hivelearn_get_course_structure (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); hivelearn_get_community_me (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); hivelearn_list_posts (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); …
  • warn
    tools.token_costabout 19,267 tokens to load every tool
  • pass
    tools.api_dumptools are not a one-to-one API dump
stability100 · weight 15
  • pass
    stability.changes1 tool changes in 30 days
  • pass
    stability.rug_pullno tool changed its meaning under the same name
dependencies67 · weight 15
  • pass
    deps.known_vulnsno known advisory in 98 resolved packages
  • fail
    deps.mcp_sdk_version@modelcontextprotocol/sdk 1.30.1 has 1 known advisory (GHSA-6qxp-vccf-f47h); update @modelcontextprotocol/sdk to 1.31.0 or later
  • pass
    deps.resolvable[email protected] resolved: 98 packages

96 tools, about 19,267 tokens to load them all · tool set 963e31c93300 · tools last changed 2026-10-08 · checked 2026-10-19 21:10 UTC

Tool changes

  • hivelearn_generate_ai_coursechangeddescription, input schema
    before

    Generate a full course with AI and return a job_id to poll with hivelearn_get_ai_job. SPENDS the key creator's AI credits: 1 credit, or 5 for hybrid_chapters (paid plans only). Confirm with the user before calling. Requires the explicit generate:ai_courses scope, which admin:* does NOT include. source_type video_url imports a public YouTube/Vimeo/Loom link; every other type needs a file already uploaded to HiveLearn media storage (external URLs are rejected). Limited to 2 running and 10 per hour.

    after · 91% of words in common

    Generate a full course with AI and return a job_id to poll with hivelearn_get_ai_job. SPENDS the key creator's AI credits: 1 credit, or 5 for hybrid_chapters (paid plans only), plus 1 when include_recap_video is true in a video mode. Confirm with the user before calling. Requires the explicit generate:ai_courses scope, which admin:* does NOT include. source_type video_url imports a public YouTube/Vimeo/Loom link; every other type needs a file already uploaded to HiveLearn media storage (external URLs are rejected). Limited to 2 running and 10 per hour.

Full history: list_changes · trend: quality JSON.

Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.

Trust 93 / 100

provenance75
liveness100
freshness100
hygiene100

+repository +website +reachable +uptime-100% +updated-28d-ago

Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.

Dependencies

[email protected] npm97 dependencies, resolved · MCP SDK @modelcontextprotocol/sdk 1.30.1 · advisories checked 2026-10-19

advisoryseveritypackagefixed in
GHSA-6qxp-vccf-f47hMCP TypeScript SDK: OAuth client could send credentials to an authorization server chosen by the MCP serverhigh@modelcontextprotocol/[email protected]MCP SDK, directfixed in 1.31.0

Dependency graphs from deps.dev; advisories from OSV.dev, including the GitHub Advisory Database and the PyPI Advisory Database; all CC BY 4.0. The graph is what a clean install of this version resolves today; nothing was installed or run. How it is checked.

Endpoints

remoteauthreachableuptime 30dp50protocollast ok
https://mcp.hivelearn.app streamable-httpapi_key ${X_HIVELEARN_API_KEY}yes100%410 ms2025-11-252026-10-19
packageregistryversionruntimesecrets
hivelearn-mcpnpm0.1.2–HIVELEARN_API_KEY

Tools (96)

hivelearn_add_member_tagAssign a tag to a member. Idempotent: returns the existing assignment if already tagged.
hivelearn_add_track_courseAdd a course to a track at a given position. sort_order sets the order within the track. Set unlock_after_course_id to a prerequisite course that must be completed first (omit/null for no gate). is_required defaults to true.
hivelearn_create_certificateIssue a certificate of completion to a user for a course. Normally the platform auto-issues on course completion — use this tool for bulk backfill or manual awards.
hivelearn_create_courseCreate an empty course (no modules/lessons). Prefer hivelearn_create_course_outline when you already know the structure — it scaffolds course + modules + lesson placeholders in one call.
hivelearn_create_course_outlineScaffold an entire course in one call: course + modules + lesson placeholders (title/description only, no content yet). After this, loop over the returned lesson ids with hivelearn_update_lesson_content to fill in video/document URLs. This is the preferred first step when authoring a new course from a plan.
hivelearn_create_discussionStart a discussion as the API key's owner. It is published and visible to all members immediately, and notifies every member who has new-discussion notifications on.
hivelearn_create_discussion_replyReply to a discussion as the API key's owner. The reply is visible to all members immediately and notifies the discussion author. Fails with 409 if the discussion is locked. Set parent_reply_id to nest under another reply.
hivelearn_create_enrollmentEnroll a user in a course. Both user_id and course_id must belong to the authenticated community. Duplicate enrollments are rejected.
hivelearn_create_eventCreate a calendar event. Dates are ISO 8601 strings in UTC. For virtual events set meeting_url; for in-person set location. event_type controls which field the UI shows.
hivelearn_create_lessonAdd a lesson to a course. content_type must match content_url (e.g. youtube URL → content_type:youtube). Set module_id=null to leave the lesson unassigned; otherwise pass a module uuid from list_course_modules.
hivelearn_create_member_noteAdd a private admin note to a member. The author is the API key's creator.
hivelearn_create_member_tagCreate a member tag. Names are unique per community (409 on duplicate).
hivelearn_create_moduleAdd a module to a course. sort_order is optional — server auto-appends if omitted.
hivelearn_create_postPublish a new post to the community feed. Either content (markdown) or content_json (tiptap) is required. content_format must match which field you sent. category is optional — omit for default "general".
hivelearn_create_post_commentComment on a feed post as the API key's owner. The comment is visible to all members immediately, notifies the post author, and awards comment points. Set parent_comment_id to reply to another comment on the same post.
hivelearn_create_question_bankCreate an empty question bank. Add questions with hivelearn_create_question_bank_item.
hivelearn_create_question_bank_itemAdd a question to a bank. Supports all 6 types; supply the answer field for the type: options (multiple_choice / multi_select), correct_answer (true_false), accepted_answers (fill_in_blank), pairs (matching), items (ordering).
hivelearn_create_quizCreate a quiz attached to a lesson. passing_score is 0-100 (percent). Omit time_limit_seconds or max_attempts for unlimited.
hivelearn_create_quiz_questionAdd a question to a quiz. Supply the answer field for the type: multiple_choice → options [{text, is_correct}] with exactly one is_correct:true; multi_select → options with one or more correct; true_false → correct_answer (boolean); fill_in_blank → accepted_answers; matching → pairs [{left, right}]; ordering → items [{text}] in correct order (or with position 1..n).
hivelearn_create_resourceAdd a resource to the community library. Supply either resource_url (external link) or file_url (already-uploaded file) — at least one is required. price must be > 0 if set (omit for free). access_level defaults to public.
hivelearn_create_resource_folderCreate a resource-library folder. parent_folder_id (optional) must be a folder in the same community. Names must be unique among siblings (409). price must be > 0 if set.
hivelearn_create_trackCreate a learning track (curated course sequence). After this, add courses in order with hivelearn_add_track_course. is_published defaults to false — publish once the curriculum is set.
hivelearn_generate_ai_courseGenerate a full course with AI and return a job_id to poll with hivelearn_get_ai_job. SPENDS the key creator's AI credits: 1 credit, or 5 for hybrid_chapters (paid plans only), plus 1 when include_recap_video is true in a video mode. Confirm with the user before calling. Requires the explicit generate:ai_courses scope, which admin:* does NOT include. source_type video_url imports a public YouTube/Vimeo/Loom link; every other type needs a file already uploaded to HiveLearn media storage (external URLs are rejected). Limited to 2 running and 10 per hour.
hivelearn_get_ai_creditsAI credit balance for the API key's creator: monthly allowance remaining, purchased top-ups (never expire), total available, reset date, and whether the AI Course Builder is enabled for this community. Check this before generating. Needs scope read:ai.
hivelearn_get_ai_jobStatus and progress of one AI generation job. Poll after hivelearn_generate_ai_course. status is queued | processing | completed | failed | refunded; current_step shows the phase; course_id is the resulting course. A job that stays queued with started_at null was never picked up and is failed and refunded automatically within about an hour. Needs scope read:ai.
hivelearn_get_analytics_summaryCommunity analytics over a trailing window of `days` (default 30): total and new members, posts created, enrollments (total, new, completions, completion rate), published courses, and events created/held with RSVPs and check-ins. Definitions match the admin dashboard. Requires read:analytics.
hivelearn_get_assignment_submissionFetch one assignment submission: text/url, status, instructor feedback and reviewer. Requires read:courses.
hivelearn_get_certificateFetch one certificate by id. Includes verification_code and download URL.
hivelearn_get_community_meReturns the community the current API key is scoped to. Use this first whenever you need the community_id, owner, slug, or tier — the API key determines tenancy, you cannot switch community.
hivelearn_get_courseFetch one course with full metadata (description, instructor, tags, flags). For the lesson tree use hivelearn_get_course_structure instead.
hivelearn_get_course_analyticsPer-course analytics for the community (newest course first): enrollments, new enrollments and completions in the last `days`, completion rate, average progress, and average rating. Paginated. Requires read:analytics.
hivelearn_get_course_gradebookQuiz-score gradebook for a course: per-user quiz attempts, scores, pass/fail. Use for analytics or grading dashboards.
hivelearn_get_course_progressAggregate lesson-completion progress for a course across enrolled users. Returns per-user percent_complete, last_accessed_at, completed_lesson_count.
hivelearn_get_course_structureReturn a compact titles-only tree of the course: course → modules → lessons. Ideal for agents to plan reorders, spot empty lessons, or summarize a course. Does NOT include lesson body content.
hivelearn_get_discussionFetch one discussion by uuid, with author. Use list_discussion_replies for its replies.
hivelearn_get_enrollmentFetch one enrollment with status and progress.
hivelearn_get_eventFetch one event by id with full description and RSVP metadata.
hivelearn_get_leaderboardRanked member leaderboard for the community. period chooses the window: all_time (default), 30_day, or 7_day. Each entry carries rank and the points for the selected period, plus level info.
hivelearn_get_memberFetch a single member by profile uuid. Returns the same fields as list_members for one row.
hivelearn_get_member_healthGet a member's health score (engagement, activity, risk level). 404 until the daily job has scored them.
hivelearn_get_member_pointsFull points breakdown for one member (by auth user id) in the community: total, per-category (posts/comments/events/courses/engagement), period totals, level. 404 if the member has no points record here.
hivelearn_get_postFetch one post with full content. Reply thread is NOT included — this is the post itself only.
hivelearn_get_question_bankFetch one question bank with its item_count. Items are listed separately via hivelearn_list_question_bank_items.
hivelearn_get_quizFetch one quiz with metadata (passing_score, time_limit, max_attempts). Questions are NOT included — use hivelearn_list_quiz_questions.
hivelearn_get_resourceFetch one published resource by id, with joined author. 404 if unpublished or in another community.
hivelearn_get_resource_folderFetch one resource folder by id, with its resource_count. 404 if it belongs to another community.
hivelearn_get_trackFetch one learning track by id with full metadata. For its ordered curriculum use hivelearn_list_track_courses.
hivelearn_get_track_progressPer-member progress through a learning track: enrolled_at, started_at, completed_at, total_courses, completed counts. Use for cohort/track analytics.
hivelearn_grade_assignment_submissionReview an assignment submission: sets status (reviewed, approved, revision_requested, submitted) and instructor feedback, recorded as reviewed by the API key's creator. This changes a member's record and the student will see it. revision_requested requires feedback. Requires write:grades.
hivelearn_list_ai_jobsList the key creator's AI course generation jobs in this community, newest first, with status and progress. Needs scope read:ai.
hivelearn_list_assignment_submissionsList assignment submissions in the community, newest first, with student profile and lesson title. Filter by course_id, lesson_id or status. Requires read:courses.
hivelearn_list_certificatesList issued certificates, optionally scoped to one user or one course. Returns id, user, course, verification_code, status, issued_at.
hivelearn_list_course_lessonsList lessons of a course, optionally filtered to one module. Use hivelearn_get_course_structure for a nested tree.
hivelearn_list_course_modulesList modules (sections) of a course, ordered by sort_order. Modules group lessons; a course has 1..N modules.
hivelearn_list_coursesList courses in the authenticated community. status=published returns only courses visible to learners. Returns id, title, visibility, is_published, thumbnail_url, timestamps.
hivelearn_list_discussion_repliesList replies in a discussion, oldest first. Returns id, content, parent_reply_id, is_accepted_answer, author, likes_count.
hivelearn_list_discussionsList published discussions (forum threads), pinned first then newest. Returns id, title, content, category, tags, reply/like counts, is_locked, author.
hivelearn_list_enrollmentsList course enrollments, optionally scoped to one course or one user. Returns enrollment_id, user_id, course_id, status, progress %, enrolled_at, completed_at.
hivelearn_list_event_attendeesList an event's attendees with check-in status and basic profile. source='rsvp' (default) for free RSVPs, 'ticket' for paid ticket purchases. Requires scope read:events.
hivelearn_list_eventsList community events. Use upcoming=true for future events only (recommended for calendar UI). Returns id, title, start/end dates, event_type, location/meeting_url, attendee counts.
hivelearn_list_event_waitlistList an event's waitlist in queue order (oldest first) with position and basic profile. Requires scope read:events.
hivelearn_list_member_notesList private admin notes on a member, newest first.
hivelearn_list_membersList members of the authenticated community. Returns id (profile uuid), role, email, display_name, avatar_url, and joined_at. Filter by role to find admins/owners.
hivelearn_list_member_tag_assignmentsList the tags assigned to a member.
hivelearn_list_member_tagsList the community's member tags (id, name, color).
hivelearn_list_post_commentsList comments on a feed post, oldest first. Returns id, content, parent_comment_id, author, likes_count, timestamps. 404 if the post is not in this community.
hivelearn_list_postsList community feed posts, newest first. Use category to filter (e.g. "announcements"). Returns id, title, content, category, author, reply counts, timestamps.
hivelearn_list_question_bank_itemsList the questions in a bank, WITH the answer key (is_correct, pairs/items, explanation). Authoring view for admins.
hivelearn_list_question_banksList question banks (reusable question pools that bank-draw quizzes sample from), newest first.
hivelearn_list_quiz_attemptsList attempts for one quiz: learner, score (0-100), points, passed, started_at and completed_at (null = in progress). Never includes answers or answer keys. Requires read:courses.
hivelearn_list_quiz_questionsList all questions for a quiz, ordered by sort_order. Each question carries its options and correct answer.
hivelearn_list_quizzesList quizzes, optionally scoped to a course or a specific lesson. Each quiz belongs to one lesson.
hivelearn_list_resource_foldersList resource-library folders in the authenticated community, ordered by position then name. Folders nest via parent_folder_id; pass parent_folder_id="root" for top-level only, or a folder id for its children. Each folder includes resource_count.
hivelearn_list_resourcesList published resources in the authenticated community, newest first. Filter by folder_id, resource_type, or access_level. Returns id, title, resource_type, resource_url/file_url, access_level, counts (downloads, views, favorites), author. The internal storage key is never exposed.
hivelearn_list_segment_membersList members matching a segment's rules, evaluated server-side the same way the admin CRM does.
hivelearn_list_segmentsList saved member segments with their filter rules.
hivelearn_list_track_coursesReturn the ordered curriculum of a track: its courses with sort_order, is_required, and unlock_after_course_id (prerequisite gating).
hivelearn_list_tracksList published learning tracks (curated course sequences) in the community, newest first. Returns id, title, description, difficulty_level, estimated_hours, flags.
hivelearn_publish_coursePublish a course: sets is_published=true after validating that every lesson has content_url. Returns error if any lesson is still empty — run hivelearn_get_course_structure to diagnose.
hivelearn_reorder_module_lessonsSet the full lesson order within a module in one atomic call. Pass the desired final order as lesson_ids — every lesson currently in the module must appear exactly once.
hivelearn_update_certificateChange a certificate status. Use "revoked" to invalidate (verify endpoint will reject).
hivelearn_update_courseEdit course metadata. Use hivelearn_publish_course instead of setting is_published=true directly — publish runs validation.
hivelearn_update_eventEdit an event. Set is_cancelled=true to cancel (preserves history). Set max_attendees=null to lift the cap.
hivelearn_update_lessonEdit lesson metadata or move it between modules. To edit ONLY the content body use hivelearn_update_lesson_content (narrower scope, safer).
hivelearn_update_lesson_contentReplace just the content of a lesson — URL, content_type, and optional description/duration/thumbnail. Narrower than update_lesson; safe for bulk agent writes. Does NOT change title, sort_order, or module assignment.
hivelearn_update_memberChange a member's role or ban status. role accepts member/moderator/admin (owner cannot be assigned via the API). Set is_banned=true to ban, false to lift. At least one field required.
hivelearn_update_moduleRename or reorder a module. To reorder lessons within a module use hivelearn_reorder_module_lessons.
hivelearn_update_postEdit an existing post. Only include fields you want to change. Use is_pinned to pin/unpin a post from the top of the feed.
hivelearn_update_question_bankRename a question bank or change its description.
hivelearn_update_question_bank_itemEdit a bank question. Changing question_type or any answer field rebuilds the answer key, so resupply the answer field for the (new) type.
hivelearn_update_quizEdit quiz settings. Cannot move a quiz to a different lesson — create a new one instead.
hivelearn_update_quiz_questionEdit a question. Sending question_type or any answer field (options, correct_answer, accepted_answers, pairs, items) rebuilds the answer key, so supply the full answer for the effective type.
hivelearn_update_resourceEdit a resource. Only include fields you want to change. Set is_featured to surface it; set is_published=false to unlist.
hivelearn_update_resource_folderUpdate a resource folder (rename, recolor, reorder, reprice, or move). parent_folder_id=null moves it to top level; moving a folder into itself or a descendant is rejected. Only supplied fields change.
hivelearn_update_trackEdit a learning track. Only include fields you want to change. Set is_published=true to make it live.
hivelearn_verify_certificatePublic verification lookup by verification_code. Returns { valid, certificate } if found and active. Use this when a third party presents a certificate code.

Schemas: list_tools.

Similar MCP servers

Official server.json
{
  "name": "io.github.williamechevarria/hivelearn-mcp",
  "icons": [
    {
      "src": "https://hivelearn.app/hivelearn-icon.png",
      "sizes": [
        "any"
      ],
      "mimeType": "image/png"
    }
  ],
  "title": "HiveLearn",
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
  "remotes": [
    {
      "url": "https://mcp.hivelearn.app",
      "type": "streamable-http",
      "headers": [
        {
          "name": "X-Hivelearn-Api-Key",
          "isSecret": true,
          "isRequired": true,
          "description": "Your HiveLearn API key. Create one at Admin → API Keys in your HiveLearn community."
        }
      ]
    }
  ],
  "version": "0.4.0",
  "packages": [
    {
      "version": "0.1.2",
      "transport": {
        "type": "stdio"
      },
      "identifier": "hivelearn-mcp",
      "registryType": "npm",
      "registryBaseUrl": "https://registry.npmjs.org",
      "environmentVariables": [
        {
          "name": "HIVELEARN_API_KEY",
          "isSecret": true,
          "isRequired": true,
          "description": "Your HiveLearn API key (hl_live_...). Create one at Admin → API Keys in your HiveLearn community."
        }
      ]
    }
  ],
  "repository": {
    "url": "https://github.com/hivelearn/community-hub",
    "source": "github",
    "subfolder": "tools/hivelearn-mcp"
  },
  "websiteUrl": "https://hivelearn.app/mcp",
  "description": "Read and author HiveLearn courses, events, quizzes, certificates, resources, leaderboards, tracks."
}