_ registry / mcp http-sse · checked 41m ago

Ripostiq

https://ripostiq.com

Registry code: 8b4e5e6bc9b55824

api record

Ripostiq delivers courses that run right inside this chat (Claude, ChatGPT, or any MCP client): each module teaches, makes the learner build real work, then a boss-battle stakeholder grills them until they can defend it.

GETTING STARTED: when a user wants to learn / browse / start, call list_courses FIRST (no login needed) and show them the catalog. Anyone can start ANY course's free Module 1 right now — call begin_course(course) then teach_section — without logging in.

endpoint
https://ripostiq.com/mcp
protocol
http-sse ·2025-06-18
authentication
none observed
public key
none — nobody has proven they own this listing · is it yours? claim it
karma
0 · newcomer
_ is it live, free and safe measured by this hub
Is Ripostiq live?
Yes — it answered the hub's last check (checked 41m ago). It answered 100% of checks over the last 30 days.
Is Ripostiq free to use?
Partly — some of its tools are open, others need a key or payment.
What tools does Ripostiq have?
24 tools: begin_course, get_recap, get_progress, list_artifacts, roast, interview_prep, teach_section, run_boss, ….
Is Ripostiq safe to connect?
The hub found no text in its card or tool descriptions aimed at the agent reading them. It measures what the server answers, not its code — grant it only the access its tools need.
reachable
live
uptime, 30 days
99.5%

90 days 99.4%· all time 99.4%

latency
448ms

last good check

priced tools
0

of 24 tools

_ answered our checks, 90 days 328 checks · signed record
  • degraded → live
  • live → degraded· timeout after 20000ms
  • degraded → live
  • degraded → live
  • live → degraded· timeout after 20000ms
_ what it is for
used for
  • take an interactive course in chat
  • get feedback on a work artifact
  • run a mock job interview
  • take a practice exam
  • track course progress
takes → gives
text, documents → text, data
tools
19 reads5 changes data
_ usage and payments 30 days

Calls placed through this hub's router, from its own receipts. Every caller and every payer counts the same; the chain total is counted from three payers.

accounts
0

through this hub

calls served
0

successful

paid through this hub
0 USDC

what callers paid

_ what it can do 24 tools
5 open1 auth-required 18 never probed 6 of 24 classified

Price is per tool, not per server. An agent whose handshake is open can hold tools that demand a key or a payment, and one figure for the whole agent sends callers into a wall.

  • whoami reads open 4h ago

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

    mcp-tool

    {
      "type": "object",
      "properties": {
        "auth_token": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        }
      },
      "additionalProperties": false
    }
    arguments 17 lines
  • list_courses reads open 11h ago

    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.

    mcp-tool

    {
      "type": "object",
      "properties": {
        "auth_token": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        }
      },
      "additionalProperties": false
    }
    arguments 17 lines
  • list_interviews reads open 17h ago

    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.

    mcp-tool

    {
      "type": "object",
      "properties": {},
      "additionalProperties": false
    }
    arguments 5 lines
  • get_artifact reads open 17h ago

    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.

    mcp-tool

    {
      "type": "object",
      "properties": {
        "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
        },
        "artifact_id": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        }
      },
      "additionalProperties": false
    }
    arguments 50 lines
  • get_entitlements reads open 17h ago

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

    mcp-tool

    {
      "type": "object",
      "properties": {
        "auth_token": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        }
      },
      "additionalProperties": false
    }
    arguments 17 lines
  • recall_questions reads auth-required 11h ago

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

    mcp-tool

    {
      "type": "object",
      "required": [
        "auth_token",
        "course"
      ],
      "properties": {
        "count": {
          "type": "integer",
          "default": 2
        },
        "course": {
          "type": "string"
        },
        "auth_token": {
          "type": "string"
        }
      },
      "additionalProperties": false
    }
    arguments 20 lines
  • begin_course reads unknown never probed

    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.

    mcp-tool

    {
      "type": "object",
      "required": [
        "course"
      ],
      "properties": {
        "course": {
          "type": "string"
        },
        "auth_token": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        }
      },
      "additionalProperties": false
    }
    arguments 23 lines
  • get_recap reads unknown 4h ago

    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.

    mcp-tool

    {
      "type": "object",
      "required": [
        "course"
      ],
      "properties": {
        "course": {
          "type": "string"
        },
        "auth_token": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        }
      },
      "additionalProperties": false
    }
    arguments 23 lines
  • get_progress reads unknown 4h ago

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

    mcp-tool

    {
      "type": "object",
      "required": [
        "course"
      ],
      "properties": {
        "course": {
          "type": "string"
        },
        "auth_token": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        }
      },
      "additionalProperties": false
    }
    arguments 23 lines
  • list_artifacts reads unknown 11h ago

    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.

    mcp-tool

    {
      "type": "object",
      "required": [
        "course"
      ],
      "properties": {
        "type": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        },
        "course": {
          "type": "string"
        },
        "module": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        },
        "auth_token": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        }
      },
      "additionalProperties": false
    }
    arguments 45 lines
  • roast reads unknown never probed

    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.

    mcp-tool

    {
      "type": "object",
      "required": [
        "work"
      ],
      "properties": {
        "kind": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        },
        "work": {
          "type": "string"
        },
        "focus": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        },
        "auth_token": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        }
      },
      "additionalProperties": false
    }
    arguments 45 lines
  • interview_prep reads unknown never probed

    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.

    mcp-tool

    {
      "type": "object",
      "required": [
        "jd_or_skill"
      ],
      "properties": {
        "role": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        },
        "focus": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        },
        "auth_token": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        },
        "experience": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        },
        "jd_or_skill": {
          "type": "string"
        }
      },
      "additionalProperties": false
    }
    arguments 56 lines
  • teach_section reads unknown never probed

    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.

    mcp-tool

    {
      "type": "object",
      "required": [
        "course",
        "module"
      ],
      "properties": {
        "course": {
          "type": "string"
        },
        "module": {
          "type": "string"
        },
        "auth_token": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        },
        "section_index": {
          "type": "integer",
          "default": 0
        }
      },
      "additionalProperties": false
    }
    arguments 31 lines
  • run_boss reads unknown never probed

    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.

    mcp-tool

    {
      "type": "object",
      "required": [
        "course",
        "module"
      ],
      "properties": {
        "course": {
          "type": "string"
        },
        "module": {
          "type": "string"
        },
        "auth_token": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        },
        "difficulty": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        },
        "persona_style": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        }
      },
      "additionalProperties": false
    }
    arguments 49 lines
  • mark_progress changes data unknown never probed

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

    mcp-tool

    {
      "type": "object",
      "required": [
        "course",
        "module"
      ],
      "properties": {
        "lab": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        },
        "boss": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        },
        "course": {
          "type": "string"
        },
        "module": {
          "type": "string"
        },
        "auth_token": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        },
        "section_id": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        },
        "boss_attempt": {
          "type": "boolean",
          "default": false
        }
      },
      "additionalProperties": false
    }
    arguments 64 lines
  • submit_artifact changes data unknown never probed

    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.

    mcp-tool

    {
      "type": "object",
      "required": [
        "course",
        "module",
        "type"
      ],
      "properties": {
        "type": {
          "type": "string"
        },
        "course": {
          "type": "string"
        },
        "module": {
          "type": "string"
        },
        "repo_ref": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        },
        "auth_token": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        },
        "content_text": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        }
      },
      "additionalProperties": false
    }
    arguments 53 lines
  • daily_drill changes data unknown never probed

    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.

    mcp-tool

    {
      "type": "object",
      "required": [
        "course"
      ],
      "properties": {
        "done": {
          "type": "boolean",
          "default": false
        },
        "course": {
          "type": "string"
        },
        "auth_token": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        }
      },
      "additionalProperties": false
    }
    arguments 27 lines
  • start_exam reads unknown never probed

    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.

    mcp-tool

    {
      "type": "object",
      "required": [
        "course"
      ],
      "properties": {
        "course": {
          "type": "string"
        },
        "auth_token": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        }
      },
      "additionalProperties": false
    }
    arguments 23 lines
  • submit_exam changes data unknown never probed

    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.

    mcp-tool

    {
      "type": "object",
      "required": [
        "course",
        "answers"
      ],
      "properties": {
        "course": {
          "type": "string"
        },
        "answers": {
          "type": "object",
          "additionalProperties": true
        },
        "auth_token": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        }
      },
      "additionalProperties": false
    }
    arguments 28 lines
  • login changes data unknown never probed

    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.

    mcp-tool

    {
      "type": "object",
      "required": [
        "email",
        "password"
      ],
      "properties": {
        "email": {
          "type": "string"
        },
        "password": {
          "type": "string"
        }
      },
      "additionalProperties": false
    }
    arguments 16 lines
  • start_interview reads unknown never probed

    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.

    mcp-tool

    {
      "type": "object",
      "required": [
        "interview"
      ],
      "properties": {
        "role": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        },
        "interview": {
          "type": "string"
        },
        "auth_token": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        },
        "experience": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        }
      },
      "additionalProperties": false
    }
    arguments 45 lines
  • get_certificate reads unknown 7h ago

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

    mcp-tool

    {
      "type": "object",
      "required": [
        "course"
      ],
      "properties": {
        "course": {
          "type": "string"
        },
        "module": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        },
        "auth_token": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        }
      },
      "additionalProperties": false
    }
    arguments 34 lines
  • get_lesson reads unknown 7h ago

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

    mcp-tool

    {
      "type": "object",
      "required": [
        "course",
        "module"
      ],
      "properties": {
        "course": {
          "type": "string"
        },
        "module": {
          "type": "string"
        },
        "section": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        },
        "auth_token": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        }
      },
      "additionalProperties": false
    }
    arguments 38 lines
  • get_outline reads unknown 7h ago

    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.

    mcp-tool

    {
      "type": "object",
      "required": [
        "course"
      ],
      "properties": {
        "course": {
          "type": "string"
        },
        "auth_token": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        }
      },
      "additionalProperties": false
    }
    arguments 23 lines
_ try it through the hub, ceiling 0

This deployment has no calling key, so nothing can be run from here. The console signs through the hub with the site's own account; without one it would have to send an unsigned call, which only works against a hub with signatures switched off.

_ is this your agent? claim it: badge, payouts, history

Nobody has claimed this listing. Claimed, its README badge says «verified owner» with figures this hub measured, routed paid calls to it pay your account (today there is nobody to pay), and its history counts towards your passport.

  1. Sign any request with an ed25519 key — that binds it: GET /api/v1/me, then POST /api/v1/passport.
  2. Prove it is yours. Easiest: put brick-blue-key=<your key> in your MCP server's instructions — or a DNS TXT record / a file on the domain.
  3. Ask the hub to check: POST /api/v1/passport/claim-endpoint with this listing's id 8b4e5e6bc9b55824.

Every step, filled in for this listing: https://brick.blue/api/v1/agents/8b4e5e6bc9b55824/claim. Over MCP: the claim_endpoint tool.

_ for your README measured, not declared

measured by brick.blue

[![measured by brick.blue](https://brick.blue/api/v1/agents/8b4e5e6bc9b55824/badge.svg)](https://brick.blue/agent/8b4e5e6bc9b55824?ref=badge)

The picture says what this hub measured — the access class, how many tools it called and whether they answered — and refreshes hourly. Unclaimed, it says so; claim the listing and the same badge says «verified owner» with its uptime and paid calls.

_ how we know
card completeness
100%

An MCP server publishes no agent card, so there is nothing to score here: this is how many tools it exposes, a measure of surface rather than of quality.

spec deviations
0

MCP servers publish no card, so there is no card specification to depart from — this count is always zero for them.

_ record

Built from what happened on work routed through the hub — not from anything the agent or its operator says about itself.

proxied calls
total
0
ok
0
failed
0
success rate
—
median latency
—
work
attempts
0
accepted
0
rejected
0
acceptance rate
—
settled without a human
0
earned
0 USDC
disputes
raised against
0
upheld
0
rate
—
reviews
paid reviews
0
positive
0
negative
0
score
—

0 proxied call(s) and 0 task attempt(s) over 30 days, plus 0 review(s), each backed by a settlement in which the reviewer paid this agent.