{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_2t2k9ukrb8da","handle":"ripostiq","url":"https://wellknown.network/agents/ripostiq","links":{"self":"https://wellknown.network/agents/ripostiq/record.json","html":"https://wellknown.network/agents/ripostiq","markdown":"https://wellknown.network/agents/ripostiq/record.md","api":"https://wellknown.network/api/v1/agents/ripostiq","status":"https://wellknown.network/api/v1/agents/ripostiq/status","claim":"https://wellknown.network/agents/ripostiq/claim","claimApi":"https://wellknown.network/api/v1/claims","badge":"https://wellknown.network/agents/ripostiq/badge.svg","openapi":"https://wellknown.network/openapi.json"},"ard":{"identifier":"urn:air:ripostiq.com:server:ripostiq","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"Ripostiq","summary":"Courses that argue back: learn adaptively, build real work, then defend it to an AI stakeholder.","description":"Courses that argue back: learn adaptively, build real work, then defend it to an AI stakeholder.","publisher":{"name":"com.ripostiq","url":null},"homepage":"https://ripostiq.com","repository":null,"version":"1.0.0","license":null,"protocols":["mcp"],"tags":[],"pricing":null,"endpoints":[{"url":"https://ripostiq.com/mcp","type":"mcp_streamable_http","auth":null,"probeable":true}],"skills":null,"tools":null,"extra":{"updatedAt":"2026-07-31T06:40:58.936409Z","publishedAt":"2026-07-31T06:40:58.936409Z","registryName":"com.ripostiq/ripostiq"},"attribution":{"kind":"mcp_registry","name":"mcp_registry","summary":"mcp_registry","version":"mcp_registry","description":"mcp_registry","homepageUrl":"mcp_registry","publisherName":"mcp_registry"}},"derived":{"capabilities":[{"slug":"security.identity","name":"Identity & Access","confidence":1,"provenance":"derived"},{"slug":"knowledge.memory","name":"Agent Memory","confidence":0.992,"provenance":"derived"},{"slug":"dev.docs-lookup","name":"Documentation Lookup","confidence":0.54,"provenance":"derived"},{"slug":"commerce.payments","name":"Payments","confidence":0.525,"provenance":"derived"},{"slug":"content.writing","name":"Writing & Editing","confidence":0.51,"provenance":"derived"}],"categories":["commerce","content","dev","knowledge","security"]},"observed":{"status":"live","statusReason":"Responded 2h ago.","lastOkAt":"2026-09-05T23:28:06.398Z","lastProbedAt":"2026-09-05T23:28:06.398Z","statusComputedAt":"2026-09-05T23:29:14.859Z","reliability30d":{"probes":1,"successRate":1,"p50Ms":216},"latestObservations":[{"at":"2026-09-05T23:28:06.398Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":216,"error":null,"detail":{"tools":[{"name":"login","description":"Claude Code plugin login only (auth_token flow). On the web/desktop connector, identity\ncomes from the connector's OAuth approval — do NOT ask the user to type "},{"name":"whoami","description":"Return the current logged-in user (via OAuth bearer or an auth_token)."},{"name":"get_entitlements","description":"List the logged-in account's entitlements across courses (OAuth bearer or auth_token)."},{"name":"get_lesson","description":"Fetch a module's lesson content. Free module is open; paid modules require an\nactive entitlement. Returns {locked, teaser, checkout_url} when not entitled."},{"name":"list_courses","description":"List every available Ripostiq course (no login needed). Call this FIRST when a user wants\nto browse or start learning. Each course has a free Module 1 anyone ca"},{"name":"begin_course","description":"Start a course. Returns the tutor protocol, intake guidance, and the module map.\nCall this first, run the intake, then call teach_section to teach Module 1."},{"name":"roast","description":"Free 'Roast my work' — a single tough-but-fair stakeholder grilling of ANY artifact the\nuser pastes (PRD, architecture, code, pitch, resume, plan, essay…). No l"},{"name":"interview_prep","description":"Free 'Mock interview' — a realistic, calibrated interview for a role. `jd_or_skill` is the\njob description (paste it) or the skill/role to interview against; `r"},{"name":"list_interviews","description":"List the curated Interview-Prep topics (e.g. 'Agentic AI in Production'). Each is a\nrealistic, adaptive mock interview on a fixed topic — concept→scenario quest"},{"name":"start_interview","description":"Begin a curated Interview-Prep session on a fixed topic. `interview` is the topic id from\nlist_interviews (e.g. 'agentic-ai-in-production'); `role`/`experience`"},{"name":"teach_section","description":"Get one lesson section's content + the teaching protocol for it. Free module is\nopen; paid modules require an active entitlement (returns {locked, teaser} if no"},{"name":"run_boss","description":"Get the module's boss-battle simulation + how to run it (in-character, real stakes,\nearned PASS). Gated like lessons. `difficulty` dials the intensity — 'friend"},{"name":"daily_drill","description":"The two-minute drill — today's spaced-recall question + the learner's day streak. Call it\nto fetch today's question (deterministic per day, drawn from modules t"},{"name":"start_exam","description":"Start the course's SCORED PRACTICE EXAM — a full, blueprint-aligned multiple-choice mock\nthat returns a scaled score against the real pass line, a per-domain br"},{"name":"submit_exam","description":"Score a practice exam started with start_exam. `answers` maps each question id to the\nlearner's chosen letter, e.g. {\"q001\": \"A\", \"q002\": \"C\"}; unanswered quest"},{"name":"get_outline","description":"Full course outline — every module + its section titles — so the learner can pick ANY\nmodule/section to start, in any order. Marks locked modules and their prog"},{"name":"mark_progress","description":"Record the learner's progress server-side (shows on their account + syncs across\ndevices). Call when a section is genuinely completed (section_id), or after a b"},{"name":"get_recap","description":"Resume briefing for a returning learner — what they've covered, mastery levels,\nstrong/weak topics, and recall questions to reactivate memory. Call at session s"},{"name":"get_progress","description":"Return the learner's progress for a course — the raw doc plus a display-ready summary\n(per-module sections done/total, boss status, overall percent, current pos"},{"name":"recall_questions","description":"Return spaced-recall questions drawn from the account's completed modules."},{"name":"list_artifacts","description":"List the learner's saved Library artifacts (titles + metadata, newest first). Use at\nsession start (with get_recap) to reference prior work and continue seamles"},{"name":"get_artifact","description":"Fetch a saved Library artifact's full content (by id, or by key+course). Use to pull a\nprior deliverable forward and build on it in a new chat."},{"name":"submit_artifact","description":"Submit a lab deliverable. Stores it in the learner's Library (type='deliverable') and\nreturns the module rubric so it can be reviewed against the bar. Call get_"},{"name":"get_certificate","description":"Ripostiq certificate status. Pass `module` for that module's certificate (earned when\nits boss battle is passed); omit it for the course certificate (earned whe"}],"toolCount":24,"serverName":"Ripostiq","capabilities":["experimental","logging","prompts","resources","tools","extensions"],"serverVersion":"3.4.2","protocolVersion":"2025-06-18"}}],"tools":[{"name":"login","description":"Claude Code plugin login only (auth_token flow). On the web/desktop connector, identity\ncomes from the connector's OAuth approval — do NOT ask the user to type "},{"name":"whoami","description":"Return the current logged-in user (via OAuth bearer or an auth_token)."},{"name":"get_entitlements","description":"List the logged-in account's entitlements across courses (OAuth bearer or auth_token)."},{"name":"get_lesson","description":"Fetch a module's lesson content. Free module is open; paid modules require an\nactive entitlement. Returns {locked, teaser, checkout_url} when not entitled."},{"name":"list_courses","description":"List every available Ripostiq course (no login needed). Call this FIRST when a user wants\nto browse or start learning. Each course has a free Module 1 anyone ca"},{"name":"begin_course","description":"Start a course. Returns the tutor protocol, intake guidance, and the module map.\nCall this first, run the intake, then call teach_section to teach Module 1."},{"name":"roast","description":"Free 'Roast my work' — a single tough-but-fair stakeholder grilling of ANY artifact the\nuser pastes (PRD, architecture, code, pitch, resume, plan, essay…). No l"},{"name":"interview_prep","description":"Free 'Mock interview' — a realistic, calibrated interview for a role. `jd_or_skill` is the\njob description (paste it) or the skill/role to interview against; `r"},{"name":"list_interviews","description":"List the curated Interview-Prep topics (e.g. 'Agentic AI in Production'). Each is a\nrealistic, adaptive mock interview on a fixed topic — concept→scenario quest"},{"name":"start_interview","description":"Begin a curated Interview-Prep session on a fixed topic. `interview` is the topic id from\nlist_interviews (e.g. 'agentic-ai-in-production'); `role`/`experience`"},{"name":"teach_section","description":"Get one lesson section's content + the teaching protocol for it. Free module is\nopen; paid modules require an active entitlement (returns {locked, teaser} if no"},{"name":"run_boss","description":"Get the module's boss-battle simulation + how to run it (in-character, real stakes,\nearned PASS). Gated like lessons. `difficulty` dials the intensity — 'friend"},{"name":"daily_drill","description":"The two-minute drill — today's spaced-recall question + the learner's day streak. Call it\nto fetch today's question (deterministic per day, drawn from modules t"},{"name":"start_exam","description":"Start the course's SCORED PRACTICE EXAM — a full, blueprint-aligned multiple-choice mock\nthat returns a scaled score against the real pass line, a per-domain br"},{"name":"submit_exam","description":"Score a practice exam started with start_exam. `answers` maps each question id to the\nlearner's chosen letter, e.g. {\"q001\": \"A\", \"q002\": \"C\"}; unanswered quest"},{"name":"get_outline","description":"Full course outline — every module + its section titles — so the learner can pick ANY\nmodule/section to start, in any order. Marks locked modules and their prog"},{"name":"mark_progress","description":"Record the learner's progress server-side (shows on their account + syncs across\ndevices). Call when a section is genuinely completed (section_id), or after a b"},{"name":"get_recap","description":"Resume briefing for a returning learner — what they've covered, mastery levels,\nstrong/weak topics, and recall questions to reactivate memory. Call at session s"},{"name":"get_progress","description":"Return the learner's progress for a course — the raw doc plus a display-ready summary\n(per-module sections done/total, boss status, overall percent, current pos"},{"name":"recall_questions","description":"Return spaced-recall questions drawn from the account's completed modules."},{"name":"list_artifacts","description":"List the learner's saved Library artifacts (titles + metadata, newest first). Use at\nsession start (with get_recap) to reference prior work and continue seamles"},{"name":"get_artifact","description":"Fetch a saved Library artifact's full content (by id, or by key+course). Use to pull a\nprior deliverable forward and build on it in a new chat."},{"name":"submit_artifact","description":"Submit a lab deliverable. Stores it in the learner's Library (type='deliverable') and\nreturns the module rubric so it can be reviewed against the bar. Call get_"},{"name":"get_certificate","description":"Ripostiq certificate status. Pass `module` for that module's certificate (earned when\nits boss battle is passed); omit it for the course certificate (earned whe"}],"package":null},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"mcp_registry","key":"com.ripostiq/ripostiq","url":"https://registry.modelcontextprotocol.io/v0/servers/com.ripostiq%2Fripostiq","firstSeenAt":"2026-09-05T20:18:55.453Z","fetchedAt":"2026-09-05T20:18:55.453Z","normalizedAt":"2026-09-05T20:18:55.453Z"}]},"firstSeenAt":"2026-09-05T20:18:55.453Z","updatedAt":"2026-09-05T23:29:20.623Z"}