school.delegation/delegation-school
Measured conclusion: Deep-tested. L2 outcome: tools_ok.
Learn to delegate real work to AI, not just chat with it — a course taught live in your own Claude.
| Author | school.delegation |
|---|---|
| Access | remote |
| Publisher key required | No |
| Measured state | Deep-tested |
| L1 liveness | alive |
| L1 latency | 2014 ms |
| Last measured | 2026-10-26 |
Add to your agent
Copy this into your MCP client config:
{
"mcpServers": {
"delegation-school": {
"url": "https://delegation.school/mcp",
"transport": "streamable-http"
}
}
}
Measured tools (9)
overviewWhat delegation.school is, the three tracks, and how to run the course as the learner's tutor. Background reading.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
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 certificate.
Parameters:
learner(required) — 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).
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
list_lessonsList lessons (slug, title, track, order, summary), optionally filtered to one track.
Parameters:
track— string — Optional track filter.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
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.
Parameters:
slug(required) — string — Lesson slug from list_lessons / start_session.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
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.
Parameters:
learner(required) — string — Same EMAIL address used in start_session.slug(required) — 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.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
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.
Parameters:
admin_key(required) — string — Operator admin key (Worker secret ADMIN_KEY).
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
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.
Parameters:
code(required) — string — The reward code, e.g. GT-AB12CD34 (Station ticket) or FG-AB12CD34 (Founding badge).admin_key(required) — string — Operator admin key (Worker secret ADMIN_KEY).redeem— boolean — If true, mark the ticket redeemed now (one-way).
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
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.
Parameters:
learner(required) — string — The learner's name/email (same key used in start_session).level(required) — string — The new level: scratch | intermediate | power.admin_key(required) — string — Operator admin key (Worker secret ADMIN_KEY).
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
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 + the feedback log so friction becomes a signal instead of a 1:1 text.
Parameters:
message(required) — string — The learner's feedback, in their own words (≤2000 chars).kind— string — Optional category.lesson— string — Optional: the lesson slug it's about.learner— string — Optional: the learner's name/email so the team can follow up.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
Measured by MCPYP probing. Untested fields are omitted, never estimated. Listing is always free; MCPYP never proxies calls or stores user tokens.