paraview-mcp

paraview-mcp

Connects ParaView to LLM assistants via the Model Context Protocol, enabling direct Python code execution and pipeline control within the ParaView GUI.

Category
Visit Server

README

<p align="center"> <img src="Documentation/Images/paraview-mcp-logo.png" width="200" alt="ParaView MCP"> </p>

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:

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:

Platform Architecture ParaView versions Package
Linux x86_64 5.13.3, 6.0.1, 6.1.1 .tar.gz
macOS arm64 (Apple Silicon) 5.13.3, 6.0.1, 6.1.1 .dmg
Windows x64 5.13.3, 6.0.1, 6.1.1 .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)

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

Claude Desktop

Add to your claude_desktop_config.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:

{
  "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:

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"
      }
    }
  }
}

Available Tools

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

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 implementation[^1] 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.

[^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.

Contributing

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

License

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

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured