MCP server for ITASCA PFC discrete element simulation control and documentation
Project description
pfc-mcp
pfc3d>model new ;now, with LLM.
pfc-mcp connects AI agents to ITASCA PFC through the Model Context Protocol — browse documentation, run simulations, and execute code, all through natural conversation.
pfc3d>model solve ;LLM solves.
Tools (10)
5 documentation tools — browse and search PFC commands, Python API, and reference docs. No bridge required.
5 execution tools — interactive REPL, task submission, progress monitoring, interruption, and history. Requires bridge.
Quick Start
Prerequisites
- ITASCA PFC 6.0, 7.0, or 9.0 installed
- uv installed (for
uvx)
Agentic Setup (Recommended)
Copy this to your AI agent and let it self-configure:
Fetch and follow this bootstrap guide end-to-end:
https://raw.githubusercontent.com/yusong652/pfc-mcp/main/docs/agentic/pfc-mcp-bootstrap.md
Manual Setup
1. Register the MCP server in your client config:
{
"mcpServers": {
"pfc-mcp": {
"command": "uvx",
"args": ["pfc-mcp"]
}
}
}
2. Start the bridge from inside PFC:
Download addon.py, then use either of these two flows inside PFC:
- Copy the file contents into the PFC IPython console and run them
- Or download the file and execute it in PFC GUI
Verify
Restart your AI agent (Claude Code, Codex CLI, Gemini CLI, etc.) and ask it to call pfc_execute_code to verify the connection.
Features
- Multi-version PFC support - command docs for PFC 6.0, 7.0, and 9.0 via the
versionparameter - Hierarchical documentation browsing - agents navigate the PFC command tree to discover capabilities and boundaries, reducing hallucinated commands
- Enhanced plot documentation - plot items reference docs supplementing the official documentation
- Interactive REPL - rapid iteration before committing to full scripts; agents can quickly test and refine code
- Task lifecycle management - submit long-running simulations, monitor progress, interrupt running tasks, and browse task history
- Multi-client compatible - works with Claude Code, Codex CLI, Gemini CLI, OpenCode, toyoura-nagisa, and other MCP clients
Troubleshooting
Development
See Developer Guide: Install and Run from Source.
Contributing
PRs and issues are welcome! See the Developer Guide to get started.
License
MIT - see LICENSE.
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 pfc_mcp-0.3.7.tar.gz.
File metadata
- Download URL: pfc_mcp-0.3.7.tar.gz
- Upload date:
- Size: 588.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0ca93516e4776e84d860715fdef54ce9393a6d3fc37bc3ac761dd5288c9e291a
|
|
| MD5 |
ee66402e77644fb5ff4cea699aafa733
|
|
| BLAKE2b-256 |
6b18bad9257a3dcce53007dd4689fe73ac6cf1455e325e7990823dccb1b1c681
|
Provenance
The following attestation bundles were made for pfc_mcp-0.3.7.tar.gz:
Publisher:
publish.yml on yusong652/pfc-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pfc_mcp-0.3.7.tar.gz -
Subject digest:
0ca93516e4776e84d860715fdef54ce9393a6d3fc37bc3ac761dd5288c9e291a - Sigstore transparency entry: 1224090443
- Sigstore integration time:
-
Permalink:
yusong652/pfc-mcp@99841a2c0bf23bdecc480aab1e938d36a98226cc -
Branch / Tag:
refs/tags/v0.3.7 - Owner: https://github.com/yusong652
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@99841a2c0bf23bdecc480aab1e938d36a98226cc -
Trigger Event:
push
-
Statement type:
File details
Details for the file pfc_mcp-0.3.7-py3-none-any.whl.
File metadata
- Download URL: pfc_mcp-0.3.7-py3-none-any.whl
- Upload date:
- Size: 643.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
64cff714499cdda1d395eb21fc010b7574c86971d40c6bbb975e639a02709de0
|
|
| MD5 |
9d90fa7d2fd1dc95177277493521ee74
|
|
| BLAKE2b-256 |
d316a97b833d32b7e6561bf4b973dd375dde94eb2d81c8be0ee00e1a2f5761b4
|
Provenance
The following attestation bundles were made for pfc_mcp-0.3.7-py3-none-any.whl:
Publisher:
publish.yml on yusong652/pfc-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pfc_mcp-0.3.7-py3-none-any.whl -
Subject digest:
64cff714499cdda1d395eb21fc010b7574c86971d40c6bbb975e639a02709de0 - Sigstore transparency entry: 1224090486
- Sigstore integration time:
-
Permalink:
yusong652/pfc-mcp@99841a2c0bf23bdecc480aab1e938d36a98226cc -
Branch / Tag:
refs/tags/v0.3.7 - Owner: https://github.com/yusong652
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@99841a2c0bf23bdecc480aab1e938d36a98226cc -
Trigger Event:
push
-
Statement type: