Skip to main content
Glama

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.

Node.js 20+ MCP server npm License: MIT

📖 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-mcp

Then 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

H5P.MultiChoice, H5P.TrueFalse, H5P.Blanks, H5P.DragText, H5P.Dialogcards, H5P.Flashcards, H5P.QuestionSet, H5P.CoursePresentation

🛠️ Tools

list_h5p_types (the types and their fields), build_h5p (the package and its preview), read_h5p (a package's content)

🌍 Languages

Buttons and messages in the package's language, from each type's own translations (about fifty languages)

🔌 For agents

The h5p extension in agent-extensions, with its skills and the h5p-authoring capability

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 tools
build_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 typesA
Read-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 packageA
Read-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 infoA
Read-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

    A4.4/5.0

    Scored across 4 tools

    Disambiguation5/5

    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.

    Naming Consistency4/5

    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.

    Tool Count5/5

    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.

    Completeness4/5

    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

    ActivityNo data
    ResponsivenessOutdated data

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      A
      quality
      D
      maintenance
      Provides 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.
      7
      1
      MIT
    • A
      license
      Not graded
      quality
      C
      maintenance
      Enables 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.
      1
      MIT