HiveLearn

io.github.williamechevarriaPublished by GitHub account williamechevarriav0.4.0Updated Oct 25, 2026

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

Overview

AI-generated overview

HiveLearn lets an assistant read and author community content — courses, lessons, quizzes, events, posts, members and certificates — in one HiveLearn community.

What you can do
Read community info and members, and change member roles or ban status. List, create and edit feed posts, including pinning. List, create and edit events, including cancelling and attendee caps. Build courses: modules, lessons, outlines, lesson content, ordering and publishing. Manage quizzes and their questions, plus enrollments, progress, gradebooks and certificates.
When to use it
Useful when an assistant should help run a HiveLearn community: drafting and publishing course structures, filling lesson content, writing quizzes, or checking enrollments, progress and certificates. Also handy for community admin tasks such as posts, events and member roles.
Requirements
A HiveLearn API key (hl_live_...), created under Admin → API Keys in your community, passed as the HIVELEARN_API_KEY environment variable for the local npm package or as the X-Hivelearn-Api-Key header for the remote endpoint. The key fixes the community; it cannot be switched.
Before you install
The key is scoped to one community and grants whatever its role allows. Many tools write: creating and editing posts, events, courses, lessons, quizzes and enrollments, changing member roles and banning members, and publishing courses. Publishing validates that every lesson has content. Treat bulk edits and role changes with care.

Installation

In SourceWeft

  1. Open HiveLearn in the dashboard and add it to a workspace.
  2. Connect X-Hivelearn-Api-Key credentials. They are stored privately and never shown on public pages.
  3. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.github.williamechevarria%2Fhivelearn-mcp/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "hivelearn": {
      "type": "http",
      "url": "https://mcp.hivelearn.app/",
      "headers": {
        "X-Hivelearn-Api-Key": "<YOUR_API_KEY>"
      }
    }
  }
}

README

This repository has no README.

Tools

96

hivelearn_get_community_me

Returns 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.

Takes no parameters.

hivelearn_list_members

List 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.

Parametersrolelimitoffset

hivelearn_get_member

Fetch a single member by profile uuid. Returns the same fields as list_members for one row.

Parametersidrequired

hivelearn_update_member

Change 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.

Parametersidrequiredroleis_banned

hivelearn_list_posts

List community feed posts, newest first. Use category to filter (e.g. "announcements"). Returns id, title, content, category, author, reply counts, timestamps.

Parameterslimitoffsetcategory

hivelearn_get_post

Fetch one post with full content. Reply thread is NOT included — this is the post itself only.

Parametersidrequired

hivelearn_create_post

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

Parameterscontentcategorycontent_jsoncontent_format

hivelearn_update_post

Edit an existing post. Only include fields you want to change. Use is_pinned to pin/unpin a post from the top of the feed.

Parametersidrequiredcontentcategoryis_pinnedcontent_jsoncontent_format

hivelearn_list_events

List 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.

Parameterslimitoffsetupcoming

hivelearn_get_event

Fetch one event by id with full description and RSVP metadata.

Parametersidrequired

hivelearn_create_event

Create 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.

Parameterstagstitlerequiredend_daterequiredlocationtimezoneevent_typerequiredstart_daterequireddescriptionmeeting_urlmax_attendeescover_image_urldescription_json+1 more

hivelearn_update_event

Edit an event. Set is_cancelled=true to cancel (preserves history). Set max_attendees=null to lift the cap.

Parametersidrequiredtagstitleend_datelocationtimezoneevent_typestart_datedescriptionmeeting_urlis_cancelledmax_attendees+3 more

hivelearn_list_courses

List courses in the authenticated community. status=published returns only courses visible to learners. Returns id, title, visibility, is_published, thumbnail_url, timestamps.

Parameterslimitoffsetstatus

hivelearn_get_course

Fetch one course with full metadata (description, instructor, tags, flags). For the lesson tree use hivelearn_get_course_structure instead.

Parametersidrequired

hivelearn_create_course

Create 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.

Parameterstagstitlerequireddifficultyvisibilitydescriptionthumbnail_urlinstructor_namedescription_jsondescription_formatinstructor_avatar_url

hivelearn_update_course

Edit course metadata. Use hivelearn_publish_course instead of setting is_published=true directly — publish runs validation.

Parametersidrequiredtagstitleis_pinneddifficultyvisibilitydescriptionis_featuredis_publishedthumbnail_urlinstructor_namedescription_json+2 more

hivelearn_list_course_modules

List modules (sections) of a course, ordered by sort_order. Modules group lessons; a course has 1..N modules.

Parameterscourse_idrequired

hivelearn_create_module

Add a module to a course. sort_order is optional — server auto-appends if omitted.

Parameterstitlerequiredcourse_idrequiredsort_order

hivelearn_update_module

Rename or reorder a module. To reorder lessons within a module use hivelearn_reorder_module_lessons.

Parametersidrequiredtitlesort_order

hivelearn_list_course_lessons

List lessons of a course, optionally filtered to one module. Use hivelearn_get_course_structure for a nested tree.

Parameterscourse_idrequiredmodule_id

hivelearn_create_lesson

Add 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.

Parameterstitlerequiredcourse_idrequiredmodule_idis_previewsort_ordercontent_urlrequireddescriptioncontent_jsoncontent_typeis_publishedthumbnail_urlcontent_format+1 more

hivelearn_update_lesson

Edit lesson metadata or move it between modules. To edit ONLY the content body use hivelearn_update_lesson_content (narrower scope, safer).

Parametersidrequiredtitlemodule_idis_previewsort_ordercontent_urldescriptioncontent_jsoncontent_typeis_publishedthumbnail_urlcontent_format+1 more

hivelearn_create_course_outline

Scaffold 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.

Parameterstagstitlerequiredmodulesrequireddifficultyvisibilitydescriptionthumbnail_urlinstructor_namedescription_jsondescription_formatinstructor_avatar_url

hivelearn_update_lesson_content

Replace 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.

Parametersidrequiredcontent_urldescriptioncontent_jsoncontent_typethumbnail_urlcontent_formatduration_seconds

hivelearn_reorder_module_lessons

Set 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.

Parametersmodule_idrequiredlesson_idsrequired

hivelearn_publish_course

Publish 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.

Parametersidrequired

hivelearn_get_course_structure

Return 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.

Parametersidrequired

hivelearn_list_quizzes

List quizzes, optionally scoped to a course or a specific lesson. Each quiz belongs to one lesson.

Parameterslimitoffsetcourse_idlesson_id

hivelearn_get_quiz

Fetch one quiz with metadata (passing_score, time_limit, max_attempts). Questions are NOT included — use hivelearn_list_quiz_questions.

Parametersidrequired

hivelearn_create_quiz

Create a quiz attached to a lesson. passing_score is 0-100 (percent). Omit time_limit_seconds or max_attempts for unlimited.

Parameterstitlerequiredlesson_idrequireddescriptionmax_attemptspassing_scoreshuffle_questionstime_limit_seconds

hivelearn_update_quiz

Edit quiz settings. Cannot move a quiz to a different lesson — create a new one instead.

Parametersidrequiredtitledescriptionmax_attemptspassing_scoreshuffle_questionstime_limit_seconds

hivelearn_list_quiz_questions

List all questions for a quiz, ordered by sort_order. Each question carries its options and correct answer.

Parametersquiz_idrequired

hivelearn_create_quiz_question

Add 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).

Parametersitemspairspointsoptionsquiz_idrequiredsort_orderexplanationquestion_textrequiredquestion_typerequiredcorrect_answeraccepted_answers

hivelearn_update_quiz_question

Edit 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.

Parametersidrequireditemspairspointsoptionssort_orderexplanationquestion_textquestion_typecorrect_answeraccepted_answers

hivelearn_list_enrollments

List course enrollments, optionally scoped to one course or one user. Returns enrollment_id, user_id, course_id, status, progress %, enrolled_at, completed_at.

Parameterslimitoffsetuser_idcourse_id

hivelearn_get_enrollment

Fetch one enrollment with status and progress.

Parametersidrequired

hivelearn_create_enrollment

Enroll a user in a course. Both user_id and course_id must belong to the authenticated community. Duplicate enrollments are rejected.

Parametersuser_idrequiredcourse_idrequired

hivelearn_get_course_progress

Aggregate lesson-completion progress for a course across enrolled users. Returns per-user percent_complete, last_accessed_at, completed_lesson_count.

Parameterslimitoffsetuser_idcourse_idrequired

hivelearn_get_course_gradebook

Quiz-score gradebook for a course: per-user quiz attempts, scores, pass/fail. Use for analytics or grading dashboards.

Parameterslimitoffsetuser_idcourse_idrequired

hivelearn_list_certificates

List issued certificates, optionally scoped to one user or one course. Returns id, user, course, verification_code, status, issued_at.

Parameterslimitoffsetuser_idcourse_id

hivelearn_get_certificate

Fetch one certificate by id. Includes verification_code and download URL.

Parametersidrequired

hivelearn_create_certificate

Issue 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.

Parametersuser_idrequiredcourse_idrequiredexpires_atfinal_scorecompletion_dateinstructor_name

hivelearn_update_certificate

Change a certificate status. Use "revoked" to invalidate (verify endpoint will reject).

Parametersidrequiredstatusrequired

hivelearn_verify_certificate

Public verification lookup by verification_code. Returns { valid, certificate } if found and active. Use this when a third party presents a certificate code.

Parameterscoderequired

hivelearn_list_resources

List 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.

Parameterslimitoffsetfolder_idaccess_levelresource_type

hivelearn_get_resource

Fetch one published resource by id, with joined author. 404 if unpublished or in another community.

Parametersidrequired

hivelearn_create_resource

Add 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.

Parameterstagspricetitlerequiredfile_urlfolder_idis_premiumdescriptionaccess_levelis_publishedresource_urlresource_typecover_image_url

hivelearn_update_resource

Edit a resource. Only include fields you want to change. Set is_featured to surface it; set is_published=false to unlist.

Parametersidrequiredtagspricetitlefile_urlfolder_idis_premiumdescriptionis_featuredaccess_levelis_publishedresource_url+2 more

hivelearn_get_leaderboard

Ranked 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.

Parameterslimitoffsetperiod

hivelearn_get_member_points

Full 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.

Parametersuser_idrequired

hivelearn_list_tracks

List published learning tracks (curated course sequences) in the community, newest first. Returns id, title, description, difficulty_level, estimated_hours, flags.

Parameterslimitoffset

hivelearn_get_track

Fetch one learning track by id with full metadata. For its ordered curriculum use hivelearn_list_track_courses.

Parametersidrequired

hivelearn_list_track_courses

Return the ordered curriculum of a track: its courses with sort_order, is_required, and unlock_after_course_id (prerequisite gating).

Parameterstrack_idrequired

hivelearn_get_track_progress

Per-member progress through a learning track: enrolled_at, started_at, completed_at, total_courses, completed counts. Use for cohort/track analytics.

Parameterslimitoffsettrack_idrequired

hivelearn_create_track

Create 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.

Parameterstitlerequireddescriptionis_featuredis_publishedthumbnail_urlestimated_hoursdifficulty_level

hivelearn_update_track

Edit a learning track. Only include fields you want to change. Set is_published=true to make it live.

Parametersidrequiredtitledescriptionis_featuredis_publishedthumbnail_urlestimated_hoursdifficulty_level

hivelearn_add_track_course

Add 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.

Parameterstrack_idrequiredcourse_idrequiredsort_orderrequiredis_requiredunlock_after_course_id

hivelearn_get_ai_credits

AI 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.

Takes no parameters.

hivelearn_list_ai_jobs

List the key creator's AI course generation jobs in this community, newest first, with status and progress. Needs scope read:ai.

Parameterslimitoffset

hivelearn_get_ai_job

Status 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.

Parametersjob_idrequired

hivelearn_generate_ai_course

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.

Parameterssource_urlrequiredvideo_modecontext_urlsource_typerequiredstyle_presetcontent_depthbrand_intensityinclude_quizzessource_filenameinclude_intro_videoinclude_recap_videoquiz_questions_per_chapter

hivelearn_list_event_attendees

List 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.

Parameterslimitoffsetsourceevent_idrequiredrsvp_statuspayment_status

hivelearn_list_event_waitlist

List an event's waitlist in queue order (oldest first) with position and basic profile. Requires scope read:events.

Parameterslimitoffsetevent_idrequired

hivelearn_list_post_comments

List 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.

Parameterslimitoffsetpost_idrequired

hivelearn_create_post_comment

Comment 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.

Parameterscontentpost_idrequiredcontent_jsoncontent_formatparent_comment_id

hivelearn_list_discussions

List published discussions (forum threads), pinned first then newest. Returns id, title, content, category, tags, reply/like counts, is_locked, author.

Parameterslimitoffsetcategory

hivelearn_get_discussion

Fetch one discussion by uuid, with author. Use list_discussion_replies for its replies.

Parametersidrequired

hivelearn_create_discussion

Start 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.

Parameterstagstitlerequiredcontentcategorycontent_jsoncontent_format

hivelearn_list_discussion_replies

List replies in a discussion, oldest first. Returns id, content, parent_reply_id, is_accepted_answer, author, likes_count.

Parametersidrequiredlimitoffset

hivelearn_create_discussion_reply

Reply 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.

Parametersidrequiredcontentcontent_jsoncontent_formatparent_reply_id

hivelearn_get_analytics_summary

Community 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.

Parametersdays

hivelearn_get_course_analytics

Per-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.

Parametersdayslimitoffset

hivelearn_list_quiz_attempts

List 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.

Parameterslimitoffsetquiz_idrequireduser_id

hivelearn_list_assignment_submissions

List assignment submissions in the community, newest first, with student profile and lesson title. Filter by course_id, lesson_id or status. Requires read:courses.

Parameterslimitoffsetstatuscourse_idlesson_id

hivelearn_get_assignment_submission

Fetch one assignment submission: text/url, status, instructor feedback and reviewer. Requires read:courses.

Parametersidrequired

hivelearn_grade_assignment_submission

Review 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.

Parametersidrequiredstatusrequiredfeedback

hivelearn_list_resource_folders

List 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.

Parameterslimitoffsetparent_folder_id

hivelearn_get_resource_folder

Fetch one resource folder by id, with its resource_count. 404 if it belongs to another community.

Parametersidrequired

hivelearn_create_resource_folder

Create 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.

Parametersiconnamerequiredcolorpricepositiondescriptionparent_folder_id

hivelearn_update_resource_folder

Update 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.

Parametersidrequirediconnamecolorpricepositiondescriptionparent_folder_id

hivelearn_list_question_banks

List question banks (reusable question pools that bank-draw quizzes sample from), newest first.

Parameterslimitoffset

hivelearn_get_question_bank

Fetch one question bank with its item_count. Items are listed separately via hivelearn_list_question_bank_items.

Parametersidrequired

hivelearn_create_question_bank

Create an empty question bank. Add questions with hivelearn_create_question_bank_item.

Parametersnamerequireddescription

hivelearn_update_question_bank

Rename a question bank or change its description.

Parametersidrequirednamedescription

hivelearn_list_question_bank_items

List the questions in a bank, WITH the answer key (is_correct, pairs/items, explanation). Authoring view for admins.

Parameterslimitoffsetbank_idrequired

hivelearn_create_question_bank_item

Add 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).

Parametersitemspairspointsbank_idrequiredoptionsexplanationquestion_textrequiredquestion_typerequiredcorrect_answeraccepted_answers

hivelearn_update_question_bank_item

Edit a bank question. Changing question_type or any answer field rebuilds the answer key, so resupply the answer field for the (new) type.

Parametersidrequireditemspairspointsoptionsexplanationquestion_textquestion_typecorrect_answeraccepted_answers

hivelearn_list_member_notes

List private admin notes on a member, newest first.

Parameterslimitoffsetuser_idrequired

hivelearn_create_member_note

Add a private admin note to a member. The author is the API key's creator.

Parametersnoterequireduser_idrequired

hivelearn_list_member_tags

List the community's member tags (id, name, color).

Parameterslimitoffset

hivelearn_create_member_tag

Create a member tag. Names are unique per community (409 on duplicate).

Parametersnamerequiredcolor

hivelearn_list_member_tag_assignments

List the tags assigned to a member.

Parametersuser_idrequired

hivelearn_add_member_tag

Assign a tag to a member. Idempotent: returns the existing assignment if already tagged.

Parameterstag_idrequireduser_idrequired

hivelearn_list_segments

List saved member segments with their filter rules.

Parameterslimitoffset

hivelearn_list_segment_members

List members matching a segment's rules, evaluated server-side the same way the admin CRM does.

Parameterslimitoffsetsegment_idrequired

hivelearn_get_member_health

Get a member's health score (engagement, activity, risk level). 404 until the daily job has scored them.

Parametersuser_idrequired

Version history

2
  1. v0.4.0LatestSep 21, 2026
  2. v0.3.0Sep 16, 2026

Score

75% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts

    Declare a GitHub repository with a README, or serve resource_documentation in the OAuth protected-resource metadata.

  • License10 pts

    Declare a license in the repository or the registry entry.