WebSocket bridge for ITASCA codes (PFC, FLAC3D, ...) - runs inside the product GUI to enable remote simulation control
Project description
itasca-mcp-bridge
Runtime bridge that runs inside an ITASCA product process (PFC, FLAC3D, ...) and exposes the product's Python SDK as a WebSocket API, enabling execution tools for MCP servers such as pfc-mcp.
The bridge is product-neutral: its core mechanisms — console-output capture
via program log, cycle callbacks via itasca.set_callback, and Python
state persistence via python-reset-state — use the shared ITASCA command
language / SDK and have been verified to behave identically on PFC and
FLAC3D.
Quick Start
Run inside the product's Python (GUI IPython console or console CLI):
Install from PyPI
In the product's IPython console:
from pip._internal.cli.main import main as pip_main
pip_main(["install", "--user", "itasca-mcp-bridge"])
import itasca_mcp_bridge
itasca_mcp_bridge.start()
websockets is pulled in automatically with a version matched to the
embedded Python (9.1 for Python 3.6, 16.0 for Python 3.10). If it is
missing or mismatched, install it the same way (pip_main(["install", "--user", "websockets==9.1"]) on Python 3.6, websockets==16.0 on 3.10).
Run from a source checkout
%run C:/path/to/itasca-mcp-bridge/start_bridge.py
Use forward slashes in the path. Do not wrap it in quotes.
Code changes take effect on the next %run, so this is the preferred
workflow during development.
The bridge auto-detects the runtime: a Qt timer in GUI mode, a blocking loop in console mode.
Expected output:
============================================================
Itasca MCP Bridge Server
============================================================
URL: ws://localhost:9001
Log: /your-working-dir/.itasca-mcp-bridge/bridge.log
Callbacks: Interrupt, Executor (registered)
============================================================
Requirements
- An ITASCA product with an embedded Python interpreter.
- Verified: PFC 6.0 / 7.0 / 9.0.
- FLAC3D: the bridge's core SDK/command mechanisms are verified compatible; full end-to-end validation is in progress.
- Python >= 3.6 (PFC 6/7 use Python 3.6; PFC 9 uses Python 3.10).
websockets(==9.1on Python 3.6,==16.0on Python 3.10), installed automatically as a dependency.
Troubleshooting
| Symptom | Fix |
|---|---|
| Server won't start | Re-run the install/start steps in the product's IPython console; check .itasca-mcp-bridge/bridge.log |
websockets version mismatch |
In the product IPython console: from pip._internal.cli.main import main as pip_main; pip_main(["install", "--user", "websockets==16.0"]) (use 9.1 on Python 3.6) |
| Port in use | itasca_mcp_bridge.start(port=9002), then point your MCP client's bridge URL at ws://localhost:9002 |
| Connection failed | Confirm the bridge is running and the port is reachable; see .itasca-mcp-bridge/bridge.log |
| No task execution / MCP cannot connect | If execution tools return ok=false, error.code=bridge_unavailable, error.details.reason=cannot connect to bridge service, confirm itasca_mcp_bridge.start() is running and your MCP client's bridge URL matches |
Relationship to MCP servers
This package is the in-process runtime only. Pair it with an MCP server that speaks its WebSocket protocol — for example pfc-mcp — for full client setup.
License: MIT.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file itasca_mcp_bridge-0.1.1.tar.gz.
File metadata
- Download URL: itasca_mcp_bridge-0.1.1.tar.gz
- Upload date:
- Size: 58.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
23ba047934db0f0760da2999bde1987b406878e141b99d5a7e648f616d2f996e
|
|
| MD5 |
4fe650cc4545d9569f8f7d5c1cce57b9
|
|
| BLAKE2b-256 |
17089afb1d66c2f71a1a0f6c29108be432135103cc6b20a11b6a90222847a480
|
Provenance
The following attestation bundles were made for itasca_mcp_bridge-0.1.1.tar.gz:
Publisher:
publish.yml on yusong652/itasca-mcp-bridge
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
itasca_mcp_bridge-0.1.1.tar.gz -
Subject digest:
23ba047934db0f0760da2999bde1987b406878e141b99d5a7e648f616d2f996e - Sigstore transparency entry: 1592606370
- Sigstore integration time:
-
Permalink:
yusong652/itasca-mcp-bridge@5f4548957b515b59df2d6e2f97ba1bad93babefe -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/yusong652
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@5f4548957b515b59df2d6e2f97ba1bad93babefe -
Trigger Event:
push
-
Statement type:
File details
Details for the file itasca_mcp_bridge-0.1.1-py3-none-any.whl.
File metadata
- Download URL: itasca_mcp_bridge-0.1.1-py3-none-any.whl
- Upload date:
- Size: 57.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
652f146351c198fd9e4c0b3012ad807bbbf4b34690c2cb42bc81e3f3ed150181
|
|
| MD5 |
1ba5841676c85a7a0bd02fd70fa62138
|
|
| BLAKE2b-256 |
92c82aaabab40d6c561863656cd5e44355f00328febdc7dc318ea2f23aa306d7
|
Provenance
The following attestation bundles were made for itasca_mcp_bridge-0.1.1-py3-none-any.whl:
Publisher:
publish.yml on yusong652/itasca-mcp-bridge
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
itasca_mcp_bridge-0.1.1-py3-none-any.whl -
Subject digest:
652f146351c198fd9e4c0b3012ad807bbbf4b34690c2cb42bc81e3f3ed150181 - Sigstore transparency entry: 1592606374
- Sigstore integration time:
-
Permalink:
yusong652/itasca-mcp-bridge@5f4548957b515b59df2d6e2f97ba1bad93babefe -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/yusong652
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@5f4548957b515b59df2d6e2f97ba1bad93babefe -
Trigger Event:
push
-
Statement type: