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

John Carlson yottzumm at gmail.com
Mon Apr 20 23:19:09 PDT 2026


Great work here, foundational technology is still required, can we use MCP
to debug X3D stylesheets, X3DUOM or schemas?  Can these be broken up into
more manageable, extensible and reusable pieces?  Are they?  Does a
stylesheet MCP exist?  XMLSpy?

Interesting, I didn’t realize lxml came with style sheet processing (XSLT
1.0, sigh), validation and schematron! Reading XML into x3d.py!  That’s
great progress.  Now I can create a typical JSON to DOM converter! That
sounds like a task I could dig into!

On JSON, Is there head metadata or just scene Metadata*?  If someone has a
performant Python JSON schema validator, I’m all ears!  “Validate an X3D
document (XML or JSON) against the XSD schema.”  Frankly, it looks like the
MCP validates JSON surface structure, I’m not seeing a schema validator for
JSON.  Try misspelling “head” or “meta”  and see what happens to your
validation.  I haven’t looked at the whole code base yet.  I need to review
JSON output from x3d.py (recent versions), but…..

It would seem like Saxonica would have an interesting Python stylesheet
solution:

Well, there’s Home Edition under Mozilla Public License!


   - pip install saxonche

https://www.saxonica.com/products/PD12/SaxonC-HE.pdf

This seems like a good solution which protects Web3D Consortium investments.

On the other hand, there’s supply chain risks.

 I am hopeful that converting X3D JSON into X3D DOM or X3D XML with python
will soon be possible!

Collaboration welcome!

John

On Mon, Apr 20, 2026 at 10:58 PM Don Brutzman via x3d-public <
x3d-public at web3d.org> wrote:

> 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
> _______________________________________________
> x3d-public mailing list
> x3d-public at web3d.org
> http://web3d.org/mailman/listinfo/x3d-public_web3d.org
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20260421/8a556e42/attachment-0001.html>


More information about the x3d-public mailing list