# Heights Platform — MCP server on mcp.ai > Connect your Heights Platform account and use 16 tools for online courses straight from your AI agent. Connect with your own API key. Heights Platform helps creators build and sell online courses, digital products, and communities while managing students, orders, and access. By: mcp.ai · official Page: https://mcp.ai/heights_platform ## Connect (MCP protocol) Remote MCP endpoint (HTTP, streamable): https://api.mcp.ai/p_heights_platform?ms=1787293560000 Add it as a custom/remote MCP connector, then authenticate when prompted. ## REST API (no MCP client required) Every tool is also a REST endpoint, authed with a workspace API key. Discover: GET https://api.mcp.ai/api/heights_platform/_endpoints # public; lists every endpoint Call: POST https://api.mcp.ai/api/heights_platform/ Authorization: Bearer sk_live_… # create one at https://mcp.ai/settings/api-keys Content-Type: application/json Body: { …args } → { "ok": true, "tool": "", "result": { … } } ## Developer docs How to use (MCP or REST), markdown: https://mcp.ai/heights_platform/skill.md Postman collection (v2.1): https://mcp.ai/heights_platform/postman.json ## Tools - heights_platform_enroll_student(student_name?: string, student_email: string) — Create a student or update an existing student and mark them enrolled without granting course or bundle access. Use Grant Student Access when the student should also receive a learning product. - heights_platform_get_learning_product(resource_id: integer, resource_type: string) — Get detailed metadata for one course, bundle, or digital product by ID. - heights_platform_get_order(order_id: string) — Get one Heights order by its public unique order ID. - heights_platform_get_student_course_progress(course_id: integer, student_email: string) — Get a student's overall and course-specific completion percentages for one course. - heights_platform_get_student_details(student_email: string) — Get a student by email, including account attributes, activity counts, paid orders, and enrolled courses. - heights_platform_grant_student_access(resource_id: integer, student_name?: string, resource_type: string, student_email: string) — Grant one course or bundle to a student by creating a zero-dollar paid order. Heights also creates or updates the student and marks them enrolled. This is non-idempotent because retrying can create an - heights_platform_grant_student_role(role_id: integer, student_email: string) — Grant one Heights role to a student, changing the student's authorization. Use a role ID returned by List Course Roles. - heights_platform_list_course_roles() — List the Heights roles that can be granted to students. - heights_platform_list_learning_products(resource_type: string) — List published courses, bundles, or digital products in the connected Heights account. - heights_platform_list_orders(status?: string, page_size?: integer, next_cursor?: string, created_after?: string, student_email?: string, created_before?: string) — List Heights orders with optional status, student email, and creation-time filters, returning one page and an opaque continuation cursor. - heights_platform_list_student_submissions(submission_type: string) — List assignment answers or project posts submitted by students. - heights_platform_list_students(next_cursor?: string, completion_filter?: string) — List all Heights students one page at a time, or list the unpaginated students whose total completion is at least 100 percent. - heights_platform_reset_student_progress(resource_id: integer, resource_type: string, student_email: string) — Permanently erase a student's saved completion and progress records. For a course, this resets the selected course only. For a bundle, this resets every course in that bundle. This destructive change - heights_platform_revoke_student_access(resource_id: integer, student_name?: string, resource_type: string, student_email: string) — Permanently remove one course or bundle from a student's existing orders. Course revocation removes that course from every applicable order. Bundle revocation cascades: it removes the bundle and the b - heights_platform_revoke_student_role(role_id: integer, student_email: string) — Revoke one Heights role from a student, changing the student's authorization. Use a role ID returned by List Course Roles. - heights_platform_unenroll_student(student_name: string, student_email: string) — End a student's paid membership by setting their Heights paying-student state to false. This changes the student's membership state; it does not delete the student account or promise to remove separat ## Example prompts - "What can I do in Heights Platform?" - "Show me a summary of my Heights Platform account" ## Links Docs: https://mcp.ai/docs/mcps/heights_platform Website: https://mcp.ai/mcps/heights_platform