# Heights Platform — how to use (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.

## Option A — via MCP (recommended)
Remote MCP endpoint (HTTP, streamable): `https://api.mcp.ai/p_heights_platform?ms=1787293440000`
Add it as a custom/remote MCP connector in your client (Claude, Cursor, VS Code…), then authenticate when prompted. Once connected, ask the agent to use the server's tools (e.g. `heights_platform_enroll_student`).

## Option B — via direct REST API
Base URL: `https://api.mcp.ai/api/heights_platform`
Auth: `Authorization: Bearer sk_live_…` — create a workspace API key at https://mcp.ai/settings/api-keys
Discover endpoints: `GET https://api.mcp.ai/api/heights_platform/_endpoints`

### Endpoints
- `POST https://api.mcp.ai/api/heights_platform/enroll/student` — 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.
  - body: { student_name?: string, student_email: string }
- `POST https://api.mcp.ai/api/heights_platform/get/learning/product` — Get detailed metadata for one course, bundle, or digital product by ID.
  - body: { resource_id: integer, resource_type: string }
- `POST https://api.mcp.ai/api/heights_platform/get/order` — Get one Heights order by its public unique order ID.
  - body: { order_id: string }
- `POST https://api.mcp.ai/api/heights_platform/get/student/course/progress` — Get a student's overall and course-specific completion percentages for one course.
  - body: { course_id: integer, student_email: string }
- `POST https://api.mcp.ai/api/heights_platform/get/student/details` — Get a student by email, including account attributes, activity counts, paid orders, and enrolled courses.
  - body: { student_email: string }
- `POST https://api.mcp.ai/api/heights_platform/grant/student/access` — 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
  - body: { resource_id: integer, student_name?: string, resource_type: string, student_email: string }
- `POST https://api.mcp.ai/api/heights_platform/grant/student/role` — Grant one Heights role to a student, changing the student's authorization. Use a role ID returned by List Course Roles.
  - body: { role_id: integer, student_email: string }
- `POST https://api.mcp.ai/api/heights_platform/list/course/roles` — List the Heights roles that can be granted to students.
- `POST https://api.mcp.ai/api/heights_platform/list/learning/products` — List published courses, bundles, or digital products in the connected Heights account.
  - body: { resource_type: string }
- `POST https://api.mcp.ai/api/heights_platform/list/orders` — List Heights orders with optional status, student email, and creation-time filters, returning one page and an opaque continuation cursor.
  - body: { status?: string, page_size?: integer, next_cursor?: string, created_after?: string, student_email?: string, created_before?: string }
- `POST https://api.mcp.ai/api/heights_platform/list/student/submissions` — List assignment answers or project posts submitted by students.
  - body: { submission_type: string }
- `POST https://api.mcp.ai/api/heights_platform/list/students` — List all Heights students one page at a time, or list the unpaginated students whose total completion is at least 100 percent.
  - body: { next_cursor?: string, completion_filter?: string }
- `POST https://api.mcp.ai/api/heights_platform/reset/student/progress` — 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 
  - body: { resource_id: integer, resource_type: string, student_email: string }
- `POST https://api.mcp.ai/api/heights_platform/revoke/student/access` — 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
  - body: { resource_id: integer, student_name?: string, resource_type: string, student_email: string }
- `POST https://api.mcp.ai/api/heights_platform/revoke/student/role` — Revoke one Heights role from a student, changing the student's authorization. Use a role ID returned by List Course Roles.
  - body: { role_id: integer, student_email: string }
- `POST https://api.mcp.ai/api/heights_platform/unenroll/student` — 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
  - body: { student_name: string, student_email: string }

## Example prompts
- "What can I do in Heights Platform?"
- "Show me a summary of my Heights Platform account"

## More
- Page: https://mcp.ai/heights_platform
- Agent spec (llms.txt): https://mcp.ai/heights_platform/llms.txt
- Postman collection: https://mcp.ai/heights_platform/postman.json
