tigl-mcp is a lightweight Model Context Protocol server for CPACS-oriented
TiGL workflows. The current implementation focuses on deterministic,
JSON-friendly tooling backed by stubbed CPACS/TiGL behavior so local
development, tests, and docs stay stable without native geometry runtimes.
The project currently provides:
- A FastMCP-powered server with stdio and HTTP-compatible transports
- A curated set of CPACS lifecycle, inspection, export, sampling, and parameter tools
- Pydantic-backed tool validation with structured MCP error payloads
- Deterministic CPACS/TiGL stand-ins for stable local development and CI
Requires Python 3.12+.
python3 -m venv .venv
source .venv/bin/activate
make dev
make test
make ciStart the server over stdio:
tigl-mcp --transport stdioInspect the non-blocking HTTP transport configuration example:
PYTHONPATH=src python3 examples/server/http_launch_config.pyThe examples are deterministic and aligned with the current stub-backed implementation.
- Examples index:
examples/README.md - Tool discovery:
examples/client/tool_discovery.py - Session lifecycle:
examples/cpacs/session_lifecycle.py - Export snapshot:
examples/cpacs/export_snapshot.py
- Docs source:
docs/index.rst - Published docs: https://cmudrc.github.io/tigl-mcp/
Build the docs locally with:
make docs- The default tests and examples target the deterministic stand-ins in
tigl_mcp.cpacs_stubs. - Tool names, schemas, and JSON payload shapes are stable.
- Geometry values are intentionally simplified; they reflect the current stub contract rather than full native TiGL fidelity.
This MCP includes a CPACS adapter (src/tigl_mcp/cpacs_adapter.py) that
bridges TiGL to the shared-CPACS aircraft analysis pipeline.
The adapter reads CPACS geometry (wings, fuselages, profiles) and writes
analysis results — component counts, bounding boxes, and STEP export metadata
— into //analysisResults/tigl.
| Direction | XPath |
|---|---|
| Reads | .//vehicles/aircraft/model, .//vehicles/profiles |
| Writes | .//vehicles/aircraft/model/analysisResults/tigl |
# As part of the full 4-MCP pipeline (with SU2, pyCycle, Mission)
python pipeline/shared_cpacs_orchestrator.py D150_v30.xml --mcps tigl su2 pycycle mission
# TiGL only
python pipeline/shared_cpacs_orchestrator.py D150_v30.xml --mcps tiglSee cmudrc/aircraft-analysis for full pipeline documentation, versioning details, and installation instructions.
| MCP | Repository |
|---|---|
| SU2 (CFD aerodynamics) | cmudrc/su2-mcp |
| pyCycle (engine cycle) | cmudrc/pycycle-mcp |
| Mission (trajectory/fuel) | cmudrc/mission-mcp |
Contribution guidelines live in CONTRIBUTING.md.