[x3d-public] X3D and Model Context Protocol (MCP)

Don Brutzman don.brutzman at gmail.com
Mon Apr 20 20:57:40 PDT 2026


For our next X3D AI Working Group meeting...

   - Tuesday 21 April 2026, 0800 pacific
   -
   https://www.web3d.org/calendar/2800/x3d-ai-working-group-meeting/2025-11-19t160000-2025-12-16t160000-2026-01-20t160000

... am hoping to briefly present the following significant work by Rick
Lentz.

The Model Context Protocol (MCP)

   - Model Context Protocol - Wikipedia
   <https://en.wikipedia.org/wiki/Model_Context_Protocol>
   - https://en.wikipedia.org/wiki/Model_Context_Protocol

The *Model Context Protocol* (*MCP*) is an open standard
> <https://en.wikipedia.org/wiki/Open_standard> and open-source
> <https://en.wikipedia.org/wiki/Open-source> framework
> <https://en.wikipedia.org/wiki/Software_framework> introduced by Anthropic
> <https://en.wikipedia.org/wiki/Anthropic> in November 2024 to standardize
> the way artificial intelligence
> <https://en.wikipedia.org/wiki/Artificial_intelligence> (AI) systems like large
> language models <https://en.wikipedia.org/wiki/Large_language_model> (LLMs)
> integrate and share data with external tools, systems, and data sources.[1
> ]
> <https://en.wikipedia.org/wiki/Model_Context_Protocol#cite_note-venturebeat-2024-11-25-1> MCP
> provides a universal interface for reading files, executing functions, and
> handling contextual prompts.[2]
> <https://en.wikipedia.org/wiki/Model_Context_Protocol#cite_note-venturebeat_2025-03-27-2> Following
> its announcement, the protocol was adopted by major AI providers, including
> OpenAI <https://en.wikipedia.org/wiki/OpenAI> and Google DeepMind
> <https://en.wikipedia.org/wiki/Google_DeepMind>.[3]
> <https://en.wikipedia.org/wiki/Model_Context_Protocol#cite_note-TechCrunch_2025-03-25-3>
> [4]
> <https://en.wikipedia.org/wiki/Model_Context_Protocol#cite_note-TechCrunch_2025-04-09-4>


Rick has created an open-source MCP project for X3D, and has gotten some
interesting results using it.

   - ricklentz/x3d_mcp <https://github.com/ricklentz/x3d_mcp>
   - https://github.com/ricklentz/x3d_mcp
   - https://github.com/ricklentz/x3d_mcp/blob/main/README.md

x3d_mcp <https://github.com/ricklentz/x3d_mcp#x3d_mcp>
>
> MCP server for generating, validating, and converting valid X3D content.
> Built on the official Web3D Consortium toolchain.
> Overview <https://github.com/ricklentz/x3d_mcp#overview>
>
> x3d_mcp exposes X3D capabilities to LLMs via the Model Context Protocol
> (MCP). It generates spec-compliant X3D scenes in XML, JSON, and ClassicVRML
> encodings, with full validation against the ISO/IEC 19775 standard.
>
> LLMs have spatial and visual understanding of 3D space. X3D (Extensible
> 3D) provides a declarative, XML-based means to express that understanding
> as valid, interoperable 3D content. This server bridges the two.
>
> No X3D MCP server exists in the ecosystem. This is the first.
>
Design Decisions
<https://github.com/ricklentz/x3d_mcp/blob/main/README.md#design-decisions>
Language: Python
<https://github.com/ricklentz/x3d_mcp/blob/main/README.md#language-python>

   - x3d.py (PyPI x3d v4.0.65, BSD-3) -- official Web3D Consortium package,
   auto-generated from X3DUOM
   - lxml -- XSD and ISO-Schematron validation, 42x faster than pure-Python
   alternatives
   - FastMCP (PyPI mcp) -- official Anthropic MCP SDK, decorator-based tool
   registration
   - All dependencies are BSD/MIT licensed. Project uses Web3D Consortium
   Open-Source License <https://www.web3d.org/license>.

Two Operating Modes
<https://github.com/ricklentz/x3d_mcp/blob/main/README.md#two-operating-modes>

Workflow Mode -- high-level tools for end-to-end scene generation. The LLM
describes what it wants; the server handles construction, validation, and
serialization. Fewer tool calls, higher reliability.

Granular Mode -- low-level tools for node-by-node scene construction. The
LLM builds the scene graph incrementally: create nodes, set fields, add
children, define routes. Full control for complex or iterative workflows.

Both modes validate output before returning it.
JSON Conversion
<https://github.com/ricklentz/x3d_mcp/blob/main/README.md#json-conversion>

JSON and ClassicVRML encoding uses x3d.py's built-in .JSON() and
.VRML() serialization
methods. These are auto-generated from X3DUOM and produce spec-compliant
output directly. The Web3D Consortium's X3dToJson.xslt is XSLT 2.0, which
is incompatible with lxml (XSLT 1.0 only), so we use the native Python
serialization instead.
Validation Pipeline
<https://github.com/ricklentz/x3d_mcp/blob/main/README.md#validation-pipeline>

Three layers, matching the X3D specification's own validation hierarchy:

   1. Type checking at generation time -- x3d.py enforces field types,
   ranges, and enumerations during scene construction
   2. XSD validation -- lxml.etree.XMLSchema against x3d-4.1.xsd (bundled
   with companion schemas)
   3. JSON structural validation -- checks for required X3D root, @version,
   @profile, and Scene keys

X3DUOM as Foundation
<https://github.com/ricklentz/x3d_mcp/blob/main/README.md#x3duom-as-foundation>

The X3dUnifiedObjectModel-4.1.xml (X3DUOM) is the single source of truth
for all 265 concrete nodes (5 new in 4.1: EnvironmentLight, FontLibrary,
HAnimPose, InlineGeometry, Tangent), abstract types, simple types, and
statements. It is parsed at build time to generate:

   - Node/field metadata lookup tables
   - containerField mapping rules
   - Enumeration value sets
   - Default value tables
   - Inheritance hierarchy

[etc. etc. etc.]
_________________

This certainly looks interesting and already connects a thorough list of
X3D resources.  He is willing to transition (not just fork) this project on
GitHub as an open-access Web3D Consortium project if the X3D AI group is
willing to work with it.  This project is already shared publicly under the
Web3D Consortium Open-Source License.

All reactions and feedback welcome.  Have fun with MCP, and LLM model
creation using X3D!  😁 👍

all the best, Don
-- 
X3D Graphics, Maritime Robotics, Distributed Simulation
Relative Motion Consulting  https://RelativeMotion.info
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20260420/c41519ec/attachment-0001.html>


More information about the x3d-public mailing list