Files
Codesys-MCP/README.md

93 lines
3.3 KiB
Markdown

# Codesys MCP
MCP bridge for working on CODESYS projects from Cursor, backed by a Windows agent in Parallels.
## Architecture
```
Cursor (Mac) → MCP bridge (FastMCP) → Windows agent (FastAPI :8787) → CODESYS ScriptEngine
```
## Components
| Path | Role |
|------|------|
| `python_scripting/mcp_codesys_bridge/` | MCP server for Cursor |
| `python_scripting/windows_codesys_agent/` | Windows job API + ScriptEngine scripts |
| `vscode_codesys_companion/` | Cursor/VS Code extension (UI, ST syntax, commands) |
| `deploy/windows/start-agent.bat.example` | Windows agent startup template |
| `deploy/cursor/mcp.json.example` | Cursor MCP config template |
## Deployment (Parallels)
### Windows VM
1. Copy `python_scripting/windows_codesys_agent/` to `C:\codesys-agent\`
2. Install Python 3.12 ARM64 and create venv: `python -m venv C:\codesys-agent\.venv`
3. `pip install -r requirements.txt`
4. Copy `deploy/windows/start-agent.bat.example``C:\codesys-agent\start-agent.bat` and set `CODESYS_AGENT_TOKEN`
5. Run `C:\codesys-agent\start-agent.bat` (listens on `0.0.0.0:8787`)
Current VM: **Windows 11** at `10.211.55.3` (Parallels shared network).
### Mac (Cursor)
1. `python3 -m venv .venv && .venv/bin/pip install -r python_scripting/mcp_codesys_bridge/requirements.txt`
2. Add MCP server config to `~/.cursor/mcp.json` (see `deploy/cursor/mcp.json.example`)
3. Restart Cursor / reload MCP servers
## Cursor extension (CODESYS MCP Companion)
The companion extension adds a **CODESYS sidebar**, command palette actions, ST syntax highlighting, and job polling UI — alongside the MCP tools used by the AI in chat.
### Install
```bash
cd vscode_codesys_companion
npm install && npm run compile && npm run package
cursor --install-extension codesys-mcp-companion-0.1.0.vsix
```
Or from Cursor: **Extensions → … → Install from VSIX** and select the `.vsix` file.
### Configure
Copy `.vscode/settings.json.example` to `.vscode/settings.json` (or set **Settings → CODESYS MCP Companion**):
- `codesys.agentUrl``http://10.211.55.3:8787`
- `codesys.agentToken` → same token as the Windows agent
- `codesys.pythonPath` → project `.venv/bin/python`
- `codesys.bridgeScriptPath` → path to `mcp_codesys_bridge/server.py`
Reload Cursor, then run **CODESYS: Connect MCP Bridge** and **CODESYS: Health Check**.
### Extension vs MCP server
| Feature | Cursor MCP (`~/.cursor/mcp.json`) | Companion extension |
|---------|-----------------------------------|---------------------|
| AI chat tools | Yes | No |
| Sidebar (Projects/Jobs/Actions) | No | Yes |
| ST syntax + snippets | No | Yes |
| Command palette workflows | No | Yes |
| Sync current `.st` file | No | Yes |
Both can run together; the extension spawns its own bridge process when you connect.
## Smoke tests
```bash
curl http://10.211.55.3:8787/health
```
Use MCP tools `codesys_health`, `create_project` (dry_run), `read_project_inventory`.
**Note:** Project paths on Parallels shared folders (`C:\Mac\Home\...` / OneDrive) may fail when the agent runs as SYSTEM. Use native Windows paths like `C:\Temp\codesys-tests\` for reliable ScriptEngine access.
## Docs
See `python_scripting/how-to-use-codesys-mcp.md` and `python_scripting/codesys-mcp-bridge-operations.md`.
## Origin
Ported from [codesys-mcp-agent](https://git.paraskeva.net/nearxos/codesys-mcp-agent).