dbt MCP Server
OFFICIAL SERVERdbt Labs' server for running dbt commands, querying metrics and reading project metadata
Connects MCP clients to ITASCA PFC, FLAC, 3DEC, MPoint and MassFlow for docs lookup and live simulation runs
By Yusong Han (individual) Python Local · stdio Developer toolsData and analytics
60 popularity score ★ 227 ↓ 6.1k/mo
Opens the app, which asks before it adds the server.
claude mcp add itasca -- uvx itasca-mcp{
"mcpServers": {
"itasca": {
"command": "uvx",
"args": [
"itasca-mcp"
]
}
}
}{
"mcpServers": {
"itasca": {
"command": "uvx",
"args": [
"itasca-mcp"
]
}
}
}{
"servers": {
"itasca": {
"type": "stdio",
"command": "uvx",
"args": [
"itasca-mcp"
]
}
}
}[mcp_servers.itasca]
command = "uvx"
args = ["itasca-mcp"]gemini mcp add --scope user itasca uvx -- itasca-mcpITASCA_MCP_BRIDGE_URL |
Optional: Address of the bridge running in the engine; --bridge-url and --bridge-port also set it. |
|---|---|
ITASCA_MCP_REQUEST_TIMEOUT_S |
Optional: Timeout for bridge requests in seconds, never below 1. |
ITASCA_MCP_RECONNECT_INTERVAL_S |
Optional: Seconds between bridge reconnect attempts. |
itasca-mcp is a local Python server that ties an MCP client to ITASCA's geomechanics programs: PFC, FLAC/FLAC3D, 3DEC, MPoint and MassFlow. It has two halves.
The documentation half is now two tools. `itasca_browse_doc` walks one of four bundled trees by path (commands, the Python API, FISH intrinsics, or reference pages such as contact models and plot items), and `itasca_query_doc` searches them by keywords, all four at once unless you pick a tree. You choose the engine with the required `software` parameter. The version defaults to 9.0, and older PFC, FLAC and 3DEC docs are there as 6.0 or 7.0. None of this needs a running engine.
The other five tools drive a live engine. They talk over HTTP to a companion package, itasca-mcp-bridge, which you start inside the engine's IPython console (run the repository's addon.py once, then `import itasca_mcp_bridge; itasca_mcp_bridge.start()` in later sessions). With it the assistant can run Python in the engine's interpreter like a console, submit a script file as a background task, poll its output, interrupt it and page through the task history. That history is kept in the engine's working directory, so it survives a GUI restart. Responses can also tell the assistant what you did in the GUI since the last call, such as console input and the plots or data files you opened.
One thing the README leaves out: in the code, `itasca_execute_code` waits 10 seconds by default and accepts at most 20, a cap set to stay under client request timeouts (utils.py). Anything longer has to go through `itasca_execute_task`. The project comes from an independent developer and is not published by ITASCA.
| Runtime | Python 3.10+ |
|---|---|
| Runs on | Windows |
| ITASCA PFC, FLAC, 3DEC, MPoint or MassFlow | Paid planA licensed engine install; 9.0+ recommended, PFC 6.0/7.0, FLAC 7.0 and 3DEC 7.0 also supported |
| Also |
|
For the execution tools, install itasca-mcp-bridge into the engine's embedded Python, either by running the repository's addon.py in the engine GUI or with `pip install itasca-mcp-bridge` using the engine's own python.exe. Start it again in each new engine session. The setup guide is written for Windows, where the engines install.
The execution tools do nothing until the bridge is running inside the engine; each new engine session needs it started again. FLAC 6.x ships Python 2.7 and cannot run the bridge. Code sent to `itasca_execute_code` blocks until it finishes or hits its timeout (10 s default, 600 s cap) and cannot be stopped; long runs belong in `itasca_execute_task`. FISH definition blocks must be sent whole in one command, or the engine is left waiting in its console. The bridge checks PyPI and upgrades itself each time `start()` runs.
Suits engineers and researchers who already have an ITASCA licence and want an assistant to look up commands, write and run model scripts, and keep an eye on long runs while they carry on in the GUI. The two documentation tools are useful on their own, even with no engine open. It is of no use without ITASCA software, and it is one developer's project, not an ITASCA product. Since it runs arbitrary Python inside the engine, keep it to machines and models where that is acceptable.
4 only read, 3 change things. A ? marks an optional parameter.
itasca_browse_docsoftware: enumsource: enumpath?: stringversion?: enumitasca_query_docsoftware: enumquery: stringsource?: enumversion?: enumlimit?: integeritasca_execute_code changescode: stringtimeout?: integeritasca_execute_task changesentry_script: stringdescription: stringitasca_check_task_statustask_id: stringskip_newest?: integerlimit?: integerfilter?: stringwait_seconds?: numberitasca_list_tasksskip_newest?: integerlimit?: integeritasca_interrupt_task changestask_id: string