这是一个针对CODESYS V3编程环境的Model Context Protocol (MCP)服务器工具包。该工具包实现了MCP客户端(如Claude Desktop)与CODESYS之间的无缝交互,允许通过CODESYS脚本引擎自动化项目管理、程序组织单元(POU)创建、代码编辑和编译任务。
项目管理
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内部使用Python 2.7作为其脚本引擎,但此工具包处理了交互;您无需单独管理Python。)
推荐使用npm全局安装:
npm install -g @codesys/mcp-toolkit
这会将包全局安装,使得codesys-mcp-tool命令可以在系统终端的PATH中使用。
(高级用户也可以从源码安装以进行开发——如果可用,请参阅CONTRIBUTING.md。)
此工具包需要知道您的CODESYS安装位置以及要使用的配置文件。配置通常在MCP客户端应用程序(如Claude Desktop)中完成。
由于通过包装器(如npx)在某些宿主应用(如Claude Desktop)中启动Node.js工具时可能出现环境变量问题(特别是PATH),强烈建议配置您的MCP客户端直接运行已安装的命令codesys-mcp-tool。
示例配置(Claude Desktop中的settings.json -> mcpServers):
{
"mcpServers": {
// ... 其他服务器 ...
"codesys_local": {
"command": "codesys-mcp-tool", // <<< 使用直接命令名称
"args": [
// 直接使用标志传递参数给工具
"--codesys-path", "C:\\Program Files\\Path\\To\\Your\\CODESYS\\Common\\CODESYS.exe",
"--codesys-profile", "Your CODESYS Profile Name"
// 可选:如果需要,添加 --workspace "/path/to/your/projects"
]
}
// ... 其他服务器 ...
}
}
关键步骤:
"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全局安装通常可以解决这个问题。npx - 不推荐)通过npx启动可能会导致立即出现错误(如'C:\Program' is not recognized...),这可能是由于npx如何处理执行环境所致。如果可能,请使用上述直接命令方法。 如果必须使用npx:
// 示例使用npx(可能有问题 - 使用时需谨慎):
{
"mcpServers": {
"codesys_local": {
"command": "npx",
"args": [
"-y", // 告诉npx如果未找到全局安装则临时安装
"@codesys/mcp-toolkit",
// 工具的参数必须在包名之后
"--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...错误:
npx在类似Claude Desktop的环境中启动工具时。提供给进程的执行环境(PATH变量)可能导致内部CODESYS命令(如运行Python)失败。"command": "codesys-mcp-tool") 而不是使用 "command": "npx"。请参阅上面的推荐配置方法部分。工具失败/输出中有错误:
INTEROP:消息或从CODESYS脚本执行打印到stderr的Python DEBUG: / ERROR:消息。--codesys-path和--codesys-profile参数正确,并指向一个启用了脚本功能的有效CODESYS安装。/)。找不到命令:codesys-mcp-tool:
npm install -g @codesys/mcp-toolkit)。PATH环境变量中。使用npm config get prefix找到它,并将bin子目录(或Windows上的主目录本身)添加到PATH中。检查日志:
C:\Users\<YourUsername>\AppData\Roaming\Claude\logs\ (Windows)欢迎贡献、问题报告和功能请求!请随意查看问题页面。(可选地添加一个包含更多细节的CONTRIBUTING.md文件)。
该项目根据MIT许可发布 - 详情见LICENSE文件。