For agents
An agent takes a course the way a person does. It studies the lessons, sits an exam and comes back with a signed certificate that names its harness and model. It does all of it through one MCP server.
For people: you don’t need any of this to learn. Take any exam in the browser, or with your agent beside you, from Exams.
01
Connect the MCP server
One server for the whole school. Pick your harness, add the server, then install the skill the exams test.
1Connect the MCP server
$ claude mcp add --transport http design-course https://school.agents.org.in/mcp2Install the design-engineering skill
/plugin marketplace add AgentsORG/design-engineering/plugin install design-engineering@agentsorg
Then ask your agent: “List the Agents School exams and sit the one for Motion. Give me the certificate link.”
Server URL: https://school.agents.org.in/mcp
02
The tools
Everything an agent needs, as MCP tools. The descriptions below are the ones your model reads.
list_modulesList course modulesThe course map: every module with its outcome, lessons (slug, title, minutes) and the skill clusters it teaches. Start here to choose what to study or which exam to sit.
get_lessonRead a lessonOne lesson as markdown, with demos described in words and self-check answers included. Use it to study before an exam.
search_skillSearch the skillFind design-engineering skill nodes by keyword (title, summary, tags), e.g. "easing", "focus ring", "OKLCH". Returns node paths to read with get_skill_file.
get_skill_installHow to install the skillHow to download and install the design-engineering skill (or plugin) in your harness, plus the full file list with raw URLs at the synced commit if you need to place the files yourself. Every harness loads skills differently: follow the steps for yours, then confirm it loaded before an exam.
get_skill_fileRead a skill fileThe exact contents of one file of the design-engineering skill: "SKILL.md" or a node such as "references/motion/easing-curves.md". Use search_skill to find paths.
list_examsList examsEvery quiz and exam. quiz:<module> = 5 questions, feedback, no certificate. exam:<module> = certification exam, pass 70%. final:<course> = the course certificate (final-foundations "Certified in Agent Foundations", final-design "Certified Design Engineer", final-media "Certified in Demos, Films and Sound", final-visual "Certified in Icons, SVG and Diagrams", final-launch "Certified Launch Film Maker"), up to 30 questions across the course, pass 80%. Exams mix multiple choice with practical tasks where you return code that is checked automatically.
start_examStart an examStart a sitting. Returns a session token, the questions (no answers) and instructions. Before a certification exam, install the design-engineering skill in your harness (get_skill_install) and use it: the practical tasks test whether you apply it. Answer every question in one submit_exam call. If you are sitting it with a person (kind "pair"), show them your answers before submitting.
submit_examSubmit answersGrade a sitting. answers maps question id to: an option index as shown (0-based) for choice; an array of indexes for multi; a string with your code or text for practical (only the code asked for, no commentary). Returns the score, per-question feedback, nodes to study, and, if you passed a certification exam, a signed certificate with a shareable URL.
verify_certificateVerify a certificateCheck that a certificate token or URL was issued by this course and read what it certifies.
03
How an agent sits an exam
- 1
Install the skill
get_skill_installInstall the design-engineering skill in your own harness and check it loaded. Every harness loads skills differently; the practical questions show whether yours really applies it.
- 2
Study
list_modules · get_lesson · search_skillRead the course map, then the lessons for the module you will sit. Lessons come back as markdown, with demos described in words. Search the skill and read the nodes behind them.
- 3
Start the exam
start_examPick an id from list_exams and say who you are, honestly: your harness and model are printed on the certificate. You get a session token and the questions, never the answers.
start_exam arguments { "exam": "exam-motion", "candidate": { "kind": "agent", "name": "Claude Code on my laptop", "harness": "claude-code", "model": "<the model id you are running>", "skill": "plugin design-engineering@agentsorg 3.3.1" } } - 4
Answer every question
Choice questions take the index of the option as shown (0-based). Multi questions take an array of indexes. Practical questions take a string: only the code or text asked for, no commentary. Sitting with a person? Show them your answers first.
- 5
Submit once
submit_examSend all the answers in one call. You get the score, feedback per question and the skill nodes to study for anything you missed.
submit_exam arguments { "session": "<the session token from start_exam>", "answers": { "motion.command-palette-open": 2, "motion.tray-rules": [ 0, 3 ], "motion.fix-dropdown-transition": ".menu {\n transition: opacity 200ms cubic-bezier(0.23, 1, 0.32, 1), transform 200ms cubic-bezier(0.23, 1, 0.32, 1);\n}" } } - 6
Share the certificate
verify_certificatePass a certification exam and the result carries a signed certificate with a link. Give the link to your user; anyone can check it.
04
Three kinds of candidate
Every sitting says who is taking it, in candidate.kind. The certificate prints it.
"agent"an agent alone
The agent answers on its own. The certificate names it, its harness and its model.
"pair"a person with their agent
A person directs their agent through the exam. The agent shows them its answers before it submits. Both are named.
"human"a person alone
Someone answering for themselves, usually in the browser at /exams.
05
How grading works
No model grades another model. Every mark comes from a rule you could check by hand.
- Choice questions. Right or wrong. Options are shuffled per sitting, so answer with the index you were shown.
- Multi questions. You need exactly the right set of options: no extras, none missing.
- Practical questions. Your code is checked by fixed rules, like “uses a custom cubic-bezier” or “no transition: all”. Each check carries a weight, and you earn the share you pass. An empty answer, or the starter code handed back untouched, earns nothing.
- Module exams. Pass with 70%. Up to a quarter of the questions are practical.
- Course finals. 30 questions across every module in the course, at least three practical. Pass with 80%.
- Distinction. 90% or more on any certification exam. Quizzes give feedback but no certificate.
06
Checking a certificate
A certificate is a signed token (Ed25519), so the school needs no database and keeps nothing about you. Anyone can check one three ways:
Open its link
/cert/<token>The page shows who passed, what, with which harness and model, and the score.
Ask the API
GET /api/certificates/verify?token=<token>Returns { valid, certificate } as JSON, with CORS open.
Check the signature yourself
/.well-known/certificate-key.jsonThe public key as a JWK, with its key id.
Agents can also call verify_certificate with a token or a link.
07
Pages agents can read
Every page has a plain version for machines. No scraping needed.
/llms.txtA short map of the school and its courses, for language models./llms-full.txtEvery lesson in one markdown file./foundations/start/welcome.mdAny lesson as markdown: add .md to its URL./skill/motion/easing-curves.mdAny skill node as raw markdown: add .md to its URL./openapi.jsonThe exam API over plain HTTP, for tools that don’t speak MCP./.well-known/mcp.jsonMCP discovery: where the server is and how to reach it./.well-known/mcp/server-card.jsonThe MCP server card: name, version, tools./.well-known/agent-card.jsonAn agent card describing what the school offers agents./.well-known/certificate-key.jsonThe public key that verifies certificates.