关于 @codesys/mcp-toolkit
@codesys/mcp-toolkit 是面向 CODESYS V3 编程环境的 MCP 服务,供 Claude Desktop 等 MCP 客户端通过 CODESYS Scripting Engine 自动化操作项目。适合需要批量处理 PLC 项目的自动化工程师。
主要功能
- 01项目的打开、创建与保存
- 02POU 的创建与声明、实现代码设置
- 03Function Block 的属性与方法创建
- 04项目编译
- 05通过 MCP 资源读取项目结构与 POU 代码
适用场景
- 01通过自然语言批量创建 Function Block 及其方法
- 02读取现有项目的对象结构与 POU 代码进行审阅
- 03在自动化流程中调用编译并检查结果
MCP 相关
该项目是 MCP 服务,向 MCP 客户端提供项目管理、POU 编辑和编译等工具,并通过 codesys:// 资源暴露项目状态、结构与代码。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
@codesys/mcp-toolkit
适用于 CODESYS V3 编程环境的模型上下文协议(MCP)服务。此工具包可让 MCP 客户端(例如 Claude Desktop)与 CODESYS 无缝交互,从而通过 CODESYS Scripting Engine 自动执行项目管理、POU 创建、代码编辑和编译任务。
🌟 功能
-
项目管理
- 打开现有的 CODESYS 项目(
open_project) - 根据标准模板创建新项目(
create_project) - 保存项目更改(
save_project)
- 打开现有的 CODESYS 项目(
-
POU 管理
- 创建程序、功能块和函数(
create_pou) - 设置声明代码和实现代码(
set_pou_code) - 为功能块创建属性(
create_property) - 为功能块创建方法(
create_method) - 编译项目(
compile_project)
- 创建程序、功能块和函数(
-
MCP 资源
codesys://project/status:检查脚本状态和当前打开的项目状态。codesys://project/{+project_path}/structure:获取指定项目的对象结构。codesys://project/{+project_path}/pou/{+pou_path}/code:读取指定 POU、方法或属性访问器的声明代码和实现代码。
📋 前提条件
- CODESYS V3:可正常使用的 CODESYS V3 安装(已在 3.5 SP21 上测试),安装时需启用 Scripting Engine 组件。
- Node.js:建议使用 18.0.0 或更高版本。
- MCP 客户端:支持 MCP 的应用(例如 Claude Desktop)。
(注意:CODESYS 在内部使用 Python 2.7 运行脚本引擎,但此工具包会处理相关交互;你无需单独管理 Python。)
🚀 安装
推荐使用 npm 全局安装:
npm install -g @codesys/mcp-toolkit
此操作会全局安装该包,使 codesys-mcp-tool 命令可在系统终端的 PATH 中使用。
(高级用户也可以从源代码安装以进行开发——如有 CONTRIBUTING.md,请参阅其中的说明。)
🔧 配置(重要!)
此工具包需要知道 CODESYS 的安装位置以及要使用的配置文件。通常在 MCP 客户端应用(例如 Claude Desktop)中进行配置。
推荐的配置方法(直接命令)
在某些宿主应用(例如 Claude Desktop)中,通过 npx 等封装程序启动 Node.js 工具时,可能会遇到环境变量问题(尤其是 PATH)。因此,强烈建议将 MCP 客户端配置为直接运行已安装的 codesys-mcp-tool 命令。
Claude Desktop 配置示例(settings.json -> mcpServers):
{
"mcpServers": {
// ... other servers ...
"codesys_local": {
"command": "codesys-mcp-tool", // <<< Use the direct command name
"args": [
// Pass arguments directly to the tool using flags
"--codesys-path", "C:\\Program Files\\Path\\To\\Your\\CODESYS\\Common\\CODESYS.exe",
"--codesys-profile", "Your CODESYS Profile Name"
// Optional: Add --workspace "/path/to/your/projects" if needed
]
}
// ... other servers ...
}
}
关键步骤:
- 将
"C:\\Program Files\\Path\\To\\Your\\CODESYS\\Common\\CODESYS.exe"替换为你的CODESYS.exe文件的完整且正确的路径。 - 将
"Your CODESYS Profile Name"替换为你要使用的 CODESYS 配置文件的准确名称(可在 CODESYS UI 中查看)。 - 确保 MCP 客户端应用运行时,系统 PATH 中可以访问
codesys-mcp-tool命令。通过npm install -g全局安装通常即可满足这一要求。 - 重启 MCP 客户端应用(例如 Claude Desktop),使设置更改生效。
替代配置方法(使用 npx——不推荐)
在某些环境中,使用 npx 启动时可能会立即报错('C:\Program' is not recognized...),原因可能是 npx 处理执行环境的方式。如有可能,请使用上述直接命令方法。 如果必须使用 npx:
// Example using npx (POTENTIALLY PROBLEMATIC - USE WITH CAUTION):
{
"mcpServers": {
"codesys_local": {
"command": "npx",
"args": [
"-y", // Tells npx to install temporarily if not found globally
"@codesys/mcp-toolkit",
// Arguments for the tool MUST come AFTER the package name
"--codesys-path", "C:\\Program Files\\Path\\To\\Your\\CODESYS\\Common\\CODESYS.exe",
"--codesys-profile", "Your CODESYS Profile Name"
]
}
}
}
(注意:在包名后添加 -- 分隔符有时可能对 npx 有帮助,但无法保证能解决环境问题。)
🛠️ 命令行参数
直接运行 codesys-mcp-tool 或进行配置时,可以使用以下参数:
-p, --codesys-path <path>:CODESYS.exe的完整路径。(必填,会覆盖CODESYS_PATH环境变量;虽然有默认值,但不建议依赖该默认值。)-f, --codesys-profile <profile>:CODESYS 配置文件的名称。(必填,会覆盖CODESYS_PROFILE环境变量;虽然有默认值,但不建议依赖该默认值。)-w, --workspace <dir>:用于解析传递给工具的相对项目路径的工作区目录。默认为启动命令时所在的目录(通过其他应用运行时,该目录可能不可预测)。如果使用相对路径,可能需要显式设置此参数。-h, --help:显示帮助信息。--version:显示软件包版本。
🔍 故障排除
-
连接后立即出现
'C:\Program' is not recognized...错误:- 原因: 通常在 Claude Desktop 等环境中通过
npx启动工具时会出现此问题。提供给进程的执行环境(PATH变量)可能导致 CODESYS 内部命令(例如运行 Python)失败。 - 解决方案: 配置 MCP 客户端直接运行命令(
"command": "codesys-mcp-tool"),而不是使用"command": "npx"。请参阅上文的推荐配置方法部分。
- 原因: 通常在 Claude Desktop 等环境中通过
-
工具运行失败 / 输出中出现错误:
- 检查 MCP 客户端应用的日志(例如 Claude Desktop 日志)。查找
INTEROP:消息,或 CODESYS 脚本执行时输出到 stderr 的 PythonDEBUG:/ERROR:消息。 - 确保传递给命令的
--codesys-path和--codesys-profile参数正确,并且指向已启用脚本功能的有效 CODESYS 安装。 - 确认传递给工具的项目路径和对象路径正确(使用正斜杠
/)。 - 确保没有其他 CODESYS 实例以冲突方式运行(例如占用了配置文件锁)。
- 检查 MCP 客户端应用的日志(例如 Claude Desktop 日志)。查找
-
command not found: codesys-mcp-tool:- 确保已全局安装该软件包(
npm install -g @codesys/mcp-toolkit)。 - 确保 npm 全局 bin 目录位于系统的
PATH环境变量中。使用npm config get prefix查找该目录,并将其bin子目录(Windows 上也可以是主目录本身)添加到 PATH。
- 确保已全局安装该软件包(
-
检查日志:
- Claude Desktop 日志:
C:\Users\<YourUsername>\AppData\Roaming\Claude\logs\(Windows)
- Claude Desktop 日志:
🤝 参与贡献
欢迎贡献代码、提交问题和功能请求!欢迎查看 issues 页面。(也可以选择添加包含更多详细信息的 CONTRIBUTING.md 文件。)
📝 许可证
本项目采用 MIT License 授权,详情请参阅 LICENSE 文件。
🙏 致谢
- 感谢 CODESYS GmbH 团队打造强大的 CODESYS 平台及其脚本引擎。
- 感谢 Model Context Protocol 项目制定交互标准。
- 感谢所有帮助改进此工具包的贡献者和用户。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。