使用说明
@codesys/mcp工具包
用于CODESYS V3编程环境的模型上下文协议(MCP)服务器。该工具包实现了MCP客户端(如Claude Desktop)和CODESYS之间的无缝交互,允许通过CODESYS脚本引擎自动化项目管理、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测试) 脚本引擎 组件在安装过程中启用。
- 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)中完成。
推荐配置方法(直接命令)
由于潜在的环境变量问题(尤其是 PATH)当通过包装器启动Node.js工具时,例如 npx 在某些主机应用程序(例如,Claude Desktop)中,它是 强烈建议 配置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中可见)。 - 确保
codesys-mcp-tool命令可以在MCP客户端应用程序运行的系统PATH中访问。全球安装通过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_PATHenv-var有一个默认值,但不建议依赖它)。-f, --codesys-profile <profile>:CODESYS配置文件的名称。(必填,覆盖CODESYS_PROFILEenv-var有一个默认值,但不建议依赖它)。-w, --workspace <dir>:用于解析传递给工具的相对项目路径的工作区目录。默认为启动命令的目录(由其他应用程序运行时可能无法预测)。如果使用相对路径,可能需要显式设置。-h, --help:显示帮助消息。--version:显示包版本。
🔍 故障排除
-
'C:\Program' is not recognized...连接后立即出现错误:- 原因: 这通常发生在工具通过以下方式启动时
npx在Claude Desktop这样的环境中。执行环境(PATH变量)可能会导致内部CODESYS命令(如运行Python)失败。 - 解决方案: 配置您的MCP客户端以运行该命令 直接 (
"command": "codesys-mcp-tool")而不是使用"command": "npx"。请参阅 推荐配置方法 上面的部分。
- 原因: 这通常发生在工具通过以下方式启动时
-
工具输出失败/错误:
- 检查MCP客户端应用程序的日志(例如,Claude Desktop日志)。寻找
INTEROP:消息或PythonDEBUG:/ERROR:从CODESYS脚本执行打印到stderr的消息。 - 确保
--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中。
- 确保该软件包已全局安装(
-
检查日志:
- 克劳德桌面日志:
C:\Users\<YourUsername>\AppData\Roaming\Claude\logs\(Windows)
- 克劳德桌面日志:
🤝 贡献
欢迎投稿、问题和功能请求!请随时查看问题页面。(可选择添加一个包含更多详细信息的CONTRIBUTING.md文件)。
📝 许可证
此项目根据MIT许可证获得许可-有关详细信息,请参阅许可证文件。
🙏 致谢
- CODESYS GmbH团队负责强大的CODESYS平台及其脚本引擎。
- 用于定义交互标准的模型上下文协议项目。
- 所有帮助改进此工具包的贡献者和用户。