Ripostiq
Server Details
Courses that argue back: learn adaptively, build real work, then defend it to an AI stakeholder.
- Status
- Healthy
- Uptime
- 100.0% over the last 24 hours
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 24 tools
Most tools have clearly distinct purposes, but a few overlap or share boundaries: get_lesson vs teach_section (lesson vs section), recall_questions vs daily_drill (both spaced recall), and get_recap vs get_progress (both progress summaries). Descriptions generally help, but these pairs could cause misselection.
The vast majority follow a verb_noun snake_case pattern (get_outline, begin_course, submit_exam, etc.). Minor deviations include daily_drill (adjective_noun), interview_prep (noun_noun), login, roast, and whoami (single words), but the overall style is consistent and readable.
24 tools is on the heavy side (16-25 feels bloated), though the platform spans courses, exams, interviews, artifacts, and user management, so the breadth is defensible. Some tools could be consolidated (e.g., recall_questions and daily_drill), making it feel slightly over-scoped.
Core learner workflows are covered: discover, start, learn, assess, track, and resume. However, descriptions reference missing tools like get_review and save_artifact, creating dead ends. There's also no tool for authoring/managing courses, even though list_courses mentions user-authored courses, leaving notable gaps.
Available Tools
24 toolsbegin_courseBegin courseAInspect
Start a course. Returns the tutor protocol, intake guidance, and the module map. Call this first, run the intake, then call teach_section to teach Module 1.
Inputs: course (required), auth_token. Returns: object
daily_drillTwo-minute daily drillAInspect
The two-minute drill — today's spaced-recall question + the learner's day streak. Call it to fetch today's question (deterministic per day, drawn from modules they've started); after they answer and you reveal it, call again with done=true to log it and bump the streak. A daily habit: one question, two minutes, keep the streak alive.
Inputs: course (required), done, auth_token. Returns: object
get_artifactGet artifactARead-onlyInspect
Fetch a saved Library artifact's full content (by id, or by key+course). Use to pull a prior deliverable forward and build on it in a new chat.
Inputs: key, course, auth_token, artifact_id. Returns: object
get_certificateGet certificateARead-onlyInspect
Ripostiq certificate status. Pass module for that module's certificate (earned when
its boss battle is passed); omit it for the course certificate (earned when EVERY module's
boss is passed). Both are viewable at /certificate and publicly verifiable at /verify/.
Inputs: course (required), module, auth_token. Returns: object
get_entitlementsGet entitlementsARead-onlyInspect
List the logged-in account's entitlements across courses (OAuth bearer or auth_token).
Inputs: auth_token. Returns: object
get_lessonGet lessonARead-onlyInspect
Fetch a module's lesson content. Free module is open; paid modules require an active entitlement. Returns {locked, teaser, checkout_url} when not entitled.
Inputs: course (required), module (required), section, auth_token. Returns: object
get_outlineGet course outlineARead-onlyInspect
Full course outline — every module + its section titles — so the learner can pick ANY module/section to start, in any order. Marks locked modules and their progress.
Inputs: course (required), auth_token. Returns: object
get_progressGet progressARead-onlyInspect
Return the learner's progress for a course — the raw doc plus a display-ready summary (per-module sections done/total, boss status, overall percent, current position), and wind_down coverage (which modules have their cheatsheet + session summary saved).
Inputs: course (required), auth_token. Returns: object
get_recapGet recapARead-onlyInspect
Resume briefing for a returning learner — what they've covered, mastery levels, strong/weak topics, and recall questions to reactivate memory. Call at session start.
Inputs: course (required), auth_token. Returns: object
interview_prepMock interviewAInspect
Free 'Mock interview' — a realistic, calibrated interview for a role. jd_or_skill is the
job description (paste it) or the skill/role to interview against; role and experience
(e.g. 'senior backend engineer', '5 years') calibrate difficulty; focus narrows it (e.g.
'system design'). No login or course needed. Returns the interview protocol + a course
recommendation. Great when someone is prepping for an interview and wants a real grilling.
Inputs: jd_or_skill (required), role, focus, auth_token, +1 more. Returns: object
list_artifactsList libraryARead-onlyInspect
List the learner's saved Library artifacts (titles + metadata, newest first). Use at session start (with get_recap) to reference prior work and continue seamlessly.
Inputs: course (required), type, module, auth_token. Returns: object
list_coursesList coursesARead-onlyInspect
List every available Ripostiq course (no login needed). Call this FIRST when a user wants
to browse or start learning. Each course has a free Module 1 anyone can start immediately via
begin_course(course) → teach_section. Returns the course id to pass to other tools.
For a logged-in learner this also includes courses THEY authored (marked mine, with their
visibility) — offer those alongside the catalog.
Inputs: auth_token. Returns: object
list_interviewsList interview-prep topicsARead-onlyInspect
List the curated Interview-Prep topics (e.g. 'Agentic AI in Production'). Each is a realistic, adaptive mock interview on a fixed topic — concept→scenario question pairs across several areas — that ends in a candid scorecard. No login or course needed. Call this when someone wants to prep for an interview on a topic the catalog covers, then start_interview.
Inputs: no named parameters. Returns: object
loginLog inAInspect
Claude Code plugin login only (auth_token flow). On the web/desktop connector, identity comes from the connector's OAuth approval — do NOT ask the user to type their email/password into the chat; direct them to the connector's 'Log in with Ripostiq' or ripostiq.com instead.
Inputs: email (required), password (required). Returns: object
mark_progressUpdate saved progressAInspect
Record the learner's progress server-side (shows on their account + syncs across devices). Call when a section is genuinely completed (section_id), or after a boss battle (boss='passed'/'failed', boss_attempt=true), or on a lab status change (lab=...).
Inputs: course (required), module (required), lab, boss, +3 more. Returns: object
recall_questionsRecall questionsBRead-onlyInspect
Return spaced-recall questions drawn from the account's completed modules.
Inputs: course (required), auth_token (required), count. Returns: object
roastRoast my workAInspect
Free 'Roast my work' — a single tough-but-fair stakeholder grilling of ANY artifact the
user pastes (PRD, architecture, code, pitch, resume, plan, essay…). No login or course
needed. work is the artifact (or a solid description); kind optionally hints the type
(prd/architecture/code/pitch/strategy/resume/design…) to pick the right persona; focus is
what they most want pushback on. Returns the roast protocol + a course recommendation. Great
as an entry point when someone wants honest, pointed feedback on real work.
Inputs: work (required), kind, focus, auth_token. Returns: object
run_bossRun boss battleAInspect
Get the module's boss-battle simulation + how to run it (in-character, real stakes,
earned PASS). Gated like lessons. difficulty dials the intensity — 'friendly' (supportive
coach), 'standard' (default), or 'brutal' (relentless, skeptical, high bar) — and optional
persona_style sets a flavor (e.g. 'skeptical CTO', 'hostile board member'). The rubric is
unchanged; only how hard the stakeholder presses. Offer the learner the choice first.
Inputs: course (required), module (required), auth_token, difficulty, +1 more. Returns: object
start_examStart practice examAInspect
Start the course's SCORED PRACTICE EXAM — a full, blueprint-aligned multiple-choice mock
that returns a scaled score against the real pass line, a per-domain breakdown, and rationale
for every question. Login + entitlement gated like the paid capstone (returns needs_login /
locked if not). Returns a drawn form of questions WITHOUT the answers (the key is held
server-side); proctor them one at a time, collect the learner's letters, then call
submit_exam(course, answers) to score. Never reveal or answer the questions yourself.
Inputs: course (required), auth_token. Returns: object
start_interviewStart interview prepAInspect
Begin a curated Interview-Prep session on a fixed topic. interview is the topic id from
list_interviews (e.g. 'agentic-ai-in-production'); role/experience calibrate difficulty.
LOGIN REQUIRED (free in the current beta, like a course): if the learner isn't logged in this
returns needs_login — ask them to log in with the connector, don't run the questions. Once
unlocked, returns the question bank + an adaptive protocol (one question at a time across ~4-5
areas, concept then scenario, hint when stuck, scorecard at the end). Save it with
save_interview.
Inputs: interview (required), role, auth_token, experience. Returns: object
submit_artifactSubmit lab deliverableAInspect
Submit a lab deliverable. Stores it in the learner's Library (type='deliverable') and returns the module rubric so it can be reviewed against the bar. Call get_review next. For general note-taking use save_artifact instead.
Inputs: type (required), course (required), module (required), repo_ref, +2 more. Returns: object
submit_examSubmit exam answers and score the attemptAInspect
Score a practice exam started with start_exam. answers maps each question id to the
learner's chosen letter, e.g. {"q001": "A", "q002": "C"}; unanswered questions score as
incorrect. Returns the scaled score, PASS/FAIL vs the pass line, a per-domain breakdown, and
the per-question rationale for review. Deliver it as an honest scorecard and point them to the
weak domains' modules.
Inputs: course (required), answers (required), auth_token. Returns: object
teach_sectionTeach sectionAInspect
Get one lesson section's content + the teaching protocol for it. Free module is open; paid modules require an active entitlement (returns {locked, teaser} if not). Teach it socratically, then call again with section_index+1 to advance.
Inputs: course (required), module (required), auth_token, section_index. Returns: object
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
Related MCP Connectors
AI PhD office hours: a graded curriculum you run in your own AI. Not a university, not accredited.
Learn to delegate real work to AI, not just chat with it — a course taught live in your own Claude.
Open-source AI courses taught by your AI tutor in conversation, with progress saved by MCP tools.
Course authoring for AI agents: write from Sapiens' personalized briefs; export and send to Kindle.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI-assisted learning through structured courses with Socratic guidance, evaluating user answers against rubrics and managing learning progress locally.Apache 2.0
- FlicenseAqualityDmaintenanceEnables structured learning with a verified loop: define goals as observable claims, learn through teach-lab-test-gate per claim, and get independently graded by an adversarial examiner to ensure genuine progress.6-
- AlicenseAqualityBmaintenanceEnables AI tutors to maintain durable, local-first learning state by modeling goals as prerequisite-aware knowledge trees, reusable concepts, and evidence-gated mastery.10Apache 2.0
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to act as apprentices that learn from users through the apprentice effect and spaced repetition, helping users solidify knowledge by teaching.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.