Delegation School vs Charming — MCP Server Comparison | AllMCPs
Side-by-Side Model Context Protocol Comparison
Delegation School vs Charming
In-depth architectural comparison of the Delegation School and Charming MCP servers. Compare execution transports, security boundaries, tool capabilities, quality scores, and ready-to-paste client installation snippets for Claude, Cursor, Windsurf, and VS Code.
At a Glance & Executive Verdict
Delegation School
Developer Tools · Remote HTTP/SSE
Quality: 55/100 (Good) | Auth: No auth required
Charming
Developer Tools · Local stdio
Quality: 52/100 (Good) | Auth: No auth required
Verdict Summary: Choose Delegation School if you need specialized Developer Tools tools running via a hosted cloud SSE transport. Choose Charming if your workspace requires Developer Tools integration with local subprocess execution. Both servers can be configured concurrently in your client's mcpServers manifest.
Which MCP Server Should You Choose?
D
Choose Delegation School when:
You need dedicated capabilities in the Developer Tools domain.
You prefer remote streaming HTTP/SSE transport architecture.
Your security boundary fits: No auth required (Free / Open Source).
What delegation.school is, the three tracks, and how to run the course as the learner's tutor. Background reading.
start_session
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 certificate.
list_lessons
List lessons (slug, title, track, order, summary), optionally filtered to one track.
get_lesson
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.
complete_lesson
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.
Ready-to-Paste Client Configurations
Paste either (or both) of these JSON server blocks into your client config file (e.g. claude_desktop_config.json or ~/.cursor/mcp.json).
Delegation School is categorized under Developer Tools and uses a remote streaming HTTP/SSE transport. In contrast, Charming belongs to Developer Tools using local stdio subprocess. Select Delegation School when you need capabilities focused on developer tools and Charming when you require tools for developer tools.
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.
verify_ticket
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.
set_level
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.
submit_feedback
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 + the feedback log so friction becomes a signal instead of a 1:1 text.
Charming Tools (24)
create_app
Store an agent-authored module (a `manifest` plus `routes`) with optional UI and CSS, and render it inline. Requires a `description`. Give the user the returned token-free `shareUrl`, never the machine-only `url`.
update_app
Edit an existing app by replacing its module/UI/styles/description or applying exact-string edits, with optimistic-concurrency versioning.
get_app
Render an existing app inline (where the client supports it) and return its callable API operations and metadata.
get_app_source
Return the persisted module, UI, and styles for an existing app plus its current version.
list_apps
List the caller's apps plus apps shared with them, newest first, with each app's role, description, and capabilities.
delete_app
Permanently delete an app you own. Irreversible and confirmation-gated: it fails closed until re-invoked with `confirm: true`. Pass `purge_storage: true` to also wipe stored state.
upload_asset
Store a static asset (image, PDF, dataset) so app code stays small; readable back same-origin.
rename_app
Change an app's URL slug. The old URL keeps working by redirecting.
set_remixable
Mark an app remixable so visitors get their own editable copy.