Home / MCP / EPICS MCP Server

EPICS MCP Server

Python-based MCP server that reads, writes, and fetches details for EPICS PVs over stdio

python
Installation
Add the following to your MCP client configuration file.

Configuration

View docs
{
    "mcpServers": {
        "epics_mcp": {
            "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 EPICS PV and return a status alongside the value.

set_pv_value

Set a new value for a specified EPICS PV and return a status along with a confirmation message.

get_pv_info

Fetch detailed information about a specified EPICS PV and return a status with the PV metadata.