Documentation
Instructor quickstart and MCP
Create the class, share a join link, and add credits. Then connect a chat client to the MCP server if you want to run those same steps from a conversation.
Instructor quickstart
Run a free pilot cohort opens a sandbox institution and makes you the org admin. A sandbox starts with 5 seats and lasts 90 days. No card is required to open it. Then:
Step 1
Create a class
Open Classes and choose Create Class. An org admin or a school admin can create a class. Name it, pick the school, and set the instructor. A new institution includes a default school. Choose General when the cohort is not a Basics subject.
In chat, the matching tool is
Open Classeseducator_create_class.Step 2
Share a join link
Open Students and create a student invite link. Share that URL. Anyone who signs up or signs in with it joins the institution as a student. An org admin creates the link. Turning the link off stops new people from using it. People who already joined stay enrolled.
In chat, the matching tool is
Open Studentseducator_create_join_link.Step 3
Add credits
Open Plan and Billing. Add funds to the institution pool, or move credits from a personal balance. Students and teachers cannot use AI features until that pool has a balance.
In chat, the matching tool is
Open Plan and Billingeducator_create_credit_checkout.
Connect with OAuth 2.0
The MCP server is Streamable HTTP. Clients that speak MCP OAuth discover the authorization server from the protected-resource metadata, then sign the person in through the browser.
Server URL
https://pitchrise.ludwitt.com/api/mcp
- Point the client at the server URL above.
- The client reads protected-resource metadata, then authorization server metadata.
- The client registers at the registration endpoint as a public client, or presents an HTTPS client ID metadata document.
- The person signs in at the authorization endpoint and approves scopes. The response type is
code. PKCE is required, usingS256. - The client exchanges the code at the token endpoint with the PKCE verifier. Grant types are authorization_code and refresh_token. The token endpoint auth method is
none. - Later calls send
Authorization: Bearerwith the access token.
| Piece | URL |
|---|---|
| Server | https://pitchrise.ludwitt.com/api/mcp |
| Protected resource metadata | https://pitchrise.ludwitt.com/.well-known/oauth-protected-resource |
| Authorization server metadata | https://pitchrise.ludwitt.com/.well-known/oauth-authorization-server |
| Authorization endpoint | https://pitchrise.ludwitt.com/oauth/mcp/authorize |
| Token endpoint | https://pitchrise.ludwitt.com/api/mcp/oauth/token |
| Registration endpoint | https://pitchrise.ludwitt.com/api/mcp/oauth/register |
Token lifetimes
- Authorization code: 5 minutes
- Access token: 1 hour
- Refresh token: 30 days
Scopes
A new OAuth client asks for learner tools and class management unless it requests more. That default scope string is basics:read basics:write alc:read classes:read classes:write. Institution scopes are requested on their own. Re-authorize when a tool returns missing_scope.
basics:read— Read Basics progress and current problemsbasics:write— Submit Basics answers and update learning progressalc:read— Read ALC (Developer Training) path and step progressclasses:read— List institutions, schools, classes, and rosters the educator can seeclasses:write— Create and update classes, and enroll or remove class membersorgs:write— Create an institution and its schoolsinvites:read— List pending institution invites and student invite linksinvites:write— Invite people by email, create student invite links, and revoke or resend invitesbilling:read— Read an institution credit pool, deposits, and checkout statusbilling:write— Create institution payment links and set per-student credit capsprogress:read— Read class and student learning progress
API key fallback
A client without OAuth can send a developer key, pk_live_ or pk_test_, as Authorization: Bearer or X-API-Key. An empty API-key scope list grants every scope except billing:write. Create a key at https://pitchrise.ludwitt.com/account/api-keys.
Tools
33 tools. Names and descriptions are the ones the server registers.
Learner
basics_get_progressBasics: Get Progress
Start (or continue) an in-chat Ludwitt Coach session. Returns math, reading, latin, greek, and logic progress for the authenticated learner. Prefer this over sending the learner to the website. Requires basics:read (or empty scopes).
basics_get_current_problemsBasics: Get Current Problems
Fetch the next adaptive Basics item(s) for in-chat practice. Subjects: math, reading, latin, greek, logic, or both (math+reading). Payloads omit answers/spoilers — present them in chat, then grade with basics_check_answer. Writing is not supported (no adaptive loop). Requires basics:read.
basics_check_answerBasics: Check Answer
Grade a learner answer from chat and update progress (same engines as /api/basics/*). Subjects: math, reading, latin, greek, logic. Response may include a reveal block with answers/explanations for coaching after the attempt. Requires basics:write.
alc_get_progressALC: Get Progress
Read Developer Training (ALC) path selection, current step, and completion flags so a coach knows where the learner is. Requires alc:read.
Classes
educator_list_orgsEducator: List institutions
List institutions where the signed-in user is an org-admin, school-admin, or instructor. Includes self.userId for instructorId "me". Requires classes:read.
educator_list_schoolsEducator: List schools
List schools in an institution that this educator can see. Requires classes:read.
educator_list_classesEducator: List classes
List active classes this educator can see in an institution. Org-admins see every class; school-admins see their schools; instructors see classes they teach. Requires classes:read.
educator_get_classEducator: Get class
Read one class and whether this user can edit it or change its roster. Requires classes:read.
educator_list_rosterEducator: List class roster
List students and co-teachers on a class, with name and email when the institution membership has them. Requires classes:read.
educator_list_membersEducator: List institution members
List people already in the institution so they can be enrolled in a class. Optional role filter. Requires classes:read.
educator_create_classEducator: Create class
Create a class in a school. Org-admin or school-admin only. instructorId is a user id, or "me" for the signed-in user. Requires classes:write.
educator_update_classEducator: Update class
Change a class name, period, subject, grade, size, or primary instructor. Org-admin or school-admin only. Pass null to clear period, subject, or gradeLevel. Requires classes:write.
educator_archive_classEducator: Archive class
Deactivate a class. Org-admin or school-admin only. Requires classes:write.
educator_enroll_membersEducator: Enroll class members
Add existing institution members to a class by userId or email. Role is student (default) or co-teacher. People who are not members yet need educator_invite_members. Requires classes:write.
educator_remove_memberEducator: Remove class member
Remove one person from a class roster. The class instructor, a school-admin, or an org-admin may do this. Requires classes:write.
Institution and invites
educator_create_orgEducator: Create institution
Create a sandbox institution for the signed-in user, who becomes org-admin, plus a default school. Requires a verified email and orgs:write. K-12 requires attestsAuthority: true. One create per 24 hours, three lifetime.
educator_create_schoolEducator: Create school
Add a school to an institution. Org-admin only. Requires orgs:write. Idempotent for the same code.
account_resend_verificationAccount: Resend verification email
Email a verification link to the signed-in user. Does not return the link. Requires orgs:write.
educator_invite_membersEducator: Invite members
Invite people by email. Org-admins may invite students, instructors, or school-admins. School-admins and instructors may invite students into a class they manage. Never returns a set-password link. Requires invites:write.
educator_list_invitesEducator: List pending invites
List pending invites. Org-admins see all. Other educators see invites they sent. Requires invites:read.
educator_revoke_inviteEducator: Revoke invite
Revoke a pending invite. Org-admin or the original inviter. Requires invites:write.
educator_resend_inviteEducator: Resend invite
Email the setup link again. Does not return the link. At most 3 times per invite per day. Org-admin only. Requires invites:write.
educator_create_join_linkEducator: Create student invite link
Create a shareable link. Anyone who signs up or signs in with it joins this institution as a student. Returns the URL. Org-admin only. Requires invites:write and a verified email. Does not email anyone.
educator_list_join_linksEducator: List student invite links
List student invite links for an institution, including ones that are off, expired, or full. Org-admin only. Requires invites:read.
educator_revoke_join_linkEducator: Turn off student invite link
Stop a student invite link from enrolling anyone else. People who already joined stay enrolled. Org-admin only. Requires invites:write.
Billing and progress
educator_transfer_personal_creditsEducator: Transfer personal credits
Move credits from the signed-in user personal balance into this institution pool. Org-admin or school-admin. Does not charge a card. Requires billing:write. amountCents is between 500 and 50000.
educator_get_creditsEducator: Get credit pool
Read the institution credit balance, recent deposits, and whether org credits are enabled. Org-admin only. Requires billing:read.
educator_create_credit_checkoutEducator: Create credit checkout
Create a Stripe Checkout link for an institution credit deposit. The human pays in the browser. Does not take card details. Org-admin only. Requires billing:write, which is never implied by an empty API-key scope list.
educator_get_checkout_statusEducator: Get checkout status
Poll a checkout session until credited is true. Rejects a session that belongs to another institution. Requires billing:read.
educator_set_student_capEducator: Set student credit cap
Set or clear one student cap on the institution pool. Org-admin only. Requires billing:write.
educator_get_class_progressEducator: Get class progress
Class aggregate and per-student Basics progress for a class this educator can see. Requires progress:read.
educator_get_student_progressEducator: Get student progress
One student progress record. Org-admin, or an educator who can see a class that contains the student. Requires progress:read.
educator_needs_attentionEducator: Needs attention
Pending invites, seat pressure, and other institution follow-ups. Org-admin or school-admin. Requires progress:read.