This MCP server automates dSPACE SystemDesk through its COM automation interface. It covers the SystemDesk lifecycle, project operations, and AUTOSAR file import/validation.
SystemDesk acts as a strong partner for AI-driven AUTOSAR generation, where AI agents create comprehensive architecture descriptions and SystemDesk ensures correctness, consistency, and compliance through its robust validation capabilities.
- Installed dSPACE SystemDesk with a valid license
- Python 3.10 or newer
uv, the Python package and project manager used to create the environment, install dependencies, and run the server from this checkout. Install it from the official Astral documentation: https://docs.astral.sh/uv/getting-started/installation/- An MCP client (e.g. VS Code, Cursor, Claude Desktop)
- Open the repository/folder.
- Create the project environment and install dependencies from
pyproject.tomlusing the following command:
uv sync-
In your MCP client (e.g. VS Code, Claude Code, Cursor, Claude Desktop), add a new MCP server.
-
Configure it as a stdio MCP server using the following command:
path\to\this\cloned\repo\SystemDeskMCP.cmdFor example, as a
.vscode/mcp.jsonentry:{ "servers": { "SystemDeskMCP": { "type": "stdio", "command": "path\\to\\this\\cloned\\repo\\SystemDeskMCP.cmd", "args": [] } } } -
Reconnect/reload MCP servers in your client.
-
Run a quick check prompt, for example: "Call
start_systemdesk()and report the result."
Recommended flow:
start_systemdesk()create_project(project_path, project_name)or open an existing projectimport_autosar_file(file_path)validate_autosar(output_format="markdown" | "json")close_project(save_project=True)close_systemdesk(save_project=True)
Important:
start_systemdesk()must be called before any other SystemDesk tool.import_autosar_fileonly supports files with the.arxmlextension.- If SystemDesk shows blocking dialogs, startup/COM access may fail transiently.
Create the project environment and install the development dependencies from pyproject.toml using the following command:
uv sync --extra devuv run pytestTo also collect coverage:
uv run pytest --cov=systemdesk_mcpFor an end-to-end smoke test against an existing SystemDesk installation, use the prompt in .github/prompts/smoke-test.prompt.md.
start_systemdesk()get_systemdesk_status()close_systemdesk(save_project=True)create_project(project_path, project_name)close_project(save_project=True)import_autosar_file(file_path)validate_autosar(output_format="markdown" | "json")
Add a new tool by defining a function decorated with @mcp.tool() in src/systemdesk_mcp/server.py:
@mcp.tool()
def my_new_tool(param: str) -> str:
"""Description shown to the MCP client."""
app = _get_app() # retrieve the active COM connection
# ... call app.* COM methods ...
return "result"Use _get_app() to access the live SystemDesk COM object.
win32com is not installed: runuv syncto installpywin32class not registered/invalid class string: check SystemDesk installation/COM registrationblocked/rejected: close open dialogs in SystemDesk and try againaccess denied: start the MCP server with elevated privileges if needed
src/systemdesk_mcp/server.py: MCP server and toolstests/: unit tests and ARXML test fixturespyproject.toml: project metadata and Python dependencies (managed withuv)SystemDeskMCP.cmd: Convenience launcher used by MCP clients.github/prompts/smoke-test.prompt.md: end-to-end smoke test prompt