Bridges ParaView's scientific visualization environment to LLM assistants by running a C++/Qt plugin inside ParaView itself, exposing a TCP socket that the Python MCP server connects to. The key tool is execute_paraview_code, which runs arbitrary Python in the active ParaView session, giving agents the same scripting access a human would have. You also get get_pipeline_info for inspecting the current visualization pipeline as JSON and get_screenshot to capture renders. Reach for this when you want an AI to automate complex ParaView workflows, generate visualizations from data programmatically, or interactively build and modify pipelines without clicking through menus. Requires ParaView 6.0.1 with the companion plugin loaded and listening on localhost:9877 by default.
Connect ParaView to LLM assistants through the Model Context Protocol.
paraview-mcp-server has two runtime parts:
Add to Claude Code in one command:
claude mcp add paraview -- uvx paraview-mcp-server
Then set up the ParaView plugin and you're ready to go.
Download a pre-built plugin binary from the latest GitHub Release for your platform (Linux x86_64 or macOS arm64). Extract the archive and follow the included INSTALL.md.
Alternatively, build the plugin from source against your ParaView 6.0.1 SDK. See CONTRIBUTING.md for full build instructions.
Once installed:
ParaViewMCP.so from the plugin directory.The dock widget shows the connection status. Non-loopback binds require an auth token.
claude mcp add paraview -- uvx paraview-mcp-server
Add to your claude_desktop_config.json:
{
"mcpServers": {
"paraview": {
"command": "uvx",
"args": ["paraview-mcp-server"]
}
}
}
Add to .cursor/mcp.json in your project root:
{
"mcpServers": {
"paraview": {
"command": "uvx",
"args": ["paraview-mcp-server"]
}
}
}
The server connects to the ParaView plugin using these environment variables:
| Variable | Default | Required | Description |
|---|---|---|---|
PARAVIEW_HOST | 127.0.0.1 | No | Host where the ParaView plugin is listening |
PARAVIEW_PORT | 9877 | No | TCP port for the plugin bridge |
PARAVIEW_AUTH_TOKEN | — | Non-loopback only | Authentication token (must match the plugin setting) |
Defaults work for a standard local setup. Override these when connecting to ParaView on a remote machine or non-standard port:
{
"mcpServers": {
"paraview": {
"command": "uvx",
"args": ["paraview-mcp-server"],
"env": {
"PARAVIEW_HOST": "192.168.1.10",
"PARAVIEW_PORT": "9877",
"PARAVIEW_AUTH_TOKEN": "your-token"
}
}
}
}
| Tool | Description |
|---|---|
execute_paraview_code(code) | Execute Python code inside the active ParaView session |
get_pipeline_info() | Return a JSON snapshot of the current pipeline |
get_screenshot(width, height) | Capture the active render view as a PNG image |
This project follows the approach of Blender-MCP and Slicer-MCP, both of which give LLMs direct code execution inside their respective application runtimes. The existing Paraview_MCP implementation1 takes a different approach, exposing a fixed set of high-level tools without access to the underlying Python runtime, which limits flexibility for custom workflows.
We instead provide an execute_paraview_code tool that runs arbitrary Python inside the ParaView session, giving the AI agent the same level of control a human scripter would have.
See CONTRIBUTING.md for build instructions, development setup, and pull request guidelines.
MIT — see THIRD-PARTY-NOTICES.txt for dependency licenses.
S. Liu, H. Miao, and P.-T. Bremer, "Paraview-MCP: Autonomous Visualization Agents with Direct Tool Use," in Proc. IEEE VIS 2025 Short Papers, IEEE, 2025. ↩