93 lines
3.3 KiB
Markdown
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).
|