home / mcp / epics-mcp-server

EPICS-MCP-Server

Provides tools to read, write, and fetch information for EPICS PV variables via an MCP stdio server.

Installation
Add the following to your MCP client configuration file.

Configuration

View docs
{
  "mcpServers": {
    "jacky1-jiang-epics-mcp-server": {
      "command": "python",
      "args": [
        "/path/server.py"
      ]
    }
  }
}

You can run the EPICS MCP Server as a Python-based MCP endpoint that talks to EPICS process variables (PVs). It lets you read PV values, write new values, and fetch detailed PV information, all through an MCP client over a standard stdio interface. This makes it easy to integrate EPICS PVs into larger control workflows and automation.

How to use

You interact with the EPICS MCP Server using an MCP client that communicates over stdio. The server exposes three main tools that you can call to work with EPICS PVs:

How to install

Prerequisites: you need Python installed on your system and access to run Python scripts. You also need a Python package manager to install dependencies.

Steps to start using the EPICS MCP Server locally:

1) Create a Python environment (optional but recommended). 2) Install required dependencies. 3) Run the MCP server using the stdio interface.

Exact commands to run the server are shown below as an example flow. Replace /path/server.py with the absolute path to your server script when you deploy.

Additional content

Configuration and usage notes: The server is designed to be used with an MCP client that can request PV operations. You can use the following concrete command to start the server locally in stdio mode, which the client can connect to.

Notes and examples

Example runtime command to start the server locally using Python (adjust the path to your actual script):

python /path/server.py

Available tools

get_pv_value

Retrieve the current value of a specified PV. Returns a status and the PV value or an error message.

set_pv_value

Update a specified PV with a new value. Returns a status and a confirmation message or an error message.

get_pv_info

Fetch detailed information about a specified PV, including its connection state and data type. Returns a status and the PV information or an error message.