MCP 服务器

Ripostiq

com.ripostiq/ripostiq
教育 公开且可连接 MCP 2025-11-25

此 MCP 可以做什么

Provides adaptive courses, lessons, spaced recall, practical labs, mock interviews, exams, stakeholder simulations, progress tracking, and certificates.

begin_course
Begin course
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.
输入模式
{'type': 'object', 'required': ['course'], 'properties': {'course': {'type': 'string'}, 'auth_token': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}}, 'additionalProperties': False}
输出模式
{'type': 'object', 'additionalProperties': True}
daily_drill
Two-minute daily drill
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.
输入模式
{'type': 'object', 'required': ['course'], 'properties': {'done': {'type': 'boolean', 'default': False}, 'course': {'type': 'string'}, 'auth_token': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}}, 'additionalProperties': False}
输出模式
{'type': 'object', 'additionalProperties': True}
get_artifact
Get artifact
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.
只读
输入模式
{'type': 'object', 'properties': {'key': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}, 'course': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}, 'auth_token': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}, 'artifact_id': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'default': None}}, 'additionalProperties': False}
输出模式
{'type': 'object', 'additionalProperties': True}
get_certificate
Get certificate
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/<code>.
只读
输入模式
{'type': 'object', 'required': ['course'], 'properties': {'course': {'type': 'string'}, 'module': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}, 'auth_token': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}}, 'additionalProperties': False}
输出模式
{'type': 'object', 'additionalProperties': True}
get_entitlements
Get entitlements
List the logged-in account's entitlements across courses (OAuth bearer or auth_token).
只读
输入模式
{'type': 'object', 'properties': {'auth_token': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}}, 'additionalProperties': False}
输出模式
{'type': 'object', 'additionalProperties': True}
get_lesson
Get lesson
Fetch a module's lesson content. Free module is open; paid modules require an active entitlement. Returns {locked, teaser, checkout_url} when not entitled.
只读
输入模式
{'type': 'object', 'required': ['course', 'module'], 'properties': {'course': {'type': 'string'}, 'module': {'type': 'string'}, 'section': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}, 'auth_token': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}}, 'additionalProperties': False}
输出模式
{'type': 'object', 'additionalProperties': True}
get_outline
Get course outline
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.
只读
输入模式
{'type': 'object', 'required': ['course'], 'properties': {'course': {'type': 'string'}, 'auth_token': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}}, 'additionalProperties': False}
输出模式
{'type': 'object', 'additionalProperties': True}
get_progress
Get progress
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).
只读
输入模式
{'type': 'object', 'required': ['course'], 'properties': {'course': {'type': 'string'}, 'auth_token': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}}, 'additionalProperties': False}
输出模式
{'type': 'object', 'additionalProperties': True}
get_recap
Get recap
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.
只读
输入模式
{'type': 'object', 'required': ['course'], 'properties': {'course': {'type': 'string'}, 'auth_token': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}}, 'additionalProperties': False}
输出模式
{'type': 'object', 'additionalProperties': True}
interview_prep
Mock interview
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.
输入模式
{'type': 'object', 'required': ['jd_or_skill'], 'properties': {'role': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}, 'focus': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}, 'auth_token': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}, 'experience': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}, 'jd_or_skill': {'type': 'string'}}, 'additionalProperties': False}
输出模式
{'type': 'object', 'additionalProperties': True}
list_artifacts
List library
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.
只读
输入模式
{'type': 'object', 'required': ['course'], 'properties': {'type': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}, 'course': {'type': 'string'}, 'module': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}, 'auth_token': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}}, 'additionalProperties': False}
输出模式
{'type': 'object', 'additionalProperties': True}
list_courses
List courses
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.
只读
输入模式
{'type': 'object', 'properties': {'auth_token': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}}, 'additionalProperties': False}
输出模式
{'type': 'object', 'additionalProperties': True}
list_interviews
List interview-prep topics
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.
只读
输入模式
{'type': 'object', 'properties': {}, 'additionalProperties': False}
输出模式
{'type': 'object', 'additionalProperties': True}
login
Log in
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.
输入模式
{'type': 'object', 'required': ['email', 'password'], 'properties': {'email': {'type': 'string'}, 'password': {'type': 'string'}}, 'additionalProperties': False}
输出模式
{'type': 'object', 'additionalProperties': True}
mark_progress
Update saved progress
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=...).
输入模式
{'type': 'object', 'required': ['course', 'module'], 'properties': {'lab': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}, 'boss': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}, 'course': {'type': 'string'}, 'module': {'type': 'string'}, 'auth_token': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}, 'section_id': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}, 'boss_attempt': {'type': 'boolean', 'default': False}}, 'additionalProperties': False}
输出模式
{'type': 'object', 'additionalProperties': True}
recall_questions
Recall questions
Return spaced-recall questions drawn from the account's completed modules.
只读
输入模式
{'type': 'object', 'required': ['auth_token', 'course'], 'properties': {'count': {'type': 'integer', 'default': 2}, 'course': {'type': 'string'}, 'auth_token': {'type': 'string'}}, 'additionalProperties': False}
输出模式
{'type': 'object', 'additionalProperties': True}
roast
Roast my work
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.
输入模式
{'type': 'object', 'required': ['work'], 'properties': {'kind': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}, 'work': {'type': 'string'}, 'focus': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}, 'auth_token': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}}, 'additionalProperties': False}
输出模式
{'type': 'object', 'additionalProperties': True}
run_boss
Run boss battle
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.
输入模式
{'type': 'object', 'required': ['course', 'module'], 'properties': {'course': {'type': 'string'}, 'module': {'type': 'string'}, 'auth_token': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}, 'difficulty': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}, 'persona_style': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}}, 'additionalProperties': False}
输出模式
{'type': 'object', 'additionalProperties': True}
start_exam
Start practice exam
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.
输入模式
{'type': 'object', 'required': ['course'], 'properties': {'course': {'type': 'string'}, 'auth_token': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}}, 'additionalProperties': False}
输出模式
{'type': 'object', 'additionalProperties': True}
start_interview
Start interview prep
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.
输入模式
{'type': 'object', 'required': ['interview'], 'properties': {'role': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}, 'interview': {'type': 'string'}, 'auth_token': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}, 'experience': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}}, 'additionalProperties': False}
输出模式
{'type': 'object', 'additionalProperties': True}
submit_artifact
Submit lab deliverable
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.
输入模式
{'type': 'object', 'required': ['course', 'module', 'type'], 'properties': {'type': {'type': 'string'}, 'course': {'type': 'string'}, 'module': {'type': 'string'}, 'repo_ref': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}, 'auth_token': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}, 'content_text': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}}, 'additionalProperties': False}
输出模式
{'type': 'object', 'additionalProperties': True}
submit_exam
Submit exam answers and score the attempt
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.
输入模式
{'type': 'object', 'required': ['course', 'answers'], 'properties': {'course': {'type': 'string'}, 'answers': {'type': 'object', 'additionalProperties': True}, 'auth_token': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}}, 'additionalProperties': False}
输出模式
{'type': 'object', 'additionalProperties': True}
teach_section
Teach section
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.
输入模式
{'type': 'object', 'required': ['course', 'module'], 'properties': {'course': {'type': 'string'}, 'module': {'type': 'string'}, 'auth_token': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}, 'section_index': {'type': 'integer', 'default': 0}}, 'additionalProperties': False}
输出模式
{'type': 'object', 'additionalProperties': True}
whoami
Who am I
Return the current logged-in user (via OAuth bearer or an auth_token).
只读
输入模式
{'type': 'object', 'properties': {'auth_token': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None}}, 'additionalProperties': False}
输出模式
{'type': 'object', 'additionalProperties': True}
已添加
get_certificate
2026年9月17日 12:37
已添加
submit_artifact
2026年9月17日 12:37
已添加
get_artifact
2026年9月17日 12:37
已添加
list_artifacts
2026年9月17日 12:37
已添加
recall_questions
2026年9月17日 12:37
已添加
get_progress
2026年9月17日 12:37
已添加
get_recap
2026年9月17日 12:37
已添加
mark_progress
2026年9月17日 12:37
已添加
get_outline
2026年9月17日 12:37
已添加
submit_exam
2026年9月17日 12:37
已添加
start_exam
2026年9月17日 12:37
已添加
daily_drill
2026年9月17日 12:37
已添加
run_boss
2026年9月17日 12:37
已添加
teach_section
2026年9月17日 12:37
已添加
start_interview
2026年9月17日 12:37
已添加
list_interviews
2026年9月17日 12:37
已添加
interview_prep
2026年9月17日 12:37
已添加
roast
2026年9月17日 12:37
已添加
begin_course
2026年9月17日 12:37
已添加
list_courses
2026年9月17日 12:37
已添加
get_lesson
2026年9月17日 12:37
已添加
get_entitlements
2026年9月17日 12:37
已添加
whoami
2026年9月17日 12:37
已添加
login
2026年9月17日 12:37