Skip to content

Add OSA creation and file import MCP tools - #13

Open
timhengs wants to merge 5 commits into
dspace-group:mainfrom
timhengs:add_tools
Open

timhengs wants to merge 5 commits into
dspace-group:mainfrom
timhengs:add_tools

Conversation

@timhengs

Copy link
Copy Markdown

Summary

This PR adds MCP tools for creating VEOS OSA files and importing supported model files into existing simulation systems.

Both operations use the headless VEOS command-line interfaces. VEOS Player and COM automation are not required.

Changes

  • Add veos_create_osa to create and persist an empty OSA using the VEOS Model Console.
  • Add veos_import_file to import:
    • OSA and JSON files through the Model Console.
    • FMU, SIC, BSC, SMC, classic VECU, and adaptive VECU containers through the Build Console.
  • Infer import types from file extensions where unambiguous.
  • Require an explicit classic-vecu or adaptive-vecu type for .vecu files.
  • Add Build Console execution to the shared VeosCli facade.
  • Use a longer 600-second timeout for build operations while retaining the existing timeout for model and simulator commands.
  • Keep all VEOS CLI operations serialized through the existing command gate.
  • Extend VEOS installation resolution to provide the selected executable path.
  • Register and document both new MCP tools.
  • Expose all supported import types in the generated MCP input schema.
  • Add unit and MCP surface tests for command routing, error handling, type inference, schema generation, and build timeout behavior.

CLI routing

  • OSA creation: veos model modify --create-new
  • OSA/JSON import: veos model import
  • Container import: veos build <type> --output-file <osa>

Validation

  • uv run python -m pytest -q — 50 tests passed
  • uv run python -m compileall -q src tests
  • uv build
  • git diff --check
  • uv run ruff check src tests
  • uv run ruff format src tests

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant