[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