@codesys/mcp工具包
用于CODESYS V3编程环境的模型上下文协议(MCP)服务器。该工具包实现了MCP客户端(如Claude Desktop)和CODESYS之间的无缝交互,允许通过CODESYS脚本引擎自动化项目管理、POU创建、代码编辑和编译任务。
🌟 特性
- 项目管理
- 打开现有的CODESYS项目(open_project) - 从标准模板创建新项目(create_project) - 保存项目更改(save_project)
- 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", // `:用于解析传递给工具的相对项目路径的工作区目录。默认为启动命令的目录(由其他应用程序运行时可能无法预测)。如果使用相对路径,可能需要显式设置。
- `-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:` 消息或Python `DEBUG:` / `ERROR:` 从CODESYS脚本执行打印到stderr的消息。
- 确保 `--codesys-path` 和 `--codesys-profile` 传递给命令的参数是正确的,并且指向启用了脚本的有效CODESYS安装。
- 验证传递给工具的项目路径和对象路径是否正确(使用正斜杠 `/`).
- 确保没有其他CODESYS实例以冲突的方式运行(例如,在配置文件上持有锁)。
- **`command not found: codesys-mcp-tool`:**
- 确保该软件包已全局安装(`npm install -g @codesys/mcp-toolkit`).
- 确保npm全局bin目录在您的系统中 `PATH` 环境变量。找到它 `npm config get prefix` 并添加 `bin` 将子目录(或Windows上的主目录本身)添加到PATH中。
- **检查日志:**
- 克劳德桌面日志: `C:\Users\\AppData\Roaming\Claude\logs\` (Windows)
## 🤝 贡献
欢迎投稿、问题和功能请求!请随时查看问题页面。(可选择添加一个包含更多详细信息的CONTRIBUTING.md文件)。
## 📝 许可证
此项目根据MIT许可证获得许可-有关详细信息,请参阅许可证文件。
## 🙏 致谢
- CODESYS GmbH团队负责强大的CODESYS平台及其脚本引擎。
- 用于定义交互标准的模型上下文协议项目。
- 所有帮助改进此工具包的贡献者和用户。