SkillAgentSearch skills...

br-automation-pvi-mcp-server

Explicitly includes PVI to distinguish this project from other B&R tooling and make it discoverable by developers searching for PVI-based automation integrations.

Install / Use

claude mcp add controlguy-ys -- npx -y github:controlguy-ys/br-automation-pvi-mcp-server

If the server publishes to npm under a different name, use that package instead — check the repo README.

About this skill
🔌

MCP Server

Model Context Protocol server

Quality Score

78/100

Category

Automation

Supported Platforms

Claude Code
Claude Desktop

Our assessment of br-automation-pvi-mcp-server

br-automation-pvi-mcp-server scores 78/100 on our quality scale, 2193rd of 2,864 Automation skills we index.

Its MCP Server is 30 KB long, well organised into 53 sections with 29 code examples: a thorough specification that gives an agent plenty to work with.

It has 3 GitHub stars, so there is little community track record yet; judge it on its content.

Substance
30/30
Structure
20/20
Description
15/15
Adoption
3/20
Freshness
11/15

Maintenance, license and trust

  • The repository was last updated about 6 months ago. That is recent enough to be usable, but agent tooling moves fast, so check the instructions against your agent's current version.
  • It is released under the MIT license, a permissive license that allows use, modification and commercial use with attribution.
  • Its trust signals score 86/100, with 2 cautions from licensing, adoption, age or documentation. These come from repository metadata, not a code audit — read the skill file before letting an agent act on it.

Safety scan

No issues found

Our scan of the whole file found no instruction hijacking, hidden characters, credential access, data exfiltration or destructive commands.

Automated pattern scan on 2026-10-01. It catches known dangerous patterns, not every risk — read a skill before letting an agent act on it.

br-automation-pvi-mcp-server compared with similar skills

All 4 of these similar skills score higher than br-automation-pvi-mcp-server; compare them before choosing.

SkillScoreStarsUpdatedFormat
br-automation-pvi-mcp-server (this skill)by controlguy-ys7836mo agoMCP Server
Agent-Reachby Panniantong10087.2k16d agoCLAUDE.md
headroomby headroomlabs-ai10074.2ktodayCLAUDE.md
rufloby ruvnet10073.6ktodayCLAUDE.md
CowAgentby zhayujie10047.2ktodayCLAUDE.md

Frequently asked questions

How do I install br-automation-pvi-mcp-server?
Run claude mcp add controlguy-ys -- npx -y github:controlguy-ys/br-automation-pvi-mcp-server. The install tabs above show the steps for each supported agent.
Which AI agents does br-automation-pvi-mcp-server work with?
It is written for Claude Code and Claude Desktop, as a MCP Server file. Other agents that read the same format can often use it too.
Is br-automation-pvi-mcp-server safe to use?
Our scan of the whole file found no instruction hijacking, hidden characters, credential access, data exfiltration or destructive commands. It is MIT-licensed and scores 86/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
Is br-automation-pvi-mcp-server still maintained?
The repository was last updated about 6 months ago. That is recent enough to be usable, but agent tooling moves fast, so check the instructions against your agent's current version.

BnR-MCP-Server

Unified MCP (Model Context Protocol) server for B&R Automation Studio — build projects, connect to PLCs, read/write variables, trend data, generate charts, and query a local variable database, all from Claude or any MCP-compatible AI assistant.

38 tools | TypeScript + C# companion | SQLite variable index | MIT License


Features

| Category | Tools | Description | |----------|-------|-------------| | Build | 4 | Build AS6 projects, transfer to target, parse build logs | | Connect | 5 | ANSL/TCP connection to PLC or ARSim, auto-detect, ping, switch target | | Variables | 4 | Read/write scalars, structs, arrays, batch operations | | Variable DB | 3 | SQLite-backed variable index — fast query without PLC round-trip | | Watch | 6 | Poll variables, list sessions, export CSV, live web dashboard | | Fast Trend | 3 | High-frequency monitoring (10-100ms) via C# companion + PNG charts | | PLC Info | 4 | CPU info, task list, module list, error logbook | | Modules | 3 | Upload/download/compare .br module files | | Control | 3 | Coldstart, warmstart, diagnostics mode (with safety confirmation) | | Workflow | 2 | One-shot deploy workflow, full health report |

Prerequisites

Required

| Dependency | Version | Purpose | |------------|---------|---------| | B&R Automation Studio 6 | AS6 | Provides BR.AS.Build.exe and PVITransfer.exe | | B&R PVI 6 | PVI 6.x | PLC communication runtime (installed with AS6) | | Node.js | 18+ | MCP server runtime | | npm | 9+ | Package manager |

Optional (for high-frequency trending)

| Dependency | Version | Purpose | |------------|---------|---------| | .NET Framework 4.8.1 | x86 | Required by BR.AN.PviServices.dll | | MSBuild / dotnet CLI | .NET SDK 8.0+ | Building the C# companion | | Windows | 10/11 | PVIServices is Windows-only (x86) |

Important: BR.AN.PviServices.dll is a PE32 (x86) .NET Framework assembly. It does not work under .NET 8.0 x64. The companion must target net481 with PlatformTarget=x86.

Auto-Detected Paths

The server auto-detects B&R installation paths. Override with environment variables if needed:

| Component | Default Locations | |-----------|-------------------| | BR.AS.Build.exe | C:\Program Files (x86)\BrAutomation\AS6\bin-en\BR.AS.Build.exe | | PVITransfer.exe | C:\Program Files (x86)\BrAutomation\PVI6\PVI\Tools\PVITransfer\PVITransfer.exe | | PviCompanion.exe | companion\bin\Release\net481\PviCompanion.exe (relative to project) |

Installation

# Clone
git clone https://github.com/your-username/BnR-MCP-Server.git
cd BnR-MCP-Server

# Install dependencies
npm install

# Build TypeScript
npm run build

# (Optional) Build C# companion for high-frequency trending
npm run build:companion
# or manually:
dotnet build companion/PviCompanion.csproj -c Release

Configuration

Claude Desktop / Claude Code

Add to your MCP settings (claude_desktop_config.json or Claude Code settings):

{
  "mcpServers": {
    "bnr": {
      "command": "node",
      "args": ["C:/path/to/BnR-MCP-Server/dist/index.js"],
      "env": {
        "PVI_PLC_IP": "192.168.0.10",
        "BR_PROJECTS_ROOT": "C:/Users/you/projects"
      }
    }
  }
}

Environment Variables

All configuration is optional — sensible defaults are provided.

| Variable | Default | Description | |----------|---------|-------------| | BR_BUILD_EXE | (auto-detect) | Path to BR.AS.Build.exe | | BR_PROJECTS_ROOT | Current directory | Root directory for project scanning | | BR_BUILD_TIMEOUT_MS | 300000 (5 min) | Build timeout in milliseconds | | BR_EXCLUDED_DIRS | node_modules,Temp,Binaries,.git | Directories to skip when scanning | | PVI_TRANSFER_EXE | (auto-detect) | Path to PVITransfer.exe | | PVI_PLC_IP | 192.168.0.10 | Default PLC IP address | | PVI_WAIT_TIME | 30 | Connection timeout in seconds | | PVI_TEMP_DIR | %TEMP%/pvi-mcp | Temp directory for PIL scripts | | PVI_WATCH_MAX_SAMPLES | 3600 | Max samples per watch session | | PVI_COMPANION_EXE | (auto-detect) | Path to PviCompanion.exe | | BNR_DB_PATH | %TEMP%/pvi-mcp/bnr-mcp.db | SQLite database path |

Total Workflow

The complete development-to-debugging cycle using BnR-MCP-Server:

┌─────────────────────────────────────────────────────────────────────────┐
│                        TOTAL WORKFLOW                                  │
│                                                                       │
│  ┌─────────┐    ┌─────────┐    ┌─────────┐    ┌─────────┐            │
│  │ 1.SETUP │───▶│ 2.BUILD │───▶│3.CONNECT│───▶│ 4.DEBUG │            │
│  └─────────┘    └─────────┘    └─────────┘    └─────────┘            │
│       │              │              │              │                   │
│       ▼              ▼              ▼              ▼                   │
│  Install &      Build AS6      Connect to     Read/Write              │
│  Configure      Project        PLC/ARSim      Variables               │
│                                                    │                   │
│                                          ┌─────────▼─────────┐        │
│                                          │  5. VAR DATABASE  │        │
│                                          │  Refresh + Query  │        │
│                                          └─────────┬─────────┘        │
│                                                    │                   │
│  ┌─────────┐    ┌─────────┐    ┌─────────┐    ┌───▼─────┐            │
│  │9.CONTROL│◀───│8.EXPORT │◀───│ 7.CHART │◀───│ 6.TREND │            │
│  └─────────┘    └─────────┘    └─────────┘    └─────────┘            │
│       │              │              │              │                   │
│       ▼              ▼              ▼              ▼                   │
│  Restart PLC    CSV / Web       PNG Chart     Watch & Fast            │
│  Diagnostics    Dashboard       OxyPlot       Trend (10ms+)           │
│                                                                       │
└─────────────────────────────────────────────────────────────────────────┘

Step 1 — Setup

npm install && npm run build          # Build MCP server
npm run build:companion               # (Optional) Build C# companion

Add MCP server to Claude config → ready to use.

Step 2 — Build Project

"Build my project"
  → list_projects        Find .apj files in workspace
  → get_project_info     Check configurations
  → build_project        Build (mode: Build / Rebuild / BuildAndTransfer)
  → parse_build_log      Review errors & warnings
┌──────────────────────────────────────────────────────────────┐
│  AS6 Project (.apj)                                         │
│                                                             │
│  ┌─────────┐    ┌──────────────┐    ┌───────────────────┐   │
│  │ Sources │───▶│BR.AS.Build.exe│───▶│ Build Output      │   │
│  │ .st .c  │    │              │    │ ✓ 0 = Success     │   │
│  └─────────┘    │ -buildMode   │    │ ⚠ 1 = Warnings   │   │
│                 │  "Build"     │    │ ✗ 3 = Errors      │   │
│                 │  "Rebuild"   │    └───────────────────┘   │
│                 │  "BuildAnd   │             │               │
│                 │   Transfer"  │             ▼               │
│                 └──────────────┘    ┌───────────────────┐   │
│                                    │ parse_build_log    │   │
│                                    │ → structured JSON  │   │
│                                    └───────────────────┘   │
└──────────────────────────────────────────────────────────────┘

BuildAndTransfer — builds the project and transfers the installation package to the connected target (ARSim or real PLC). This is the B&R standard "Transfer to target" mechanism:

Sources → BUILD → Modules (.br) → PACK → Installation Package → TRANSFER → PLC

Step 3 — Connect to PLC

"Connect to my PLC"
  → pvi_ping             Quick TCP probe to check reachability (~2s)
  → pvi_auto_connect     Try hardware PLC first (if PVI_PLC_IP set), then ARSim
  → pvi_connect          Manual: specify IP address
  → pvi_switch_target    Switch between hardware PLC and ARSim in one call
  → get_config           Verify paths and connection state
┌───────────────────────────────────────────────────────────────┐
│  Connection Flow (pvi_auto_connect with PVI_PLC_IP set)      │
│                                                              │
│       ├──▶ Try PVI_PLC_IP (hardware) ──────▶ Connected?      │
│       │         │                              │             │
│       │         │ No                          Yes ──▶ Done   │
│       │         ▼                                            │
│       └──▶ Try 127.0.0.1:11169 (ARSim) ──▶ Connected?       │
│                                               │              │
│                                   Yes ──▶ Done │              │
│                                                              │
│  Response: CPU type, AR version, PLC status, IP source       │
└───────────────────────────────────────────────────────────────┘

Step 4 — Debug (Read/Write Variables)

"What is the current temperature?"
  → pvi_read_variable            Read single variable (scalar/struct/array)
  → pvi_write_variable           Write single variable with read-back
  → pvi_write_variables_batch    Write multiple variables at once
┌─────────────────────────────────────────────────────────────────┐
│  Variable Access Patterns                                      │
│                                                                │
│  Scalar:    pvi_read_variable { name: "gTemperature" }         │
│                                                                │
│  Struct:    pvi_read_variable { name: "stSensor",              │
│                                 member: "rValue",              │
│                                 task: "Control" }              │
│                                                                │
│  Array:     pvi_read_variable { name: "aValues", index: 3 }   │
│                                                                │
│  Nested:    pvi_read_variable { name: "stBatch",               │
│                                 member: "aSensors[0].rValue" } │
│                                                                │
│  Batch:     pvi_write_variables_batch {                        │
│               variables: [                                     │
│                 { name: "gSetpoint", value: "75.0" },          │
│                 { name: "gMode",     value: "2"    }           │
│               ]                                                │
│             }                                                  │
└─────────────────────────────────────────────────────────────────┘

Step 5 — Variable Database (SQLite Index)

Build a local variable index for fast, offline querying without hitting the PLC each time.

"Show me all REAL variables in HMIMain"
  → pvi_refresh_variables    Fetch variables from PLC → store in SQLite
  → pvi_query_variables      Fast SQL query (no PLC round-trip)
  → pvi_db_status            Check DB health and last refresh time
┌──────────────────────────────────────────────────────────────────┐
│  Variable Database Workflow                                     │
│                                                                 │
│  Once:   pvi_refresh_variables { scope: "all" }                 │
│              → fetches globals (VariableListGlobal)             │
│          pvi_refresh_variables { scope: "local",                │
│                                  task: "HMIMain" }              │
│              → fetches task-local variables                     │
│                                                                 │
│  Anytime (fast):           

Truncated for display — read the full file on GitHub.

Related Skills

View on GitHub
GitHub Stars3
CategoryAutomation
Updated6mo ago
Forks1

Languages

TypeScript

Trust signals

86/100

From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.

2 low