Ripostiq

Courses that argue back: learn adaptively, build real work, then defend it to an AI stakeholder.

Sollte ich dies verwenden

Qualität und Sicherheit

B
Qualität der Beschreibung
100%
Vollständigkeit des Schemas
65%
Qualität der Benennung
93%
Risiko der Vergiftung
80%
Übereinstimmung der Berechtigungen
100%
Einhaltung des Protokolls
100%

Befunde (2)

  • HIGHTool poisoning patterns detected
  • MEDIUMTool description contains suspicious base64-like encoded stringin roast

Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.

Kontextkosten

~3,881Tokens (Tool-Definitionen)
~884 BTypische Antwortgröße
Erhebliche Auswirkung auf die Aufmerksamkeit (3.03% von 128k Kontext)

Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.

Installieren

Installation mit einem Klick

Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:

{
  "mcpServers": {
    "ripostiq": {
      "url": "https://ripostiq.com/mcp"
    }
  }
}

Remote-Endpunkte

https://ripostiq.com/mcpstreamable-http

Was es kann

Tool-Inventar

Tools (24)

🟢 Nur lesen🟡 Schreiben🔴 Löschen⚪ Unbekannt
⚪login(email, password)

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.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "email": {
      "type": "string"
    },
    "password": {
      "type": "string"
    }
  },
  "required": [
    "email",
    "password"
  ],
  "additionalProperties": false
}

Ausgabe-Schema

{
  "type": "object",
  "additionalProperties": true
}
🟢whoami(auth_token)

Return the current logged-in user (via OAuth bearer or an auth_token).

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "auth_token": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    }
  },
  "additionalProperties": false
}

Ausgabe-Schema

{
  "type": "object",
  "additionalProperties": true
}
🟢get_entitlements(auth_token)

List the logged-in account's entitlements across courses (OAuth bearer or auth_token).

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "auth_token": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    }
  },
  "additionalProperties": false
}

Ausgabe-Schema

{
  "type": "object",
  "additionalProperties": true
}
🟢get_lesson(course, module, section, auth_token)

Fetch a module's lesson content. Free module is open; paid modules require an active entitlement. Returns {locked, teaser, checkout_url} when not entitled.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "course": {
      "type": "string"
    },
    "module": {
      "type": "string"
    },
    "section": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    },
    "auth_token": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    }
  },
  "required": [
    "course",
    "module"
  ],
  "additionalProperties": false
}

Ausgabe-Schema

{
  "type": "object",
  "additionalProperties": true
}
🟢list_courses(auth_token)

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.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "auth_token": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    }
  },
  "additionalProperties": false
}

Ausgabe-Schema

{
  "type": "object",
  "additionalProperties": true
}
⚪begin_course(course, auth_token)

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.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "course": {
      "type": "string"
    },
    "auth_token": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    }
  },
  "required": [
    "course"
  ],
  "additionalProperties": false
}

Ausgabe-Schema

{
  "type": "object",
  "additionalProperties": true
}
⚪roast(work, kind, focus, auth_token)

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.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "work": {
      "type": "string"
    },
    "kind": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    },
    "focus": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    },
    "auth_token": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    }
  },
  "required": [
    "work"
  ],
  "additionalProperties": false
}

Ausgabe-Schema

{
  "type": "object",
  "additionalProperties": true
}
⚪interview_prep(jd_or_skill, role, experience, focus, auth_token)

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.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "jd_or_skill": {
      "type": "string"
    },
    "role": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    },
    "experience": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    },
    "focus": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    },
    "auth_token": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    }
  },
  "required": [
    "jd_or_skill"
  ],
  "additionalProperties": false
}

Ausgabe-Schema

{
  "type": "object",
  "additionalProperties": true
}
🟢list_interviews

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.

Eingabe-Schema

{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Ausgabe-Schema

{
  "type": "object",
  "additionalProperties": true
}
🟡start_interview(interview, role, experience, auth_token)

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.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "interview": {
      "type": "string"
    },
    "role": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    },
    "experience": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    },
    "auth_token": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    }
  },
  "required": [
    "interview"
  ],
  "additionalProperties": false
}

Ausgabe-Schema

{
  "type": "object",
  "additionalProperties": true
}
🟢teach_section(course, module, section_index, auth_token)

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.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "course": {
      "type": "string"
    },
    "module": {
      "type": "string"
    },
    "section_index": {
      "default": 0,
      "type": "integer"
    },
    "auth_token": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    }
  },
  "required": [
    "course",
    "module"
  ],
  "additionalProperties": false
}

Ausgabe-Schema

{
  "type": "object",
  "additionalProperties": true
}
🟢run_boss(course, module, difficulty, persona_style, auth_token)

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.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "course": {
      "type": "string"
    },
    "module": {
      "type": "string"
    },
    "difficulty": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    },
    "persona_style": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    },
    "auth_token": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    }
  },
  "required": [
    "course",
    "module"
  ],
  "additionalProperties": false
}

Ausgabe-Schema

{
  "type": "object",
  "additionalProperties": true
}
🟢daily_drill(course, done, auth_token)

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.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "course": {
      "type": "string"
    },
    "done": {
      "default": false,
      "type": "boolean"
    },
    "auth_token": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    }
  },
  "required": [
    "course"
  ],
  "additionalProperties": false
}

Ausgabe-Schema

{
  "type": "object",
  "additionalProperties": true
}
🟡start_exam(course, auth_token)

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.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "course": {
      "type": "string"
    },
    "auth_token": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    }
  },
  "required": [
    "course"
  ],
  "additionalProperties": false
}

Ausgabe-Schema

{
  "type": "object",
  "additionalProperties": true
}
🟡submit_exam(course, answers, auth_token)

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.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "course": {
      "type": "string"
    },
    "answers": {
      "additionalProperties": true,
      "type": "object"
    },
    "auth_token": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    }
  },
  "required": [
    "course",
    "answers"
  ],
  "additionalProperties": false
}

Ausgabe-Schema

{
  "type": "object",
  "additionalProperties": true
}
🟢get_outline(course, auth_token)

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.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "course": {
      "type": "string"
    },
    "auth_token": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    }
  },
  "required": [
    "course"
  ],
  "additionalProperties": false
}

Ausgabe-Schema

{
  "type": "object",
  "additionalProperties": true
}
🟡mark_progress(course, module, section_id, boss, boss_attempt, ...)

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=...).

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "course": {
      "type": "string"
    },
    "module": {
      "type": "string"
    },
    "section_id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    },
    "boss": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    },
    "boss_attempt": {
      "default": false,
      "type": "boolean"
    },
    "lab": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    },
    "auth_token": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    }
  },
  "required": [
    "course",
    "module"
  ],
  "additionalProperties": false
}

Ausgabe-Schema

{
  "type": "object",
  "additionalProperties": true
}
🟢get_recap(course, auth_token)

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.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "course": {
      "type": "string"
    },
    "auth_token": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    }
  },
  "required": [
    "course"
  ],
  "additionalProperties": false
}

Ausgabe-Schema

{
  "type": "object",
  "additionalProperties": true
}
🟢get_progress(course, auth_token)

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).

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "course": {
      "type": "string"
    },
    "auth_token": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    }
  },
  "required": [
    "course"
  ],
  "additionalProperties": false
}

Ausgabe-Schema

{
  "type": "object",
  "additionalProperties": true
}
🟢recall_questions(auth_token, course, count)

Return spaced-recall questions drawn from the account's completed modules.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "auth_token": {
      "type": "string"
    },
    "course": {
      "type": "string"
    },
    "count": {
      "default": 2,
      "type": "integer"
    }
  },
  "required": [
    "auth_token",
    "course"
  ],
  "additionalProperties": false
}

Ausgabe-Schema

{
  "type": "object",
  "additionalProperties": true
}
🟢list_artifacts(course, type, module, auth_token)

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.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "course": {
      "type": "string"
    },
    "type": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    },
    "module": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    },
    "auth_token": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    }
  },
  "required": [
    "course"
  ],
  "additionalProperties": false
}

Ausgabe-Schema

{
  "type": "object",
  "additionalProperties": true
}
🟢get_artifact(artifact_id, key, course, auth_token)

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.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "artifact_id": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    },
    "key": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    },
    "course": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    },
    "auth_token": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    }
  },
  "additionalProperties": false
}

Ausgabe-Schema

{
  "type": "object",
  "additionalProperties": true
}
🟡submit_artifact(course, module, type, content_text, repo_ref, ...)

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.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "course": {
      "type": "string"
    },
    "module": {
      "type": "string"
    },
    "type": {
      "type": "string"
    },
    "content_text": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    },
    "repo_ref": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    },
    "auth_token": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    }
  },
  "required": [
    "course",
    "module",
    "type"
  ],
  "additionalProperties": false
}

Ausgabe-Schema

{
  "type": "object",
  "additionalProperties": true
}
🟢get_certificate(course, module, auth_token)

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>.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "course": {
      "type": "string"
    },
    "module": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    },
    "auth_token": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    }
  },
  "required": [
    "course"
  ],
  "additionalProperties": false
}

Ausgabe-Schema

{
  "type": "object",
  "additionalProperties": true
}

Community

Diesen Server bewerten

Nachweis

Aktuelle Beobachtungen

verifiziertVersion nicht aufgezeichnet24 Tools
verifiziertVersion nicht aufgezeichnet24 Tools