PLC实时通信服务器

mcpx-mcp-server是一个MCP服务器,允许生成式AI实时访问三菱PLC设备,支持通过自然语言指令操作PLC设备。

  • by YudaiKitamura
  • TypeScript
  • 本地部署
  • 5 星标
  • 更新于
在 GitHub 查看 YudaiKitamura/mcpx-mcp-server

使用说明

mcpx mcp服务器

日本語 | English

概述

mcpx mcp服务器是一个mcp服务器,允许生成式AI实时访问三菱PLC设备。

对于PLC通信,它使用MC协议库的NativeAOT构建 McpX.

特性

  • PLC设备的实时读取
  • 写入PLC设备
  • 通过生成式人工智能的自然语言指令进行操作
  • 按名称操作
    • 通过预定义名称,您可以操作设备而不必担心地址

示例提示

  • 启动输送机A。
  • 停止输送机A。
  • A门的状态如何?
  • 打开闸门A,然后启动输送机A。
  • 目前的产量是多少?
  • 将目标生产计数设置为9999。

用法

先决条件

必须安装以下应用程序:

PLC连接信息

在中设置PLC连接信息 app/src/.env.

PLC_IP=192.168.12.88  # PLC IP address
PLC_PORT=10000         # PLC port number
IS_ASCII=false         # PLC communication mode (true: ASCII, false: Binary)
IS_UDP=false           # PLC communication protocol (true: UDP, false: TCP)

注意:更改PLC连接信息时,需要重新启动MCP服务器。

设备定义

通过预定义设备定义(app/src/address-comment.json),您可以使用命名访问权限操作设备并应用访问规则。

字段 描述
address 指定设备地址。
name 指定设备名称。
comment 指定数据类型或规则。

注意:如果修改设备定义,则必须重新启动MCP服务器。

配置示例

[
  { "address": "M0", "name": "Conveyor A Start Command", "comment": "true = run, false = stop" },
  { "address": "M1", "name": "Conveyor A Status", "comment": "true = running, false = stopped" },
  { "address": "M2", "name": "Gate A Open Command", "comment": "true = open, false = closed" },
  { "address": "M3", "name": "Gate A Status", "comment": "true = open, false = closed" },
  { "address": "D0", "name": "Production Count", "comment": "short type" }
]

启动MCP服务器

docker compose up -d

停止MCP服务器

docker compose down

配置MCP服务器

根据您使用的生成AI配置MCP服务器。

Gemini CLI的示例配置

苹果电脑

/Users/{username}/.gemini/settings.json

Linux

/home/{username}/.gemini/settings.json

视窗

C:\Users\{username}\.gemini\settings.json

配置内容

将MCP服务器信息添加到 settings.json:

{
  "security": {
    "auth": {
      "selectedType": "oauth-personal"
    }
  },

  "mcpServers": {
    "mcpx": {
      "httpUrl": "http://localhost:3000/mcp"
    }
  }
}