ParaView MCP Server

io.github.failed33Published by GitHub account failed33v0.2.5Updated Oct 30, 2026

Control ParaView through arbitrary Python code

Overview

AI-generated overview

Connects an AI assistant to a running ParaView session so it can run Python code, inspect the pipeline and capture screenshots.

What you can do
  • Execute arbitrary Python code inside the active ParaView session
  • Read a JSON snapshot of the current visualization pipeline
  • Capture the active render view as a PNG image at a chosen size
  • Report execution output, diagnostics and separate request and Python statuses
When to use it
Useful when you work in ParaView and want an assistant to script visualization pipelines, inspect the current pipeline state, or grab renders without leaving the session. It suits users who are comfortable with generated Python running inside their ParaView process.
Requirements
Runs locally over stdio via uvx (Python package paraview-mcp-server). Requires ParaView 5.13 or newer plus the matching C++/Qt plugin, loaded and started from Tools > ParaView MCP. Optional environment variables PARAVIEW_HOST, PARAVIEW_PORT, PARAVIEW_AUTH_TOKEN, PARAVIEW_CONNECT_TIMEOUT_SECONDS and PARAVIEW_COMMAND_TIMEOUT_SECONDS configure the bridge; defaults suit a local setup.
Before you install
The execute_paraview_code tool runs arbitrary Python inside your ParaView session, so generated code can change or destroy data and state; the plugin records executions and can restore the prior state when a snapshot is available. Non-loopback binds require an auth token (PARAVIEW_AUTH_TOKEN) that must match the plugin setting. Only one command runs at a time, and further calls report busy.

Installation

In SourceWeft

  1. Open ParaView MCP Server in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

[ParaView MCP]

ParaView MCP

[CI] [PyPI] [CodeQL] [codecov] [License: MIT]

Connect ParaView to LLM assistants through the Model Context Protocol.

The Python server is built with FastMCP 3.x. Support for the 2026-07-28 MCP specification is planned once FastMCP 4 reaches a stable release.

paraview-mcp-server has two runtime parts:

  • a ParaView plugin (C++/Qt) that exposes a TCP bridge inside the ParaView GUI
  • a Python MCP server that connects to the plugin and serves tools to any MCP client

Prerequisites

  • ParaView ≥ 5.13. Pre-built plugins are available for the exact versions and platforms listed below; other ParaView releases require a source build against the matching SDK.
  • uv

Quick Start

First set up the ParaView plugin. Then add the Python MCP server to Claude Code in one command:

bash
claude mcp add paraview -- uvx paraview-mcp-server

Open Tools > ParaView MCP in ParaView, start the bridge, and connect from Claude Code.

Set Up the ParaView Plugin

Download a pre-built plugin binary from the latest GitHub Release. Releases provide this matrix:

PlatformArchitectureParaView versionsPackage
Linuxx86_646.2.0, 6.1.1, 6.0.1, 5.13.3.tar.gz
macOSarm64 (Apple Silicon)6.2.0, 6.1.1, 6.0.1, 5.13.3.dmg
Windowsx646.2.0, 6.1.1, 6.0.1, 5.13.3.zip

Choose the package that names your exact ParaView version and platform. Download its adjacent .sha256 file, verify the package, then open or extract it and follow the included INSTALL.md. Pull requests also produce corresponding platform binaries as short-lived GitHub Actions artifacts; GitHub Releases are the permanent distribution channel.

macOS release images are Developer ID-signed, notarized by Apple, and include a stapled notarization ticket. Open the .dmg, copy the contained plugin directory to a persistent location, and load ParaViewMCP.so from that copied directory. Pull-request artifacts are unsigned test builds and remain .tar.gz files.

Alternatively, build the plugin from source against a ParaView 5.13 or newer SDK. See CONTRIBUTING.md for full build instructions. Binary compatibility is release-series specific, so use a plugin built for your ParaView major.minor version.

Once installed:

  1. Open Tools > Manage Plugins in ParaView.
  2. Click Load New... and select ParaViewMCP.so (Linux/macOS) or ParaViewMCP.dll (Windows) from the plugin directory.
  3. Enable Auto Load.
  4. Open Tools > ParaView MCP.
  5. Click Start Server.

The ParaView MCP panel shows the connection status and execution history. Non-loopback binds require an auth token.

Configure Your MCP Client

Claude Code (CLI)

bash
claude mcp add paraview -- uvx paraview-mcp-server

Claude Desktop

Add to your claude_desktop_config.json:

json
{  "mcpServers": {    "paraview": {      "command": "uvx",      "args": ["paraview-mcp-server"]    }  }}

Other MCP Clients

Configure a local stdio MCP server with uvx as the command and paraview-mcp-server as its only argument:

json
{  "mcpServers": {    "paraview": {      "command": "uvx",      "args": ["paraview-mcp-server"]    }  }}

Consult your client's documentation for the location and exact format of its MCP server configuration.

Configuration

The server connects to the ParaView plugin using these environment variables:

VariableDefaultRequiredDescription
PARAVIEW_HOST127.0.0.1NoHost where the ParaView plugin is listening
PARAVIEW_PORT9877NoTCP port for the plugin bridge
PARAVIEW_AUTH_TOKEN—Non-loopback onlyAuthentication token (must match the plugin setting)
PARAVIEW_CONNECT_TIMEOUT_SECONDS30NoDeadline for opening the connection and completing the hello
PARAVIEW_COMMAND_TIMEOUT_SECONDS—NoOptional deadline for receiving a command result

Defaults work for a standard local setup. Override these when connecting to ParaView on a remote machine or non-standard port:

json
{  "mcpServers": {    "paraview": {      "command": "uvx",      "args": ["paraview-mcp-server"],      "env": {        "PARAVIEW_HOST": "192.168.1.10",        "PARAVIEW_PORT": "9877",        "PARAVIEW_AUTH_TOKEN": "your-token"      }    }  }}

Available Tools

ToolDescription
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

One command runs at a time, up to three wait in FIFO order, and further calls report busy. This prevents concurrent mutations of ParaView's shared state.

Execution results include output, diagnostics, and separate request and Python statuses. See execution and state for cancellation, timeouts, and recovery behavior.

Design and Differences from ParaView_MCP

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. The major differences are:

  1. We provide an execute_paraview_code tool that runs arbitrary Python inside the ParaView session. The plugin records each execution and, when ParaView can capture a pipeline snapshot, lets the user restore the state from immediately before that execution. This makes generated scripts easier to inspect, reuse, and adapt for tasks such as batch processing.
  2. Architecturally, ParaView_MCP's own disclaimer states that it relies on synchronization between pvserver and the ParaView client. That synchronization mechanism is deprecated in recent ParaView versions and can cause incorrect application views and general stability issues. This project instead runs a plugin inside the interactive ParaView process and exposes a TCP bridge, avoiding the pvserver/client synchronization path entirely.

Contributing

See CONTRIBUTING.md for build instructions, development setup, and pull request guidelines.

License

MIT — see THIRD-PARTY-NOTICES.txt for dependency licenses.

Footnotes

  1. 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. ↩

Source: README.md at commit 6f61e9a

Tools

0
SourceWeft started this package once in an isolated sandbox, without credentials, to list its tools. That failed: the package did not install.

Version history

3
  1. v0.2.5LatestOct 29, 2026
  2. v0.2.4Sep 30, 2026
  3. v0.2.3Sep 16, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts