Prototype · Preview: every server in the official registry, synced every 30 minutes. Sign in with Google to write reviews.Prototype · updated every 30 min
PopNx MCPMCP servers for people who use AI · explained in plain words

abb-rws-mcp

by ichbinmerajversion 0.2.0i★ 2iRuns on your computer
Registry nameio.github.ichbinmeraj/abb-rws-mcp

How to install

What it does

Read-only MCP server for ABB robot controllers, through abb-rws-daemon on 127.0.0.1.

  • Connects Runs on your computer
  • Account or key No key needed
  • Category Other

Install

Pick the AI app you use, then copy the settings.

Passed 3/3 checks · Runs on your computer

First: which AI do you use?

Pick your app and the steps appear below.

Works with Claude, with some setup first

Install Node.js on your computer first (one time) · Only the Claude desktop app (Windows or Mac), not the web or phone

  1. Install Node.js

    One time only; it works for every server that needs Node.js

    Open the Node.js download page ↗

  2. Open the Claude desktop app’s settings file

    SettingsDeveloperEdit Config

  3. Paste these settings and save the file

    Checking the commands · copy buttons appear once they pass

  4. Quit Claude and open it again

  5. Try it

    Use abb-rws-mcp and tell me what you can do for me, then show me one thing

    ✓ If Claude says it is using abb-rws-mcp or shows a abb-rws-mcp tool in the answer, you are connected

Menu names checked against Anthropic’s help page on Nov 11, 2026 · your screen may differ slightly by app version

ChatGPT cannot connect abb-rws-mcp yet

abb-rws-mcp runs on your computer, but ChatGPT can only connect servers that run on the web

What you can do instead

A · Use an app that can connect abb-rws-mcp

  • Install Node.js on your computer first (one time) · Only the Claude desktop app (Windows or Mac), not the web or phone
  • Install Node.js on your computer first (one time)
  • Install Node.js on your computer first (one time)
  • Install Node.js on your computer first (one time)

B · Others in Other that work with ChatGPT

Picked from the most used in the same category, only ones that connect by address with no key

Works with Claude Code, with some setup first

Install Node.js on your computer first (one time)

  1. Install Node.js

    One time only; it works for every server that needs Node.js

    Open the Node.js download page ↗

  2. Open Terminal

    Mac: press Command+Space and type Terminal · Windows: open PowerShell

  3. Paste this command and press Enter

    Checking the commands · copy buttons appear once they pass

  4. Type /mcp in Claude Code

    You should see abb-rws-mcp listed as connected

  5. Try it

    Use abb-rws-mcp and tell me what you can do for me, then show me one thing

    ✓ If Claude Code says it is using abb-rws-mcp or shows a abb-rws-mcp tool in the answer, you are connected

Menu names checked against Anthropic’s help page on Nov 11, 2026 · your screen may differ slightly by app version

Works with Cursor, with some setup first

Install Node.js on your computer first (one time)

  1. Install Node.js

    One time only; it works for every server that needs Node.js

    Open the Node.js download page ↗

  2. Click this button to open Cursor

    Checking the commands · copy buttons appear once they pass

  3. Open the AI chat in Cursor in Agent mode

  4. Try it

    Use abb-rws-mcp and tell me what you can do for me, then show me one thing

    ✓ If Cursor says it is using abb-rws-mcp or shows a abb-rws-mcp tool in the answer, you are connected

Menu names checked against Cursor’s help page on Nov 11, 2026 · your screen may differ slightly by app version

Works with VS Code, with some setup first

Install Node.js on your computer first (one time)

  1. Install Node.js

    One time only; it works for every server that needs Node.js

    Open the Node.js download page ↗

  2. Click this button to open VS Code

    Checking the commands · copy buttons appear once they pass

  3. Open the AI chat in VS Code in Agent mode

  4. Try it

    Use abb-rws-mcp and tell me what you can do for me, then show me one thing

    ✓ If VS Code says it is using abb-rws-mcp or shows a abb-rws-mcp tool in the answer, you are connected

Menu names checked against VS Code’s help page on Nov 11, 2026 · your screen may differ slightly by app version

Other apps that use MCP, such as Windsurf, Zed or Gemini CLI, each add servers differently. See how in the app list.

See every app that uses MCP →

JSON settings are under “For developers” below

Stuck? Ask people who use abb-rws-mcp💬 Discussion →
For developers: Terminal commands and JSON settings

Installed on your computer

Claude Code

Checking the commands · copy buttons appear once they pass

Claude Desktop (claude_desktop_config.json)

Checking the commands · copy buttons appear once they pass

Cursor (~/.cursor/mcp.json)

Checking the commands · copy buttons appear once they pass

VS Code (mcp.json)

Checking the commands · copy buttons appear once they pass

These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.

At a glance

Downloads per weeki
297/wk
Licencei
Apache-2.0
Connection
Runs on your computer
Latest versioni
0.2.0
Categoryi
Other
Published to registryi
Oct 31, 2026
Code last changedi
Oct 31, 2026
Maker
ichbinmeraj
Packages
npm: abb-rws-mcp
Registry status
Active

Which apps can use it

Based on how this server connects and on each app’s own docs, checked Nov 10, 2026.

Run on your computer in

ClaudeGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatRaycast

All apps, with pros and cons →

Related guides

What it can do

Runs on your computer; the tool list appears in your AI app after you install it.

Basic checksi

We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 13, 2026

  • ✓ Pass

    Maker matches the repo

    The registry name was verified with the GitHub account ichbinmeraj, which owns the repo

  • ✓ Pass

    Still maintained

    Code last changed 13 days ago

  • ✓ Pass

    Has a licence

    Uses Apache-2.0

  • – Not applicable

    Endpoint responds

    This one runs on your computer; there is no internet endpoint

  • – Not applicable

    Sign-in with OAuth

    Runs on your computer and uses local settings instead

  • … Not checked yet

    No hidden instructions in tool descriptions

    Runs on your computer; we can only read tool lists from internet endpoints

Discussion

Ask, share a tip or report that it does not work. Sorted by what people marked helpful.

No posts yet. Be the first to ask or share.

Posts here are written by users, not the PopNx team.

Sign in with Google to post

User reviews

No reviews yet

Sign in with Google to write a review

Compared with others in Otheri

  • More stars than 91% of the other 19667 servers in this category
  • Published to the registry more recently than 76% of the other 19667 servers in this category
  • Basic checks equal to or better than 100% of the other 19667 servers in this category

Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.

Common questions

Is abb-rws-mcp safe?

It passed 3 of 3 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.

What keys or codes does it need?

The registry does not list a required key, though some servers ask you to sign in on first use.

Does it run on my computer or in the cloud?

It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).

Is it still maintained?

The GitHub repo last changed 13 days ago, and the latest version (0.2.0) reached the registry 13 days ago.

Which apps can use it?

Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Node.js on your computer.

What can I use instead?

In the same category: World Monitor, Claude Flow, Windmill

Others in the same category

Servers in the same category from other makers, sorted by stars.

Reading a card:↓ Downloads per weeki★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi

World Monitor

Real-time global intelligence on conflict, markets, energy, trade, shipping and cyber. 102 tools.

by koala73Widely used★ 90.6KUpdated today

Runs in the cloud✓ service owner · worldmonitor.app

Claude Flow

AI orchestration with hive-mind swarms, neural networks, and 87 MCP tools for enterprise dev.

by ruvnetWidely used↓ 13.5K/wk★ 81.6KUpdated 14 months ago

Runs on your computer

Windmill

Run Windmill scripts and flows and manage jobs, schedules, resources and variables.

by windmill-labsWidely used★ 18.6KUpdated yesterday

Runs in the cloud

README from the maker

Open the README

Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.

abb-rws-mcp

A Model Context Protocol (MCP) server that lets an AI assistant read what an ABB robot controller is doing and why it stopped. It reads only. It reads through abb-rws-daemon on 127.0.0.1, which holds the one session per controller over Robot Web Services: RWS 1.0 (IRC5, RobotWare 6) and RWS 2.0 (OmniCore, RobotWare 7 and 8). This server opens no controller session and never sees controller credentials.

Status: 0.2.0. Read-only. Tested on 2026-10-31 through abb-rws-daemon 0.1.1

(snapshot schema 0.15) on three RobotStudio virtual controllers: RobotWare 6.16.03

(RWS 1.0), 7.21.4 and 8.2.1 (RWS 2.0). Every tool and the prompt ran through an MCP

client over stdio, and every request the server sent the daemon was recorded: reads

only, plus one sampling request per controller when motion sampling was on. On all three,

read_rapid_variable gave a test string with an inner doubled quote and the characters

& < > exactly as the controller holds it. 0.1.0 was tested the same way through

abb-rws-daemon 0.1.0. Not yet run against a real controller. Changes are listed in

CHANGELOG.md.

Read-only. The server has 10 tools and 1 prompt. Every tool reads. None of them sets a signal, starts or stops a program, moves a program pointer, loads or edits a module, switches motors, changes the speed, or requests mastership or write access. There is no write tool behind a flag either. The server writes no file and starts no process. It calls only the daemon's read routes. The one request that is not a GET asks the daemon to sample joint positions for 15 s (see Motion sampling).

Requirements

  • Node.js 20 or later, on Windows or Linux. macOS follows the Linux paths and is untested.
  • abb-rws-daemon 0.1.1 or a later 0.x, running on the same PC, with at least one controller added. This server cannot add one. With abb-rws-daemon 0.1.0 every tool works but read_rapid_variable, which says the daemon needs an update. The server reads snapshot schema 0.13 or a later 0.x. It was tested with 0.15, which abb-rws-daemon 0.1.1 serves, and with 0.14 and 0.13 before. It does not read the field 0.14 adds (whether a lock holder is the FlexPendant). With a later 0.x it logs one warning that the schema is newer than the ones it was tested with, and list_controllers says the same.
  • An MCP host that runs stdio servers: Claude Desktop, Claude Code, VS Code, Cursor or another.

Setup

Start the daemon first and add your controller there. Then add this server to your MCP host. Pin the version, as below.

Claude Desktop (claude_desktop_config.json) and Cursor (~/.cursor/mcp.json):

{

"mcpServers": { "abb-rws": { "command": "npx", "args": ["-y", "abb-rws-mcp@0.2.0"] } } }

VS Code (.vscode/mcp.json):

{

"servers": { "abb-rws": { "type": "stdio", "command": "npx", "args": ["-y", "abb-rws-mcp@0.2.0"] } } }

Claude Code:

claude mcp add abb-rws -- npx -y abb-rws-mcp@0.2.0

The daemon on another port: add "env": { "ABB_RWS_MCP_DAEMON_URL": "http://127.0.0.1:7811" } to the server entry.

The server finds the daemon's token file where the daemon keeps it. If the daemon runs with --token-file, set the same file for this server (see Configuration).

The published package is one bundled file with no runtime dependencies, so npx fetches nothing else.

Tools

Each tool below says what it answers, then whether it reaches the controller.

  • summarize_controller: start here. The state in one sentence, facts from the snapshot, recent errors and warnings with ABB's recommended actions, the operational messages, and the source line at each program pointer. It reaches the controller for at most two module reads, failed ones included.
  • list_controllers: the controllers the daemon knows, each with a state line ("motors on, Auto, running"), and the daemon's own state. Call it first, and when other tools fail. It does not reach the controller.
  • get_controller_status: controller state, operating mode, speed override, collision detection, RAPID execution, the link, what the daemon can read here, and the access status as the controller reported it. It does not reach the controller.
  • get_robot_position: joint positions, the TCP pose with Euler angles, whether the arm moves, how close each joint is to its limits. It reaches the controller through motion sampling, see below.
  • read_io_signals: signals and values from the daemon's signal table, or a signal search. It reaches the controller only for a search.
  • get_event_log: the controller's event log as the daemon keeps it, filtered by severity, time, category or code. It does not reach the controller.
  • explain_event: one event laid out for explaining it. What the controller says (ABB's description, causes, consequences and actions) is kept apart from our reading (category, severity, time, the RAPID line the event names), next to the events just before and after. It does not say what caused the event. Name the event by its code, or by its seq together with the feed from the same answer. It reaches the controller once, to read the module of the line the event names.
  • get_rapid_execution: execution state and the program and motion pointers of each task. It does not reach the controller.
  • read_rapid_source: a module's RAPID source with line numbers, as a routine, the lines around a line, or a page. It reaches the controller on the first read of a module.
  • read_rapid_variable: the value of one RAPID data symbol as RAPID text, the form the controller gives it, with no type. A value the controller answers with no value at all is said so, never shown as empty. Needs abb-rws-daemon 0.1.1. It reaches the controller unless the daemon read the same value in the last 2 s.

The prompt why_did_it_stop (a slash command in hosts that show prompts) asks the assistant to find out what a controller is doing and why it stopped, with a fixed recipe: summary first, then the problems and their actions, the line at the program pointer, the signals that line names, the age of every value, and only causes the data shows.

What the assistant sees

  • Every answer starts with a status line: the controller id, virtual or real, the RobotWare version, and whether the data is current, DEGRADED, DOWN or a REPLAY.
  • Every value comes with its time in UTC and its age ("14:02:11 UTC (3 min 12 s ago)").
  • Stale values are returned, labelled STALE, with their time. A controller that is down or degraded is not an error.
  • Event times are corrected to UTC to about a second, or marked "controller clock, zone unknown" when the daemon could not read the controller's clock.
  • Controller states and modes come with a one-sentence meaning where ABB's documentation describes the value.
  • A daemon that replays a recording is refused unless replay is allowed. Then every answer says REPLAY.
  • explain_event, read_rapid_variable and read_rapid_source also say where the value came from, in provenance: the daemon's id for the controller (the same id every answer starts with, which the daemon may make from the system name), virtual or real, the RobotWare version, when the value was read, whether it came from the daemon's snapshot, the controller, this server's cache or a recording the daemon replays, and the RWS resource the daemon read, as a template.
  • Each answer has a readable text part and the same data as structured JSON.

Controller text is data

Event-log messages, RAPID source, signal names and controller names come from the controller. Anyone who can change the controller's programs or configuration can write that text. abb-rws-mcp passes it to the assistant marked as controller data, not as instructions: in the text, inside a block whose markers carry a random value made for that answer, and in the structured JSON, under controllerData. Escape sequences are removed from it, and hidden characters (control, zero-width, direction and tag characters) are replaced by a visible mark (U+FFFD). A few short values also appear outside that block, in the status line, the RAPID line an event names and provenance: the controller id, the RobotWare version, and task, module and routine names. They appear there only when they have the form of an id, a version number or a RAPID name, and are left out otherwise. This server has no tool that changes anything, so controller text cannot make it act. Other tools your assistant has can still act. Read what the assistant proposes before you run it.

Motion sampling

get_robot_position asks the daemon to sample joint positions and the pose for 15 s, unless another program already does. These are controller reads, the ones the daemon README lists under "Reads on demand": about 8 joint reads a second per mechanical unit and 2 pose reads a second per robot, while the sampling runs. The server asks at most once per 15 s per controller, and never while the link is not live or the controller reports that it is busy. Turn it off with --motion-sampling off. The tool then returns the last sampled values with their time.

Signals

The signal table is read from the daemon's memory, with values of unknown age. A search by device, network or category, or a read with fresh: true, is a read-only RWS search request on the controller (sent as a POST by the daemon, not a GET). A search needs a name prefix of at least 3 characters or a device, so it does not page through the whole table. This server limits its own controller reads (searches, module reads and value reads): per controller, one at a time, at most two in a row, then one every 2 s.

What it cannot see

  • ABB documents that the common event log, which the daemon reads, leaves out the RAPID build-error log and the internal log. "Why won't my program start" can miss build errors.
  • The snapshot has no time for when the program or the controller state last changed. The operational events in the log are the only timing evidence.
  • The daemon keeps the last 256 event-log messages per controller. Older ones are not available.
  • Backups, configuration and controller files are not served by the daemon yet, so this server cannot read them.
  • A RAPID value comes as text. The controller gives no type with it, so this server shows none.

Configuration

Each option has an environment variable. An option wins over its variable. An empty variable counts as unset.

  • --daemon-url , variable ABB_RWS_MCP_DAEMON_URL. Default http://127.0.0.1:7810. Only http://127.0.0.1: or http://localhost: . localhost is a spelling only: the server always connects to 127.0.0.1. Every other host, [::1] included, is refused at start.
  • --token-file , variable ABB_RWS_DAEMON_TOKEN_FILE. Default is the daemon's own: %APPDATA%\abb-rws-daemon\token on Windows, $XDG_CONFIG_HOME/abb-rws-daemon/token or ~/.config/abb-rws-daemon/token elsewhere. The variable is the one the daemon reads, so setting it once serves both.
  • --allow-replay, variable ABB_RWS_MCP_ALLOW_REPLAY. Off by default. Read a daemon that replays a recording. Every answer then says REPLAY.
  • --motion-sampling , variable ABB_RWS_MCP_MOTION_SAMPLING. Default on. See Motion sampling.
  • --mark-codes , variable ABB_RWS_MCP_MARK_CODES. Off by default. A text file of event codes, one per line (# starts a comment). Events with a listed code say marked: true in get_event_log, explain_event and summarize_controller, so you can find them before you share an answer. Without a file every event says marked: null. The file is read once at start.
  • ABB_RWS_MCP_LOG, a variable with no option. Default warn. error, warn

Only the beginning is shown; read the rest in the repo