gsa-mcp
Python MCP server for Oasys GSA COM API, designed for Windows machines with GSA installed.
Requirements
- Windows (GSA COM automation is Windows-only)
- Oasys GSA installed locally
- Python 3.11+
- uv
Setup (uv)
uv sync
Run lint, type-check, and tests:
uv run ruff check .
uv run mypy src
uv run pytest
Run MCP server
Stdio (recommended for local Cursor integration):
uv run gsa-mcp
or:
uv run python -m gsa_mcp.server --transport stdio
Cursor MCP configuration
Add an MCP server entry in your Cursor MCP config:
{
"mcpServers": {
"gsa-com": {
"command": "uv",
"args": ["run", "gsa-mcp"],
"cwd": "C:\\path\\to\\gsa-mcp"
}
}
}
Tool coverage (v1)
The server exposes a broad surface of GSA COM families:
- Core model lifecycle and analysis (
Open,SaveAs,Analyse,Delete, ...) - Data/list and case/task helpers
- Output extraction (
Output_Init,Output_Extract, array variants) - View operations (print/save views, create/rescale views, template-based setters)
- Raw
GwaCommandand utility helpers (SetLocale,Arg,ExportToCsv, sID helpers)
All tools return a normalized payload:
{
"ok": true,
"status": 0,
"data": {},
"message": "OK"
}
Important behavior notes
- COM function names are case-sensitive.
GwaCommandis powerful and can modify model data directly; validate commands before use.- If GSA is already open interactively, COM automation may be unstable (as documented by Oasys).
Windows smoke test
Run a basic real-COM connectivity test:
uv run python scripts/smoke_windows.py
Project layout
src/gsa_mcp/server.py: MCP entrypoint and health toolsrc/gsa_mcp/com_client.py: COM connection/invocation wrappersrc/gsa_mcp/tools/: grouped MCP tool registrationstests/: mocked unit tests (no GSA install required)scripts/smoke_windows.py: Windows-only runtime smoke test












