{"$schema":"https://verifymcp.io/schemas/trust-report.json","schemaVersion":1,"license":{"name":"CC BY-NC 4.0","url":"https://creativecommons.org/licenses/by-nc/4.0/"},"generatedAt":"2026-11-05T18:35:25.801Z","url":"https://verifymcp.io/servers/io-usefulapi-jackrabbit-class/jackrabbit-class","markdownUrl":"https://verifymcp.io/servers/io-usefulapi-jackrabbit-class/jackrabbit-class.md","server":{"slug":"io-usefulapi-jackrabbit-class","name":"Jackrabbit Class MCP by usefulapi","registryName":"io.usefulapi/jackrabbit-class","description":"Read Jackrabbit Class beta data, create students and add class waitlist entries.","registryStatus":"active","deletedAt":null,"statusMessage":null,"liveness":"live","publisher":{"class":"unknown","claimed":false}},"component":{"slug":"jackrabbit-class","type":"remote","identifier":"https://jackrabbit-class.usefulapi.io/mcp","withdrawn":false,"url":"https://verifymcp.io/servers/io-usefulapi-jackrabbit-class/jackrabbit-class","version":"1.6.3","transport":null,"scoredAt":"2026-11-05T15:06:29.597Z"},"score":{"total":18,"tier":"low","status":"scored","weekDelta":null,"history":[{"date":"2026-11-05","total":18},{"date":"2026-11-04","total":18},{"date":"2026-11-03","total":18},{"date":"2026-11-02","total":18},{"date":"2026-11-01","total":66},{"date":"2026-10-31","total":65},{"date":"2026-10-30","total":62}]},"categories":[{"name":"Endpoint Security","score":46,"verdict":"fail","reasons":["The endpoint's TLS certificate is valid, in date, and uses a strong key.","Authorisation not yet verified: we couldn't confirm whether this endpoint requires it.","HTTPS enforcement could not be verified: the plaintext port redirected somewhere other than https, so enforcement is unproven.","HSTS check failed: the Strict-Transport-Security header is absent.","DNSSEC check failed: this domain isn't protected by DNSSEC."],"codes":[{"code":"tls.valid","args":{}},{"code":"auth.unreachable","args":{}},{"code":"https.inconclusive","args":{"reason":"redirect_not_https"}},{"code":"headers.hsts_absent","args":{}},{"code":"dnssec.absent","args":{}}]},{"name":"Transport & Reachability","score":0,"verdict":"fail","reasons":["Transport check failed: declared streamable-http, but the endpoint redirected instead of responding directly."],"codes":[{"code":"transport.redirected","args":{"transport":"streamable-http"}}]},{"name":"Schema Quality & AI Usability","score":0,"verdict":"unverified","reasons":["Schema not yet verified: we couldn't read the endpoint's schema, or could read only part of its tool list."],"codes":[{"code":"schema.unreachable","args":{}}]},{"name":"Stability & Change Management","score":0,"verdict":"unverified","reasons":["Stability not yet verified: not enough scan history yet (needs a 30-day window)."],"codes":[{"code":"stability.insufficient_history","args":{}}]},{"name":"Tool Coverage","score":0,"verdict":"unverified","reasons":["Tool coverage not yet verified: we couldn't read the endpoint's tools, or could read only part of the list."],"codes":[{"code":"toolquality.unreachable","args":{}}]},{"name":"Tool Safety","score":0,"verdict":"unverified","reasons":["Tool safety not yet verified: we couldn't read the endpoint's tools, or could read only part of the list."],"codes":[{"code":"toolsafety.unreachable","args":{}}]},{"name":"Capabilities","score":0,"verdict":"unverified","reasons":["Capabilities not yet verified: we couldn't read the endpoint's capabilities."],"codes":[{"code":"cap.unreachable","args":{}}]}],"inconclusive":["Authorisation not yet verified: we couldn't confirm whether this endpoint requires it.","HTTPS enforcement could not be verified: the plaintext port redirected somewhere other than https, so enforcement is unproven.","Schema not yet verified: we couldn't read the endpoint's schema, or could read only part of its tool list.","Stability not yet verified: not enough scan history yet (needs a 30-day window).","Tool coverage not yet verified: we couldn't read the endpoint's tools, or could read only part of the list.","Tool safety not yet verified: we couldn't read the endpoint's tools, or could read only part of the list.","Capabilities not yet verified: we couldn't read the endpoint's capabilities."],"malware":[],"components":[{"slug":"jackrabbit-class","type":"remote","identifier":"https://jackrabbit-class.usefulapi.io/mcp","withdrawn":false,"score":18,"current":true,"url":"https://verifymcp.io/servers/io-usefulapi-jackrabbit-class/jackrabbit-class","markdownUrl":"https://verifymcp.io/servers/io-usefulapi-jackrabbit-class/jackrabbit-class.md"}],"facts":[{"label":"Endpoint","value":"https://jackrabbit-class.usefulapi.io/mcp"},{"label":"Transports","value":"streamable-http"},{"label":"Auth","value":"none"},{"label":"Version","value":"1.6.3"}],"install":{"available":true,"bundleSha256":null},"tools":[{"name":"jackrabbit_get_organization","title":"Get organization","description":"The Jackrabbit organization this token accesses: name, email, default currency and logo URL. GET /v1/Options/me.","inputs":[],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":37},{"name":"jackrabbit_get_custom_field_labels","title":"Get custom field labels","description":"The organization's own labels for the five family and five student user-defined fields (userField1-5). GET /v1/Options/org-configuration.","inputs":[],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":43},{"name":"jackrabbit_list_options","title":"List option values","description":"The allowed values (id, value, description) of one dropdown list in this organization: locations, sessions, rooms, class categories and statuses, instructors, enroll types, drop reasons, genders, grade levels, family statuses and sources, contact types, staff positions, departments, membership types, billing cycles and methods, discount rules, transaction types and sizes. Use the ids as filters on the other tools. GET /v1/Options/{list}.","inputs":[{"name":"list","type":"string","required":true,"description":"Which option list to return."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":112},{"name":"jackrabbit_list_families","title":"List families","description":"List family accounts (billing households): name, status, location, primary phone, address, balance, membership, e-payment and discount settings, notes. Filter by status, location, name, phone or last update. GET /v1/Families.","inputs":[{"name":"family_name","type":"string","required":false,"description":"Family (last) name filter."},{"name":"location_id","type":"integer","required":false,"description":"Location id (see jackrabbit_list_options locations)."},{"name":"page","type":"integer","required":false,"description":"Page number, from 1 (default 1). Pass the previous reply's next_page."},{"name":"page_size","type":"integer","required":false,"description":"Results per page, 1-100 (default 25)."},{"name":"phone","type":"string","required":false,"description":"Family home phone number."},{"name":"status_id","type":"integer","required":false,"description":"Family status id (see jackrabbit_list_options family_statuses)."},{"name":"updated_since","type":"string","required":false,"description":"Only families updated on or after this date, yyyy-mm-dd."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":190},{"name":"jackrabbit_get_family","title":"Get family","description":"One family account by id, with balance, billing and discount settings and notes. GET /v1/Families/{id}.","inputs":[{"name":"family_id","type":"integer","required":true,"description":"Jackrabbit family id."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":48},{"name":"jackrabbit_list_archived_families","title":"List archived families","description":"List archived (lead-file) families. GET /v1/Families/archived.","inputs":[{"name":"family_id","type":"integer","required":false,"description":"Family id filter."},{"name":"family_name","type":"string","required":false,"description":"Family name filter."},{"name":"location_id","type":"integer","required":false,"description":"Location id."},{"name":"page","type":"integer","required":false,"description":"Page number, from 1 (default 1). Pass the previous reply's next_page."},{"name":"page_size","type":"integer","required":false,"description":"Results per page, 1-100 (default 25)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":110},{"name":"jackrabbit_list_contacts","title":"List contacts","description":"List family contacts (parents, guardians, emergency and pickup contacts): name, type, email, phones, address, primary/billing/authorized-for-pickup flags, opt-outs. GET /v1/Contacts.","inputs":[{"name":"authorized","type":"boolean","required":false,"description":"Only contacts authorized for pickup."},{"name":"billing","type":"boolean","required":false,"description":"Only billing contacts."},{"name":"email","type":"string","required":false,"description":"Email address filter."},{"name":"family_id","type":"integer","required":false,"description":"Only contacts of this family."},{"name":"member_id","type":"string","required":false,"description":"External member id."},{"name":"page","type":"integer","required":false,"description":"Page number, from 1 (default 1). Pass the previous reply's next_page."},{"name":"page_size","type":"integer","required":false,"description":"Results per page, 1-100 (default 25)."},{"name":"phone","type":"string","required":false,"description":"Phone filter (searches home, work and cell numbers)."},{"name":"primary","type":"boolean","required":false,"description":"Only primary contacts (true) or only non-primary (false)."},{"name":"type_id","type":"integer","required":false,"description":"Contact type id (see jackrabbit_list_options contact_types)."},{"name":"updated_since","type":"string","required":false,"description":"Only contacts updated on or after this date, yyyy-mm-dd."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":231},{"name":"jackrabbit_get_contact","title":"Get contact","description":"One contact by id. GET /v1/Contacts/{id}.","inputs":[{"name":"contact_id","type":"integer","required":true,"description":"Jackrabbit contact id."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":36},{"name":"jackrabbit_list_authorized_contacts","title":"List contacts authorized to pick up a student","description":"The contacts authorized to pick up one student. GET /v1/Contacts/authorized/{studentId}.","inputs":[{"name":"student_id","type":"integer","required":true,"description":"Jackrabbit student id."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":45},{"name":"jackrabbit_list_students","title":"List students","description":"List students: family, location, status, birth date, gender, grade, school, registration and quit dates, sizes, and health notes (medications, allergies, special needs, doctor). Filter by family, active status, location, last name or dates. GET /v1/Students.","inputs":[{"name":"birth_date","type":"string","required":false,"description":"Students born on this date, yyyy-mm-dd."},{"name":"created_date","type":"string","required":false,"description":"Students created on this date, yyyy-mm-dd."},{"name":"date_last_inactive","type":"string","required":false,"description":"Students last marked inactive on this date, yyyy-mm-dd."},{"name":"family_id","type":"integer","required":false,"description":"Only students of this family."},{"name":"is_active","type":"boolean","required":false,"description":"true = active students only, false = inactive only."},{"name":"last_name","type":"string","required":false,"description":"Last name filter."},{"name":"location_id","type":"integer","required":false,"description":"Location id."},{"name":"page","type":"integer","required":false,"description":"Page number, from 1 (default 1). Pass the previous reply's next_page."},{"name":"page_size","type":"integer","required":false,"description":"Results per page, 1-100 (default 25)."},{"name":"quit_date","type":"string","required":false,"description":"Students who quit on this date, yyyy-mm-dd."},{"name":"updated_since","type":"string","required":false,"description":"Only students updated on or after this date, yyyy-mm-dd."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":260},{"name":"jackrabbit_get_student","title":"Get student","description":"One student by id with all profile, size and health-note fields. GET /v1/Students/{id}.","inputs":[{"name":"student_id","type":"integer","required":true,"description":"Jackrabbit student id."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":45},{"name":"jackrabbit_list_staff","title":"List staff","description":"List staff and instructors: name, status, contact details, positions, employment type, instructor flag, start/end dates. GET /v1/Staff.","inputs":[{"name":"class_id","type":"integer","required":false,"description":"Only staff teaching this class."},{"name":"created_date","type":"string","required":false,"description":"Staff created on this date, yyyy-mm-dd."},{"name":"is_active","type":"boolean","required":false,"description":"true = active staff only, false = inactive only."},{"name":"last_name","type":"string","required":false,"description":"Last name filter."},{"name":"page","type":"integer","required":false,"description":"Page number, from 1 (default 1). Pass the previous reply's next_page."},{"name":"page_size","type":"integer","required":false,"description":"Results per page, 1-100 (default 25)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":145},{"name":"jackrabbit_get_staff_member","title":"Get staff member","description":"One staff member by id. GET /v1/Staff/{id}.","inputs":[{"name":"staff_id","type":"integer","required":true,"description":"Jackrabbit staff id."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":38},{"name":"jackrabbit_list_classes","title":"List classes","description":"List classes with schedule (days, start/end time and date), location, room, session, instructors, size, openings, waitlist counts, tuition, age limits and online-registration flags. GET /v1/Classes.","inputs":[{"name":"archived","type":"boolean","required":false,"description":"true = list archived classes instead of active ones."},{"name":"family_id","type":"integer","required":false,"description":"Only classes this family's students are enrolled in."},{"name":"instructor_id","type":"integer","required":false,"description":"Only classes taught by this staff member."},{"name":"location_id","type":"integer","required":false,"description":"Location id."},{"name":"page","type":"integer","required":false,"description":"Page number, from 1 (default 1). Pass the previous reply's next_page."},{"name":"page_size","type":"integer","required":false,"description":"Results per page, 1-100 (default 25)."},{"name":"student_id","type":"integer","required":false,"description":"Only classes this student is enrolled in."},{"name":"updated_since","type":"string","required":false,"description":"Only classes updated on or after this date, yyyy-mm-dd."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":192},{"name":"jackrabbit_get_class","title":"Get class","description":"One class by id with its full schedule, capacity, fees and registration settings. GET /v1/Classes/{id}.","inputs":[{"name":"class_id","type":"integer","required":true,"description":"Jackrabbit class id."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":47},{"name":"jackrabbit_get_class_roster","title":"Get class roster","description":"Who is in a class today: class name, start time, location, room, instructors and the roster (student id, name, present, makeup). GET /v1/Classes/{classId}/roster.","inputs":[{"name":"class_id","type":"integer","required":true,"description":"Jackrabbit class id."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":68},{"name":"jackrabbit_list_class_listings","title":"List class listings (openings)","description":"The public-facing class schedule with openings, age ranges, tuition, location address and online registration links, filterable by category, instructor, days, session, location, gender, room and status. GET /v1/ClassListings.","inputs":[{"name":"category1_id","type":"integer","required":false,"description":"Class category 1 id."},{"name":"category2_id","type":"integer","required":false,"description":"Class category 2 id."},{"name":"category3_id","type":"integer","required":false,"description":"Class category 3 id."},{"name":"days","type":"string","required":false,"description":"Days of the week, e.g. \"Mon,Tue,Wed\"."},{"name":"gender_id","type":"integer","required":false,"description":"Gender id."},{"name":"include_closed","type":"boolean","required":false,"description":"Include closed classes (overrides the organization setting)."},{"name":"instructor_id","type":"integer","required":false,"description":"Instructor (staff) id."},{"name":"location_id","type":"integer","required":false,"description":"Location id."},{"name":"page","type":"integer","required":false,"description":"Page number, from 1 (default 1). Pass the previous reply's next_page."},{"name":"page_size","type":"integer","required":false,"description":"Results per page, 1-100 (default 25)."},{"name":"room_id","type":"integer","required":false,"description":"Room id."},{"name":"session_id","type":"integer","required":false,"description":"Session id."},{"name":"status_id","type":"integer","required":false,"description":"Class status id."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":247},{"name":"jackrabbit_list_enrollments","title":"List enrollments","description":"List enrollments (a student in a class): enroll date and type, enrolled flag, drop date and reason, transfer target. enrolled=true returns only existing enrollments, enrolled=false only dropped ones (omit it for no status filter); future=true lists enrollments that start later. GET /v1/Enrollments (or /v1/Enrollments/future).","inputs":[{"name":"class_id","type":"integer","required":false,"description":"Only enrollments in this class."},{"name":"class_location_id","type":"integer","required":false,"description":"Location id of the class."},{"name":"enrolled","type":"boolean","required":false,"description":"true = only existing enrollments, false = only dropped enrollments."},{"name":"family_id","type":"integer","required":false,"description":"Only this family's enrollments."},{"name":"future","type":"boolean","required":false,"description":"true = future-dated enrollments instead of current ones."},{"name":"page","type":"integer","required":false,"description":"Page number, from 1 (default 1). Pass the previous reply's next_page."},{"name":"page_size","type":"integer","required":false,"description":"Results per page, 1-100 (default 25)."},{"name":"student_id","type":"integer","required":false,"description":"Only this student's enrollments."},{"name":"student_location_id","type":"integer","required":false,"description":"Location id of the student."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":237},{"name":"jackrabbit_get_enrollment","title":"Get enrollment","description":"One enrollment by id (set future=true for a future-dated enrollment). GET /v1/Enrollments/{id} or /v1/Enrollments/future/{id}.","inputs":[{"name":"enrollment_id","type":"integer","required":true,"description":"Jackrabbit enrollment id."},{"name":"future","type":"boolean","required":false,"description":"true = look up a future-dated enrollment."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":76},{"name":"jackrabbit_list_attendance","title":"List attendance","description":"List attendance records (only dates where someone marked attendance): student, class, date, attended, note and makeup details. Filter by student, class, date range, attended and makeup status. GET /v1/Attendance.","inputs":[{"name":"class_id","type":"integer","required":false,"description":"Only the original class that was missed or attended."},{"name":"did_attend","type":"boolean","required":false,"description":"true = attended, false = absent."},{"name":"did_attend_makeup","type":"boolean","required":false,"description":"Makeup attendance status."},{"name":"end_date","type":"string","required":false,"description":"Last attendance date, yyyy-mm-dd."},{"name":"has_scheduled_makeup","type":"boolean","required":false,"description":"Only records with a scheduled makeup."},{"name":"page","type":"integer","required":false,"description":"Page number, from 1 (default 1). Pass the previous reply's next_page."},{"name":"page_size","type":"integer","required":false,"description":"Results per page, 1-100 (default 25)."},{"name":"start_date","type":"string","required":false,"description":"First attendance date, yyyy-mm-dd."},{"name":"student_id","type":"integer","required":false,"description":"Only this student."},{"name":"updated_since","type":"string","required":false,"description":"Only records updated on or after this date, yyyy-mm-dd."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":226},{"name":"jackrabbit_list_waitlist_entries","title":"List waitlist entries","description":"List class waitlist entries: class, student, entry date, position and notes. Filter by class, student or entry date. GET /v1/Classes/waitlist-entries.","inputs":[{"name":"class_id","type":"integer","required":false,"description":"Only this class's waitlist."},{"name":"entry_date","type":"string","required":false,"description":"Entries created on this date, yyyy-mm-dd."},{"name":"page","type":"integer","required":false,"description":"Page number, from 1 (default 1). Pass the previous reply's next_page."},{"name":"page_size","type":"integer","required":false,"description":"Results per page, 1-100 (default 25)."},{"name":"student_id","type":"integer","required":false,"description":"Only this student's entries."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":138},{"name":"jackrabbit_get_franchise_revenue_summary","title":"Get franchise revenue summary","description":"Corporate tokens only: total revenue per franchise organization for a date range. GET /v1/Reports/franchise-revenue-summary.","inputs":[{"name":"from_date","type":"string","required":true,"description":"Start of the period, yyyy-mm-dd."},{"name":"to_date","type":"string","required":true,"description":"End of the period, yyyy-mm-dd."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":72},{"name":"jackrabbit_create_student","title":"Create student","description":"WRITE: add a new student to an existing family in Jackrabbit (not idempotent: calling twice creates two students). Requires the family id and first name. POST /v1/Students.","inputs":[{"name":"birth_date","type":"string","required":false,"description":"Birth date, yyyy-mm-dd."},{"name":"email","type":"string","required":false,"description":"Student email."},{"name":"family_id","type":"integer","required":true,"description":"The family the student belongs to."},{"name":"first_name","type":"string","required":true,"description":"First name."},{"name":"gender_id","type":"integer","required":false,"description":"Gender id (see jackrabbit_list_options genders)."},{"name":"grade_level_id","type":"integer","required":false,"description":"Grade level id (see jackrabbit_list_options grade_levels)."},{"name":"last_name","type":"string","required":false,"description":"Last name."},{"name":"middle_initial","type":"string","required":false,"description":"Middle initial."},{"name":"phone","type":"string","required":false,"description":"Student phone."},{"name":"school","type":"string","required":false,"description":"School name."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":172},{"name":"jackrabbit_create_waitlist_entry","title":"Add student to a class waitlist","description":"WRITE: put a student on a class waitlist (not idempotent; Jackrabbit answers 409 if the student is already on it). Does not enroll the student. POST /v1/Classes/waitlist-entries.","inputs":[{"name":"class_id","type":"integer","required":true,"description":"The class (see jackrabbit_list_classes)."},{"name":"notes","type":"string","required":false,"description":"A note on the entry."},{"name":"position","type":"integer","required":false,"description":"Waitlist position (default: end of the list)."},{"name":"student_id","type":"integer","required":true,"description":"The student."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":114}],"toolsTruncatedAtCapture":false,"diagnostics":{"capturedAt":"2026-11-05T15:06:29.000Z","track":"remote","endpoint":"https://jackrabbit-class.usefulapi.io/mcp","declaredUrl":null,"truncated":false,"tls":{"outcome":"valid","label":"Valid","version":"TLS 1.3","cipherSuite":"TLS_AES_128_GCM_SHA256","chainError":null,"certificates":[{"subject":"CN=usefulapi.io","issuer":"CN=WE1,O=Google Trust Services,C=US","notBefore":"2026-09-13T08:55:39Z","notAfter":"2026-12-12T09:54:12Z","keyType":"ECDSA","keyBits":256,"isCa":false},{"subject":"CN=WE1,O=Google Trust Services,C=US","issuer":"CN=GTS Root R4,O=Google Trust Services LLC,C=US","notBefore":"2023-12-13T09:00:00Z","notAfter":"2029-02-20T14:00:00Z","keyType":"ECDSA","keyBits":256,"isCa":true},{"subject":"CN=GTS Root R4,O=Google Trust Services LLC,C=US","issuer":"CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE","notBefore":"2023-11-15T03:43:21Z","notAfter":"2028-01-28T00:00:42Z","keyType":"ECDSA","keyBits":384,"isCa":true}]},"dnssec":{"result":"insecure","label":"Not signed","name":"jackrabbit-class.usefulapi.io.","steps":[{"zone":".","outcome":"verified","label":"Verified"},{"zone":"io.","outcome":"verified","label":"Verified"},{"zone":"usefulapi.io.","outcome":"insecure_proven","label":"Unsigned (proven)"}]},"auth":{"outcome":"inconclusive","label":"Inconclusive","gate":null,"gateLabel":null,"status":302,"authorizationServers":[]},"httpsRedirect":{"outcome":"inconclusive","label":"Inconclusive","status":302},"transports":[{"transport":"streamable-http","outcome":"redirected","label":"Redirected","status":302,"followed":false}],"provenance":null,"installScripts":[],"installScriptsTotal":null,"vulnerabilities":[],"vulnerabilitiesTotal":null,"dependencies":null},"mismatches":[],"changelog":{"trackingSince":"2026-10-30","recent":[{"id":"chg_01a199a0-374a-7e84-b251-97d64baa0468","kind":"check.unverifiable","summary":"Stability (0.07 → unverified)","materiality":"security","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/io-usefulapi-jackrabbit-class/jackrabbit-class#chg-chg_01a199a0-374a-7e84-b251-97d64baa0468"},{"id":"chg_01a199a0-374c-78f4-8e0f-259dc3d9bb0a","kind":"check.unverifiable","summary":"Tool safety (pass → unverified)","materiality":"security","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/io-usefulapi-jackrabbit-class/jackrabbit-class#chg-chg_01a199a0-374c-78f4-8e0f-259dc3d9bb0a"},{"id":"chg_01a199a0-374d-706c-bcbd-0bd4b0e38e0e","kind":"check.unverifiable","summary":"Authorization (pass → unverified)","materiality":"security","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/io-usefulapi-jackrabbit-class/jackrabbit-class#chg-chg_01a199a0-374d-706c-bcbd-0bd4b0e38e0e"},{"id":"chg_01a199a0-374d-7c0f-95c9-126b0b417928","kind":"check.unverifiable","summary":"Schema quality (100 → unverified)","materiality":"functional","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/io-usefulapi-jackrabbit-class/jackrabbit-class#chg-chg_01a199a0-374d-7c0f-95c9-126b0b417928"},{"id":"chg_01a199a0-374e-7add-a3f0-cd12f707d577","kind":"check.unverifiable","summary":"Capabilities (pass → unverified)","materiality":"functional","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/io-usefulapi-jackrabbit-class/jackrabbit-class#chg-chg_01a199a0-374e-7add-a3f0-cd12f707d577"},{"id":"chg_01a199a0-374f-7755-a691-fdbcbb340980","kind":"check.unverifiable","summary":"Tool coverage (100 → unverified)","materiality":"functional","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/io-usefulapi-jackrabbit-class/jackrabbit-class#chg-chg_01a199a0-374f-7755-a691-fdbcbb340980"},{"id":"chg_01a199a0-3750-72e3-adff-69a77cf0ecdf","kind":"capture.status_changed","summary":"Endpoint reachability (reachable → not serving MCP)","materiality":"security","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/io-usefulapi-jackrabbit-class/jackrabbit-class#chg-chg_01a199a0-3750-72e3-adff-69a77cf0ecdf"},{"id":"chg_01a199a0-3750-79a6-8407-5b0a72d9bc21","kind":"score.total_changed","summary":"Trust score (66 → 18)","materiality":"functional","direction":"regression","scoreDelta":-48,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/io-usefulapi-jackrabbit-class/jackrabbit-class#chg-chg_01a199a0-3750-79a6-8407-5b0a72d9bc21"},{"id":"chg_01a1947e-01db-75e6-8641-cdf67baacabe","kind":"score.total_changed","summary":"Trust score (65 → 66)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-11-01","url":"https://verifymcp.io/servers/io-usefulapi-jackrabbit-class/jackrabbit-class#chg-chg_01a1947e-01db-75e6-8641-cdf67baacabe"},{"id":"chg_01a193ff-1eb3-7ec2-9849-2e94ac1bc850","kind":"check.verdict","summary":"Authorization (partial → pass)","materiality":"security","direction":"improvement","scoreDelta":null,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/io-usefulapi-jackrabbit-class/jackrabbit-class#chg-chg_01a193ff-1eb3-7ec2-9849-2e94ac1bc850"},{"id":"chg_01a193ff-1eb4-7b37-97a5-774487aa1d4a","kind":"check.verdict","summary":"MCP protocol (fail → pass)","materiality":"functional","direction":"improvement","scoreDelta":null,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/io-usefulapi-jackrabbit-class/jackrabbit-class#chg-chg_01a193ff-1eb4-7b37-97a5-774487aa1d4a"},{"id":"chg_01a193ff-1eb5-719e-957f-973c8c3adf49","kind":"prompt.added","summary":"New prompt “add_an_existing_student_to_a_waitlist”","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/io-usefulapi-jackrabbit-class/jackrabbit-class#chg-chg_01a193ff-1eb5-719e-957f-973c8c3adf49"},{"id":"chg_01a193ff-1eb5-77fd-99c5-a9a515cb3c0a","kind":"prompt.added","summary":"New prompt “find_classes_with_openings”","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/io-usefulapi-jackrabbit-class/jackrabbit-class#chg-chg_01a193ff-1eb5-77fd-99c5-a9a515cb3c0a"},{"id":"chg_01a193ff-1eb5-7cdb-b3f2-7652599464b8","kind":"prompt.added","summary":"New prompt “inspect_a_student_s_enrollments”","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/io-usefulapi-jackrabbit-class/jackrabbit-class#chg-chg_01a193ff-1eb5-7cdb-b3f2-7652599464b8"},{"id":"chg_01a193ff-1eb6-78cd-b8a3-537b36e1c35b","kind":"prompt.added","summary":"New prompt “look_up_a_family_and_its_contacts”","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/io-usefulapi-jackrabbit-class/jackrabbit-class#chg-chg_01a193ff-1eb6-78cd-b8a3-537b36e1c35b"},{"id":"chg_01a193ff-1eb6-7d92-855f-2b0768f000c0","kind":"prompt.added","summary":"New prompt “review_a_class_roster_and_attendance”","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/io-usefulapi-jackrabbit-class/jackrabbit-class#chg-chg_01a193ff-1eb6-7d92-855f-2b0768f000c0"},{"id":"chg_01a193ff-1eb7-72d1-8fb4-40f326bfbc47","kind":"server.version_changed","summary":"Server version (1.2.0 → 1.4.0)","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/io-usefulapi-jackrabbit-class/jackrabbit-class#chg-chg_01a193ff-1eb7-72d1-8fb4-40f326bfbc47"},{"id":"chg_01a193ff-1eb7-794c-b979-ec32573eeb0f","kind":"protocol.version_changed","summary":"MCP protocol version (2025-06-18 → 2025-11-25)","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/io-usefulapi-jackrabbit-class/jackrabbit-class#chg-chg_01a193ff-1eb7-794c-b979-ec32573eeb0f"},{"id":"chg_01a193ff-1eb7-7ea1-b26e-27ffba6e9977","kind":"score.total_changed","summary":"Trust score (63 → 65)","materiality":"functional","direction":"improvement","scoreDelta":2,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/io-usefulapi-jackrabbit-class/jackrabbit-class#chg-chg_01a193ff-1eb7-7ea1-b26e-27ffba6e9977"},{"id":"chg_01a19322-3e0f-7e2b-ac70-2861714eb6c4","kind":"server.version_changed","summary":"Server version (1.1.0 → 1.2.0)","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/io-usefulapi-jackrabbit-class/jackrabbit-class#chg-chg_01a19322-3e0f-7e2b-ac70-2861714eb6c4"}],"truncated":true,"feedUrl":"https://verifymcp.io/servers/io-usefulapi-jackrabbit-class/jackrabbit-class/changelog.json"},"links":{"html":"https://verifymcp.io/servers/io-usefulapi-jackrabbit-class/jackrabbit-class","markdown":"https://verifymcp.io/servers/io-usefulapi-jackrabbit-class/jackrabbit-class.md","changelogJson":"https://verifymcp.io/servers/io-usefulapi-jackrabbit-class/jackrabbit-class/changelog.json","changelogRss":"https://verifymcp.io/servers/io-usefulapi-jackrabbit-class/jackrabbit-class.xml","external":[{"label":"Remote endpoint","href":"https://jackrabbit-class.usefulapi.io/mcp"},{"label":"Repository","href":"https://github.com/m190/usefulapi-mcp"},{"label":"Website","href":"https://usefulapi.io/jackrabbit-class/"}]}}