Tool reference

Everything here runs read-only, and student and instructor identities are anonymized before any result leaves. Below is what you can ask, grouped by area. Each tool lists the scope it requires; declared fields are emitted or tokenized and everything else is dropped by default.

Technical details

How identities are handled

Tokens are stable (the same person yields the same token across tools, so you can correlate) but one-way — they can't be turned back into a person, and can't be passed back in as inputs.

stustudent identity (one-way HMAC token)
tchteacher / instructor identity
emlemail address
schschool
dstdistrict
accaccount
crscourse
qzquiz
actaudit actor
Never emitted
  • password hash
  • password salt
  • SSO client secret
  • SIS studentReferenceID
  • add/invite code values
  • verbatim free-response text

Organization

org:read

Find school

find_school org:read

Find a school by name, city, or state. Shows its district and how many students and teachers it has.

Look up schools by name, city, state, or ID. Returns district, status, and student/instructor counts. Contains no student or instructor PII.

Inputs
  • queryrequired — school name, city, state, or schoolID
Returns
  • schoolID
  • name
  • city
  • state
  • districtID
  • status
  • studentCount
  • instructorCount

Find district

find_district org:read

Find a district by name. Shows how many schools and students it covers.

Look up districts by name or districtID. Returns status, parent district, and school/active-student counts. Contains no PII.

Inputs
  • queryrequired — district name or districtID
Returns
  • districtID
  • name
  • status
  • parentID
  • schoolCount
  • studentCount

District detail

district_detail org:read

Open one district to see all of its schools and their sizes.

Full profile for one district: status, school/student counts, and the list of its schools (each with its own student/instructor counts). Contains no PII.

Inputs
  • districtIDrequired — districtID to expand
Returns
  • districtID
  • name
  • status
  • parentID
  • schoolCount
  • studentCount
  • schools[]

Roster

roster:read

List courses

list_courses roster:read

See the classes at a school, with grade level and how many students and quizzes each one has.

List a school's courses with grade level, status, the teaching instructor (tokenized), and active student/quiz counts. Key off a schoolID from find_school.

Inputs
  • schoolIDrequired — schoolID whose courses to list
Returns
  • courseID
  • name
  • gradeLevel
  • status
  • schoolID
  • sessionName
  • studentCount
  • quizCount
Tokenized
  • instructorID (tch)

Course detail

course_detail roster:read

Open one class to see its teachers, its students, and the quizzes assigned to it. Students are shown as anonymous IDs, never names.

Full profile for one course: instructors (tokenized, with owner flag), the active roster (students tokenized, with grade and status), and assigned quizzes (with assigned/due dates). No student names or emails.

Inputs
  • courseIDrequired — courseID to expand
Returns
  • courseID
  • name
  • gradeLevel
  • status
  • schoolID
  • sessionName
  • studentCount
  • quizCount
  • instructors[].owner
  • roster[].gradeLevel
  • roster[].status
  • quizzes[] (courseQuizID, quizID, quizTitle, dateAssigned, dueDate, status)
Tokenized
  • instructorID (tch)
  • instructors[].instructorID (tch)
  • roster[].studentID (stu)
Dropped
  • student firstName/lastName
  • instructor firstName/lastName

School staff

school_staff roster:read

See the teachers at a school, their titles, and how many classes each one teaches. Teachers are shown anonymously, without names.

Instructors at a school: tokenized identity plus contact email (a teacher/admin address, shown for outreach), title, school-admin flag, and how many active courses each teaches. Key off a schoolID from find_school.

Inputs
  • schoolIDrequired — schoolID whose staff to list
Returns
  • email (teacher/admin contact)
  • title
  • status
  • schoolAdmin
  • courseCount
Tokenized
  • instructorID (tch)
Dropped
  • instructor firstName/lastName

Assessment

assessment:read

Quiz results

quiz_results assessment:read

See how each student did on a quiz assigned to a class: scores and when they took it. Students appear as anonymous IDs.

Results for one assigned course-quiz (key off a courseQuizID from course_detail): the assignment header plus each student's attempt (tokenized student, scores, correct/incorrect counts, taken/submitted dates). No verbatim answers.

Inputs
  • courseQuizIDrequired — courseQuizID to pull results for
Returns
  • courseQuizID
  • courseID
  • quizID
  • quizTitle
  • dateAssigned
  • dueDate
  • status
  • assignedCount
  • results[] (answersheetID, totalScore, totalPossible, correctAnswers, incorrectAnswers, freeresponseScore, freeresponsePossible, status, dateTaken, dateSubmitted, duration)
Tokenized
  • results[].studentID (stu)
Dropped
  • verbatim free-response text

Answersheet detail

answersheet_detail assessment:read

Open one student's result for a single quiz: their per-question scores and reading level. The student's written answers are never shown.

One quiz attempt in full (key off an answersheetID from quiz_results): totals and timing, per-question free-response SCORES (the verbatim text is never returned), and any reading-progress levels recorded. Student is tokenized.

Inputs
  • answersheetIDrequired — answersheetID to expand
Returns
  • answersheetID
  • quizID
  • totalScore
  • totalPossible
  • correctAnswers
  • incorrectAnswers
  • freeresponseScore
  • freeresponsePossible
  • status
  • dateTaken
  • dateStarted
  • dateSubmitted
  • duration
  • timeElapsed
  • freeResponses[] (freeresponseID, questionID, score, unanswered)
  • progressLevels[] (progresslevelType, readinglevelID, dateAdded)
Tokenized
  • studentID (stu)
Dropped
  • freeresponseText
  • free-response feedback

Analytics

analytics:read

Course performance

course_performance analytics:read

See how a class did across its quizzes: how many were assigned, how many were taken, and the average score.

Per-quiz performance for one course: for each assigned quiz, the assigned count, number of attempts, and average score percentage. Aggregates only — no student rows. Key off a courseID.

Inputs
  • courseIDrequired — courseID to summarize
Returns
  • courseQuizID
  • quizID
  • quizTitle
  • dateAssigned
  • dueDate
  • assignedCount
  • attemptCount
  • avgScorePct

Aggregates only; no per-student rows.

Engagement summary

engagement_summary analytics:read

See reading activity for a class: how many articles were read, by how many students, and for how long.

Reading engagement for one course: total article reads, distinct readers, distinct articles, total and average read time. Aggregates only. Key off a courseID.

Inputs
  • courseIDrequired — courseID to summarize
Returns
  • courseID
  • activeStudents
  • reads
  • readers
  • articles
  • totalSeconds
  • avgSecondsPerRead

Aggregates only; no per-student rows.

Content

content:read

Find quiz

find_quiz content:read

Search the quiz bank by title. Shows the quiz type and how many questions it has.

Search the quiz bank by title or quizID. Returns type, status, linked article, owning instructor (tokenized), and question count.

Inputs
  • queryrequired — quiz title or quizID
Returns
  • quizID
  • quizTitle
  • quizType
  • status
  • articleID
  • schoolID
  • questionCount
  • dateAdded
Tokenized
  • instructorID (tch)

Quiz detail

quiz_detail content:read

Open a quiz to read every question, in order, with the skills each one covers.

Full quiz content: header plus each question (type, prompt text, order) with its aligned skills. Key off a quizID from find_quiz, course_detail, or quiz_results.

Inputs
  • quizIDrequired — quizID to expand
Returns
  • quizID
  • quizTitle
  • quizType
  • status
  • articleID
  • schoolID
  • questionCount
  • dateAdded
  • questions[] (questionID, questionType, questionText, order, skills[])
Tokenized
  • instructorID (tch)

Find article set

find_articleset content:read

Search reading article sets by title or subject.

Search article sets by title, subject, or articlesetID. Returns subject, type, status, sample/OER flags, and unit.

Inputs
  • queryrequired — article set title, subject, or articlesetID
Returns
  • articlesetID
  • title
  • subject
  • type
  • status
  • sample
  • oer
  • unitID
  • dateAdded

Article set detail

articleset_detail content:read

Open an article set to see its articles (titles, reading level, length) and the standards it covers.

Full article set: header, its articles (title, word count, reading level, audio flag — never the body text), and aligned standards. Key off an articlesetID from find_articleset.

Inputs
  • articlesetIDrequired — articlesetID to expand
Returns
  • articlesetID
  • title
  • subject
  • type
  • status
  • sample
  • oer
  • unitID
  • dateAdded
  • articles[] (articleID, title, wordCount, readinglevelID, hasAudio, status)
  • standards[] (standardID, standardName, relation)
Dropped
  • articleBody (verbatim article text)

List standards

list_standards content:read

Browse or search the learning standards (such as NGSS) by name or code.

Browse or search the standards catalog (NGSS/state) by name, alias, or standardID. Returns alias, type, description, group, and curriculum. Omit the query to list the first page.

Inputs
  • queryoptional — optional standard name, alias, or standardID
Returns
  • standardID
  • name
  • alias
  • type
  • description
  • groupName
  • curriculum

List skills

list_skills content:read

See the list of skills that quiz questions are tagged with.

List the skill taxonomy questions are tagged against.

Inputs

none

Returns
  • skillID
  • skillName
  • status

Licensing

license:read

School licenses

school_licenses license:read

See a school's RocketLit licenses: the plan, when it starts and expires, and its student limit.

Licenses attached to a school: status, begin/expire dates, pilot flag, student/paper limits, and license type. Any attached instructor is tokenized. Key off a schoolID.

Inputs
  • schoolIDrequired — schoolID whose licenses to list
Returns
  • licenseID
  • status
  • dateBegins
  • dateExpires
  • pilot
  • studentLimit
  • paperDownloadLimit
  • licensetypeID
  • licensetypeName
  • schoolID
  • districtID
Tokenized
  • instructorID (tch)

License detail

license_detail license:read

Open one license to see its full plan details and limits.

One license with its full license type (limits, expiration policy, price, trial/visibility flags). Key off a licenseID from school_licenses.

Inputs
  • licenseIDrequired — licenseID to expand
Returns
  • licenseID
  • status
  • dateBegins
  • dateExpires
  • pilot
  • studentLimit
  • paperDownloadLimit
  • licensetypeID
  • licensetypeName
  • schoolID
  • districtID
  • type (licensetypeID, name, keyword, description, studentLimiter, defaultStudentLimit, expirationType, duration, currentPrice, trial, visibility, status)
Tokenized
  • instructorID (tch)

List license types

list_license_types license:read

See the catalog of RocketLit license types, with their limits and pricing.

The catalog of license types: name, keyword, student-limit policy, expiration policy, price, and trial/visibility flags.

Inputs

none

Returns
  • licensetypeID
  • name
  • keyword
  • description
  • studentLimiter
  • defaultStudentLimit
  • expirationType
  • duration
  • currentPrice
  • trial
  • visibility
  • status

Pilot usage

pilot_usage license:read

Identify cold pilots. With `emails`, resolves each teacher email to pilot licenses and usage; without arguments, discovers every currently-active pilot license on its own. Returns teacher/admin contact emails (for outreach), usage signals, and a status computed as: lastActivityAt = max(lastAssignedAt, lastStudentQuizAt, lastReadAt); with an in-window pilot license (pilot or trial type, dateBegins <= now <= dateExpires): active = activity within 7 days, cooling = 8-21 days, cold = none or >21 days once the pilot is >=14 days old (younger pilots stay cooling). no_pilot = teacher found but no in-window pilot. not_found = email not in the system. Raw signals are always included so you can apply your own judgment.

Identify cold pilots. With `emails`, resolves each teacher email to pilot licenses and usage; without arguments, discovers every currently-active pilot license on its own. Returns teacher/admin contact emails (for outreach), usage signals, and a status computed as: lastActivityAt = max(lastAssignedAt, lastStudentQuizAt, lastReadAt); with an in-window pilot license (pilot or trial type, dateBegins <= now <= dateExpires): active = activity within 7 days, cooling = 8-21 days, cold = none or >21 days once the pilot is >=14 days old (younger pilots stay cooling). no_pilot = teacher found but no in-window pilot. not_found = email not in the system. Raw signals are always included so you can apply your own judgment.

Inputs
  • emailsoptional — teacher emails to check; omit entirely to discover all active pilots
Returns
  • inputIndex
  • licenseID
  • email (teacher/admin contact: echo of caller input, or pilot teacher contact in discovery mode, for outreach)
  • found
  • instructorCount
  • schoolID
  • districtID
  • courseCount
  • assignmentCount
  • lastAssignedAt
  • lastStudentQuizAt
  • lastReadAt
  • readsLast30d
  • activeStudents30d
  • lastActivityAt
  • status
  • licenses[]
Tokenized
  • instructorID

Service health

health:read

Service health

service_health health:read

Check whether RocketLit and its connected services are up and running.

Health of the MCP server's data sources and the Nexus gateway. Reports the innerorbit read replica, Nexus itself, Nexus's own dependencies (database, redis), the rollup status of each downstream service (glean, data_export) routed through Nexus, and the presidio analyzer used for PII scrubbing.

Inputs

none

Returns
  • innerorbit (ok, detail)
  • nexus (status, timestamp, dependencies, downstream)

Infrastructure status only; no student/teacher data. Cross-service health is read via the Nexus gateway.

AI summaries

glean:summarize

Summarize (AI)

summarize glean:summarize

Turn assessment results into a short written summary, generated by AI.

Generate an AI narrative summary of assignment/assessment data via Glean. Pass the data to summarize as text (e.g. results you assembled from quiz_results or course_performance). The server detects and tokenizes any PII in the input before it is forwarded; prefer passing already-anonymized data. Returns the summary plus model metadata, including redactedEntities counts when redaction occurred.

Inputs
  • datarequired — the assignment/assessment data to summarize
Returns
  • content
  • metadata (provider, model, tokens_used, pii_stripped, processing_time_ms)

Routes through Nexus to Glean. Caller supplies already-anonymized data; Glean strips PII downstream (metadata.pii_stripped). Returns generated summary text.