h5p-mcp
Builds content-only .h5p packages for H5P activities in Moodle, validated against their content types and ready to upload to a Moodle site; uploading itself is handled by the moodle-teacher extension.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@h5p-mcp Build a 5-question multiple choice quiz about photosynthesis as an .h5p file"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
h5p-mcp
Your AI agent writes interactive H5P content, as a package ready to upload. Multiple choice, true/false, fill in the blanks, drag the words, cards, question sets and course presentations, built and checked on your computer.
📖 Documentation · 📖 Documentación en español
h5p-mcp is an MCP server that turns content an AI agent writes (questions and their answers, cards, slides) into an .h5p package on your computer, checked against its content type before it's written, and reads one back to review or reuse it. The packages carry only their content, not H5P's code, so they're small and play on any site that has the content type, such as a Moodle with its H5P activity. It uploads nothing: in Moodle, the moodle-teacher extension does that.
✨ Why h5p-mcp
📦 Packages a site takes. The format Moodle validates and deploys, tried on a real site.
✅ Checked before it's written. A question without its right answer, or a blank without its word, is refused with what to fix.
🔁 Read back. An existing package's content, in the same shape, to review it, change it and build it again.
👀 Reviewed before uploading. A plain preview of the questions, options and cards, without H5P's player.
🪶 Nothing else on your computer. One bundled file run with
npx; no H5P code to install or keep up to date.
Related MCP server: DJAI Tools MCP
🚀 Quick start
With Node.js 20 or later, add it to Claude Code:
claude mcp add h5p-mcp -- npx -y @falkenslab/h5p-mcpThen ask for an activity. Other AI apps, and agents built on agent-kit, are in Getting started.
💬 What you can ask
👩🏫 As a teacher:
"Make me a ten-question quiz on the water cycle, as an H5P package in my Downloads folder."
"Turn these vocabulary pairs into Dialog Cards, in Spanish."
"Read this .h5p and add two harder questions to it."
🧰 What's inside
Area | For example |
🧩 Content types |
|
🛠️ Tools |
|
🌍 Languages | Buttons and messages in the package's language, from each type's own translations (about fifty languages) |
🔌 For agents | The |
The tools reference has every tool with the description the agent reads.
📚 Documentation
Getting started: install it in your AI app.
Building packages: the content types, what is checked, languages and what isn't supported yet.
Tools: every tool, with the description the agent reads.
🛠️ Developing
The design is in .minispec/ and the main decision in ADR-005; CLAUDE.md lists every command. npm run build, npm test and npm run check before every commit. Releases are published to npm by the owner.
Made with 💖 by Falken's Lab Team
Available Tools
4 toolsbuild_h5pBuild an H5P packageA
Build a content-only .h5p package (h5p.json and content/content.json, no libraries) from content written for one of list_h5p_types' types, in the shape its fields give. The content is checked first, with the rules a site applies when it deploys the package (required fields, kinds, limits, the HTML tags each text allows) and the type's own (a multiple choice with a right answer, a blank with its answer…); if anything is wrong nothing is written and the error lists what to fix. Plain text is escaped; where a field takes HTML, simple HTML with its allowed tags may be used. Buttons and messages are filled in the package's language. Writes /.h5p and, unless preview is false, .preview.html next to it: the content as a page to review before uploading. Confirm with the person before overwriting. The package plays only on a site with that type installed at that version; uploading it is another tool's job.
Inputs: type (required), title (required), content (required), destDir (required), +4 more. Returns: path, type, title, preview, +3 more
list_h5p_typesList the H5P content typesARead-only
List the H5P content types this server builds packages for: each one's library and pinned version, what it's for and, for the types that hold others (Question Set, Course Presentation), the types that go inside (parts). Pass type to get its fields: the shape of the content build_h5p takes for it, with each field's kind, whether it's required, its limits, its options and the HTML tags it allows. Buttons and messages aren't listed: build_h5p fills them in the package's language. Images and other media aren't supported yet. Read the fields of each type before writing its content, and of each part you put inside another.
Inputs: type. Returns: types
read_h5pRead an H5P packageARead-only
Read what a local .h5p package holds: its type and version, title, language and its content, in the same shape build_h5p takes, so it can be reviewed, or changed and built again with build_h5p. Packages that bring their libraries are read too (their content only; libraries lists them). supported says whether build_h5p builds this type at this version. Only reads.
Inputs: path (required). Returns: path, type, media, title, +5 more
server_infoServer infoARead-only
Show this server's name, version and data folder, and, for a server that needs programs installed apart, whether they're there. Contains no secrets.
Inputs: no named parameters. Returns: name, node, dataDir, version, +1 more
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 4 tools
Each tool has a clearly distinct role: listing supported H5P types and their field schemas, building a package, reading an existing package, and reporting server metadata. There is no overlapping behavior that would make tool selection ambiguous.
Three core tools follow a clear verb_noun_h5p pattern (list_h5p_types, build_h5p, read_h5p), making their relationship obvious. server_info is a minor deviation, but the overall convention remains readable and predictable.
Four tools are well-scoped for a package builder: schema discovery, build, read, and server metadata. No tool feels redundant, and the surface is compact without being thin.
The core lifecycle of discovering types, building validated packages, and reading packages is covered. Upload/deployment is explicitly out of scope, but the surface otherwise lacks no obvious operation needed for content-only package work.
Maintenance
Related MCP Connectors
Create, edit, translate, and export SCORM eLearning modules from a connected AI assistant.
PDF, image, video, OCR, screenshot, SQL, QR and text tools for agents. No API key, no signup.
PDF and image tools for AI agents: compress, merge, split, OCR, sign. Runs locally, never uploads.
AI-powered LMS course builder: 89 tools, 17 skills, SCORM/xAPI export, agentic UI
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceBuilds SCORM 2004 compliant e-learning courses locally with automated packaging and data privacy.1MIT
- AlicenseAqualityDmaintenanceProvides AI agents with local file-processing capabilities for token counting, RAG chunking, CSV/JSON conversion, QR generation, and more, while keeping documents private on the user's machine.71MIT
- AlicenseAqualityCmaintenanceEnables AI agents to generate and package SCORM 1.2 compliant interactive learning activities (matching and quiz) with a 16:9 responsive player shell, including scoring, timers, lives, and synthesized audio.3MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to read and edit Korean HWP/HWPX documents, including converting Hanyang PUA old-Hangul characters to Unicode jamo, diagnosing unsupported characters, and preserving arae-a, panch'im, yet-ieung, expanded jamo, filler and side dots. Also supports HWPX search-and-replace, template filling, paragraph/table/image/style editing, page rendering to SVG/HTML, and creating new HWPX documents.1MIT