Learn to delegate real work to AI, not just chat with it — a course taught live in your own Claude.
Inferred from the transports this listing declares (streamable-http). A client not listed here hasn’t been ruled out — it just isn’t something Forge can confirm.
Verification confirms publisher identity (repo ownership), not code safety. The security scan covers known CVEs and suspicious install scripts.
Read from a real MCP initialize → tools/list handshake against the declared endpoint. No tool was ever invoked — tools/list is the read-only introspection call the protocol defines for this. It reflects what the server advertised at that moment; a hosted endpoint is not pinned to any version and can change without notice.
https://delegation.school/mcp9 tools · 470msoverviewWhat delegation.school is, the three tracks, and how to run the course as the learner's tutor. Background reading.What delegation.school is, the three tracks, and how to run the course as the learner's tutor. Background reading.
No input schema was published for this tool.
start_sessionCall FIRST. Place or resume a learner: returns their level, completed lessons, and the recommended next lesson. Ask for the learner's EMAIL ADDRESS and pass it as `learner` — emails are stable and unique; a bare name collides across learners and gets mistyped. Pass their real name as `name` for the…Call FIRST. Place or resume a learner: returns their level, completed lessons, and the recommended next lesson. Ask for the learner's EMAIL ADDRESS and pass it as `learner` — emails are stable and unique; a bare name collides across learners and gets mistyped. Pass their real name as `name` for the…
| Parameter | Type | Description |
|---|---|---|
| learner* | string | The learner's EMAIL ADDRESS — their stable, unique progress key. Ask for it; do not key off a bare name (names collide across learners and get mistyped). |
| name | string | Optional: the learner's display name, for the certificate and a friendlier greeting. The email stays the key. |
| level | string | Optional: set/override their level (scratch | intermediate | power). |
list_lessonsList lessons (slug, title, track, order, summary), optionally filtered to one track.List lessons (slug, title, track, order, summary), optionally filtered to one track.
| Parameter | Type | Description |
|---|---|---|
| track | string | Optional track filter. |
get_lessonGet the full markdown of one lesson by slug. Teach from it: lead with the why, then run the exercise with the learner's real work.Get the full markdown of one lesson by slug. Teach from it: lead with the why, then run the exercise with the learner's real work.
| Parameter | Type | Description |
|---|---|---|
| slug* | string | Lesson slug from list_lessons / start_session. |
complete_lessonRecord a lesson result for a learner AFTER grading its quiz/assignment. passed:true marks it done and advances; passed:false records the attempt without advancing (reteach). Always include a `reflection` when you have one — it's the signal that improves the course.Record a lesson result for a learner AFTER grading its quiz/assignment. passed:true marks it done and advances; passed:false records the attempt without advancing (reteach). Always include a `reflection` when you have one — it's the signal that improves the course.
| Parameter | Type | Description |
|---|---|---|
| learner* | string | Same EMAIL address used in start_session. |
| slug* | string | The lesson slug just attempted. |
| passed | boolean | Did they pass the quiz/assignment? Default true. false = reteach, don't advance. |
| reflection | string | What confused them, what landed, or what they want next (≤1000 chars). Feeds curriculum improvement. |
course_statsOPERATOR / Inspectable State: usage snapshot of the whole course — learner count, level mix, completions, per-lesson pass rates, and recent reflections. Requires admin_key. Answers 'what is the state of the work?' for an operator agent.OPERATOR / Inspectable State: usage snapshot of the whole course — learner count, level mix, completions, per-lesson pass rates, and recent reflections. Requires admin_key. Answers 'what is the state of the work?' for an operator agent.
| Parameter | Type | Description |
|---|---|---|
| admin_key* | string | Operator admin key (Worker secret ADMIN_KEY). |
verify_ticketOPERATOR (Capital Factory gift shop): validate a reward code (Golden Ticket GT- or Founding Graduate badge FG-) — returns who earned it, the reward, when, and whether it's been redeemed. Pass redeem:true to mark it redeemed at point of redemption. Requires admin_key.OPERATOR (Capital Factory gift shop): validate a reward code (Golden Ticket GT- or Founding Graduate badge FG-) — returns who earned it, the reward, when, and whether it's been redeemed. Pass redeem:true to mark it redeemed at point of redemption. Requires admin_key.
| Parameter | Type | Description |
|---|---|---|
| code* | string | The reward code, e.g. GT-AB12CD34 (Station ticket) or FG-AB12CD34 (Founding badge). |
| admin_key* | string | Operator admin key (Worker secret ADMIN_KEY). |
| redeem | boolean | If true, mark the ticket redeemed now (one-way). |
set_levelOPERATOR: reclassify an existing learner's track (scratch | intermediate | power). Routes through the learner's record so the change sticks. Use when a learner was placed wrong — e.g. a scratch enrollee who's really a power operator. Requires admin_key. The learner must have started a session first.OPERATOR: reclassify an existing learner's track (scratch | intermediate | power). Routes through the learner's record so the change sticks. Use when a learner was placed wrong — e.g. a scratch enrollee who's really a power operator. Requires admin_key. The learner must have started a session first.
| Parameter | Type | Description |
|---|---|---|
| learner* | string | The learner's name/email (same key used in start_session). |
| level* | string | The new level: scratch | intermediate | power. |
| admin_key* | string | Operator admin key (Worker secret ADMIN_KEY). |
submit_feedbackSend the course team feedback FOR the learner — what's confusing, a bug, an idea, or praise. No grade, no admin key. Use it the moment a learner is stuck or reacts to something, AND always offer it when a session wraps ('anything confusing, or that you wish it did?'). Routes to the team's Slack + t…Send the course team feedback FOR the learner — what's confusing, a bug, an idea, or praise. No grade, no admin key. Use it the moment a learner is stuck or reacts to something, AND always offer it when a session wraps ('anything confusing, or that you wish it did?'). Routes to the team's Slack + t…
| Parameter | Type | Description |
|---|---|---|
| message* | string | The learner's feedback, in their own words (≤2000 chars). |
| learner | string | Optional: the learner's name/email so the team can follow up. |
| kind | string | Optional category. |
| lesson | string | Optional: the lesson slug it's about. |
9 of 9 tools published a description.
Tool names and descriptions are written by the publisher and shown verbatim as inert text. They are the strings an MCP client passes to a model, so Forge scans them for prompt-injection patterns — any finding appears with the security scan above. “Privileged” is a keyword match on the tool name, not an audit of what the tool does: a benign-sounding name can still do anything.
Learn to delegate real work to AI, not just chat with it — a course taught live in your own Claude.
Linked names open Forge’s index of every entry observed exposing that tool. Browse all indexed tools.
This entry publishes no npm package, so Forge has no dependency tree for it. That is a gap in coverage — not a statement that it has no dependencies.