@codesys/mcp-toolkit 1.5.7 → 2.0.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +153 -183
- package/LICENSE +21 -21
- package/README.md +224 -107
- package/dist/actions.d.ts +28 -0
- package/dist/actions.js +98 -0
- package/dist/actions.js.map +1 -0
- package/dist/bridge/bridge.d.ts +105 -0
- package/dist/bridge/bridge.js +400 -0
- package/dist/bridge/bridge.js.map +1 -0
- package/dist/cli.d.ts +2 -0
- package/dist/cli.js +196 -0
- package/dist/cli.js.map +1 -0
- package/dist/codesys/cache.d.ts +48 -0
- package/dist/codesys/cache.js +82 -0
- package/dist/codesys/cache.js.map +1 -0
- package/dist/codesys/changes.d.ts +57 -0
- package/dist/codesys/changes.js +133 -0
- package/dist/codesys/changes.js.map +1 -0
- package/dist/codesys/decl.d.ts +45 -0
- package/dist/codesys/decl.js +251 -0
- package/dist/codesys/decl.js.map +1 -0
- package/dist/codesys/devices.d.ts +34 -0
- package/dist/codesys/devices.js +82 -0
- package/dist/codesys/devices.js.map +1 -0
- package/dist/codesys/diff.d.ts +13 -0
- package/dist/codesys/diff.js +61 -0
- package/dist/codesys/diff.js.map +1 -0
- package/dist/codesys/install.d.ts +40 -0
- package/dist/codesys/install.js +144 -0
- package/dist/codesys/install.js.map +1 -0
- package/dist/codesys/library-browse.d.ts +19 -0
- package/dist/codesys/library-browse.js +57 -0
- package/dist/codesys/library-browse.js.map +1 -0
- package/dist/codesys/outline.d.ts +32 -0
- package/dist/codesys/outline.js +219 -0
- package/dist/codesys/outline.js.map +1 -0
- package/dist/codesys/simulation.d.ts +34 -0
- package/dist/codesys/simulation.js +57 -0
- package/dist/codesys/simulation.js.map +1 -0
- package/dist/codesys/st.d.ts +36 -0
- package/dist/codesys/st.js +69 -0
- package/dist/codesys/st.js.map +1 -0
- package/dist/daemon.d.ts +46 -0
- package/dist/daemon.js +173 -0
- package/dist/daemon.js.map +1 -0
- package/dist/driver.d.ts +25 -0
- package/dist/driver.js +33 -0
- package/dist/driver.js.map +1 -0
- package/dist/panel/sim-panel.html +357 -0
- package/dist/panel/viewer.html +126 -0
- package/dist/panel-types.d.ts +20 -0
- package/dist/panel-types.js +3 -0
- package/dist/panel-types.js.map +1 -0
- package/dist/panel.d.ts +27 -0
- package/dist/panel.js +208 -0
- package/dist/panel.js.map +1 -0
- package/dist/server.d.ts +5 -0
- package/dist/server.js +33 -941
- package/dist/server.js.map +1 -0
- package/dist/tools.d.ts +103 -0
- package/dist/tools.js +793 -0
- package/dist/tools.js.map +1 -0
- package/dist/viewer.d.ts +14 -0
- package/dist/viewer.js +125 -0
- package/dist/viewer.js.map +1 -0
- package/package.json +37 -21
- package/watcher/mcp_compat.py +147 -0
- package/watcher/mcp_ops.py +1178 -0
- package/watcher/mcp_sim.py +246 -0
- package/watcher/watcher.py +255 -0
- package/.claude/settings.local.json +0 -29
- package/CLAUDE.md +0 -26
- package/CONTRIBUTING.md +0 -72
- package/README.md.enhanced +0 -155
- package/codesys-mcp-toolkit-1.2.0.tgz +0 -0
- package/codesys-mcp-toolkit-1.2.1.tgz +0 -0
- package/codesys-mcp-toolkit-1.5.7.tgz +0 -0
- package/dist/bin.js +0 -75
- package/dist/check_session_paths.js +0 -149
- package/dist/codesys_interop.js +0 -435
- package/dist/direct_session_command.js +0 -293
- package/dist/scriptLoader.js +0 -165
- package/dist/scripts/check_status.py +0 -21
- package/dist/scripts/compile_project.py +0 -65
- package/dist/scripts/create_method.py +0 -80
- package/dist/scripts/create_pou.py +0 -102
- package/dist/scripts/create_project.py +0 -116
- package/dist/scripts/create_property.py +0 -78
- package/dist/scripts/ensure_project_open.py +0 -154
- package/dist/scripts/find_object_by_path.py +0 -111
- package/dist/scripts/get_pou_code.py +0 -91
- package/dist/scripts/get_project_structure.py +0 -72
- package/dist/scripts/open_project.py +0 -25
- package/dist/scripts/save_project.py +0 -29
- package/dist/scripts/session_status.py +0 -281
- package/dist/scripts/set_pou_code.py +0 -109
- package/dist/scripts/start_session.py +0 -809
- package/dist/scripts/stop_session.py +0 -324
- package/dist/sessionManager.js +0 -798
- package/docs/configuration.md +0 -141
- package/docs/index.md +0 -26
- package/docs/installation.md +0 -84
- package/docs/session_management.md +0 -110
- package/examples/README.md +0 -78
- package/examples/sample_config.json +0 -32
- package/replacements_session_status.txt +0 -16
- package/scriptDoc.txt +0 -8679
- package/scripts/build.js +0 -25
- package/scripts/fix_fstrings.py +0 -76
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/** Data the panel reads through its app-only tools. Shared by server and panel. */
|
|
2
|
+
export interface PanelState {
|
|
3
|
+
/** False when a newer panel took over; this one should stop polling. */
|
|
4
|
+
current: boolean;
|
|
5
|
+
/** The user paused Claude ("Pause Claude"): Claude's changing tools are held. */
|
|
6
|
+
held?: boolean;
|
|
7
|
+
heldSince?: string;
|
|
8
|
+
/** What Claude did last that moves the panel's view, and how long it has been quiet since. */
|
|
9
|
+
phase?: {
|
|
10
|
+
view: "code";
|
|
11
|
+
tool: string;
|
|
12
|
+
quietMs: number;
|
|
13
|
+
};
|
|
14
|
+
/** CODESYS's own simulation, while it runs. */
|
|
15
|
+
codesysSim?: {
|
|
16
|
+
state: string;
|
|
17
|
+
forced: string[];
|
|
18
|
+
cycles: number;
|
|
19
|
+
};
|
|
20
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"panel-types.js","sourceRoot":"","sources":["../src/panel-types.ts"],"names":[],"mappings":"AAAA,mFAAmF"}
|
package/dist/panel.d.ts
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { McpServer } from "@modelcontextprotocol/server";
|
|
2
|
+
import type { PanelState } from "./panel-types.js";
|
|
3
|
+
import type { ProjectCache } from "./codesys/cache.js";
|
|
4
|
+
import { type ChangeStore } from "./codesys/changes.js";
|
|
5
|
+
import type { Driver } from "./driver.js";
|
|
6
|
+
export declare const PANEL_URI = "ui://codesys/sim-panel.html";
|
|
7
|
+
/** The name the browser viewer's own connection uses; it isn't a card. */
|
|
8
|
+
export declare const VIEWER_CLIENT = "codesys-viewer";
|
|
9
|
+
/** The built single-file panel (dist/panel/sim-panel.html). */
|
|
10
|
+
export declare function panelHtml(): string;
|
|
11
|
+
/** What the panel reads from the session. */
|
|
12
|
+
export interface PanelDeps {
|
|
13
|
+
cache?: ProjectCache;
|
|
14
|
+
changes?: ChangeStore;
|
|
15
|
+
project: () => string | undefined;
|
|
16
|
+
/** Which CODESYS, Scripting add-on and compiler the session uses. */
|
|
17
|
+
versions?: () => string;
|
|
18
|
+
/** CODESYS's own simulation, while it runs. */
|
|
19
|
+
codesysSim?: () => PanelState["codesysSim"];
|
|
20
|
+
/** "Pause Claude". */
|
|
21
|
+
driver?: Driver;
|
|
22
|
+
/** Revert an object in CODESYS to a checkpoint (the revert_object logic). */
|
|
23
|
+
revert?: (path: string, to: string) => Promise<string>;
|
|
24
|
+
/** The server log: how far a card got, since a client can accept the tool and draw nothing. */
|
|
25
|
+
log?: (message: string) => void;
|
|
26
|
+
}
|
|
27
|
+
export declare function registerPanel(server: McpServer, ws?: PanelDeps): void;
|
package/dist/panel.js
ADDED
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The CODESYS panel: an MCP App (ui:// resource) plus the app-only tools it
|
|
3
|
+
* polls. It shows the project tree, the code as Claude writes it, compile
|
|
4
|
+
* problems and the changes to review.
|
|
5
|
+
*
|
|
6
|
+
* Every open_sim_panel call mounts a new panel in the host and older ones keep
|
|
7
|
+
* running, so the server remembers the newest panel id and tells older panels
|
|
8
|
+
* to stop polling (`current: false`).
|
|
9
|
+
*/
|
|
10
|
+
import { existsSync, readFileSync } from "node:fs";
|
|
11
|
+
import { dirname, join } from "node:path";
|
|
12
|
+
import { fileURLToPath } from "node:url";
|
|
13
|
+
import { randomUUID } from "node:crypto";
|
|
14
|
+
import { getUiCapability, registerAppResource, registerAppTool, RESOURCE_MIME_TYPE } from "@modelcontextprotocol/ext-apps/server";
|
|
15
|
+
import * as z from "zod/v4";
|
|
16
|
+
import { diffObjects, REVIEW, snapshot } from "./codesys/changes.js";
|
|
17
|
+
export const PANEL_URI = "ui://codesys/sim-panel.html";
|
|
18
|
+
/** The name the browser viewer's own connection uses; it isn't a card. */
|
|
19
|
+
export const VIEWER_CLIENT = "codesys-viewer";
|
|
20
|
+
const HERE = dirname(fileURLToPath(import.meta.url));
|
|
21
|
+
/** The built single-file panel (dist/panel/sim-panel.html). */
|
|
22
|
+
export function panelHtml() {
|
|
23
|
+
for (const p of [join(HERE, "panel", "sim-panel.html"), join(HERE, "..", "dist", "panel", "sim-panel.html")]) {
|
|
24
|
+
if (existsSync(p))
|
|
25
|
+
return readFileSync(p, "utf8");
|
|
26
|
+
}
|
|
27
|
+
return `<!doctype html><meta charset="utf-8"><body style="font-family:sans-serif;padding:16px">The panel is not built. Run <code>npm run build</code>.</body>`;
|
|
28
|
+
}
|
|
29
|
+
/** Which panel is the newest; shared by all connections of this process. */
|
|
30
|
+
let latestPanel;
|
|
31
|
+
const json = (data) => ({ content: [{ type: "text", text: JSON.stringify(data) }], structuredContent: data });
|
|
32
|
+
export function registerPanel(server, ws = { project: () => undefined }) {
|
|
33
|
+
const clientName = () => server.server.getClientVersion()?.name ?? "the client";
|
|
34
|
+
let pageRunning = false;
|
|
35
|
+
registerAppResource(server, "CODESYS panel", PANEL_URI, { mimeType: RESOURCE_MIME_TYPE, description: "Live view of the CODESYS project: tree, code, compile problems and changes to review." }, async () => {
|
|
36
|
+
ws.log?.(`card: ${clientName()} fetched the panel page`);
|
|
37
|
+
return { contents: [{ uri: PANEL_URI, mimeType: RESOURCE_MIME_TYPE, text: panelHtml(), _meta: { ui: { prefersBorder: true } } }] };
|
|
38
|
+
});
|
|
39
|
+
const tools = [];
|
|
40
|
+
// Separate from the `codesys` tool because MCP ties a panel to a tool's definition:
|
|
41
|
+
// on `codesys` it would mount a new panel on every call. So it costs its own approval.
|
|
42
|
+
// Listed for every client: Claude Desktop's Code tab draws the card without declaring MCP Apps.
|
|
43
|
+
registerAppTool(server, "open_sim_panel", {
|
|
44
|
+
description: "Show the live CODESYS panel to the user in this chat: the project tree, the code as you write it, compile problems and the changes to review. Read-only. Returns a text snapshot too.",
|
|
45
|
+
inputSchema: z.object({}),
|
|
46
|
+
annotations: { readOnlyHint: true, destructiveHint: false, openWorldHint: false },
|
|
47
|
+
_meta: { ui: { resourceUri: PANEL_URI } },
|
|
48
|
+
}, async () => {
|
|
49
|
+
const panelId = randomUUID();
|
|
50
|
+
latestPanel = panelId;
|
|
51
|
+
ws.log?.(`card: ${clientName()} called open_sim_panel`);
|
|
52
|
+
const project = ws.project();
|
|
53
|
+
const sim = ws.codesysSim?.();
|
|
54
|
+
const lines = [`Panel opened. ${project ? `Project: ${project}.` : "No project is open yet."}`];
|
|
55
|
+
if (sim)
|
|
56
|
+
lines.push(`CODESYS simulation: application ${sim.state}.`);
|
|
57
|
+
// Some hosts show the model only structuredContent when it is present,
|
|
58
|
+
// so the snapshot goes there too, not just in content.
|
|
59
|
+
const text = lines.join("\n");
|
|
60
|
+
return { content: [{ type: "text", text }], structuredContent: { panelId, snapshot: text } };
|
|
61
|
+
});
|
|
62
|
+
const appOnly = { ui: { resourceUri: PANEL_URI, visibility: ["app"] } };
|
|
63
|
+
tools.push(registerAppTool(server, "get_sim_state", {
|
|
64
|
+
description: "Panel: state snapshot.",
|
|
65
|
+
inputSchema: z.object({ panelId: z.string().optional() }),
|
|
66
|
+
annotations: { readOnlyHint: true },
|
|
67
|
+
_meta: appOnly,
|
|
68
|
+
}, async ({ panelId }) => {
|
|
69
|
+
if (!pageRunning && clientName() !== VIEWER_CLIENT) {
|
|
70
|
+
pageRunning = true;
|
|
71
|
+
ws.log?.(`card: the panel page is running in ${clientName()}`);
|
|
72
|
+
}
|
|
73
|
+
const codesysSim = ws.codesysSim?.();
|
|
74
|
+
const state = {
|
|
75
|
+
current: !panelId || !latestPanel || panelId === latestPanel,
|
|
76
|
+
...(codesysSim ? { codesysSim } : {}),
|
|
77
|
+
...(ws.driver?.held ? { held: true, heldSince: ws.driver.since } : {}),
|
|
78
|
+
...(ws.driver?.phase ? { phase: { view: ws.driver.phase.view, tool: ws.driver.phase.tool, quietMs: Date.now() - (ws.driver.lastCallAt ?? ws.driver.phase.at) } } : {}),
|
|
79
|
+
};
|
|
80
|
+
return json(state);
|
|
81
|
+
}));
|
|
82
|
+
let baseline;
|
|
83
|
+
const sessionBase = async () => {
|
|
84
|
+
const project = ws.project();
|
|
85
|
+
if (!project || !ws.changes)
|
|
86
|
+
return undefined;
|
|
87
|
+
if (baseline?.project !== project) {
|
|
88
|
+
const cp = await ws.changes.review(project);
|
|
89
|
+
if (!cp)
|
|
90
|
+
return undefined;
|
|
91
|
+
baseline = { project, objects: new Map(cp.objects.map((o) => [o.path.toLowerCase(), o])) };
|
|
92
|
+
}
|
|
93
|
+
return baseline.objects;
|
|
94
|
+
};
|
|
95
|
+
tools.push(registerAppTool(server, "get_workspace", {
|
|
96
|
+
description: "Panel: the project tree with badges (changed since session start, compile errors), the last compile and what Claude touched last. Answers {unchanged} when version matches.",
|
|
97
|
+
inputSchema: z.object({ version: z.number().int().optional() }),
|
|
98
|
+
annotations: { readOnlyHint: true },
|
|
99
|
+
_meta: appOnly,
|
|
100
|
+
}, async ({ version }) => {
|
|
101
|
+
const cache = ws.cache;
|
|
102
|
+
if (!cache)
|
|
103
|
+
return json({ version: 0, tree: null, reason: "no cache" });
|
|
104
|
+
if (version !== undefined && version === cache.version && cache.nodes)
|
|
105
|
+
return json({ unchanged: true, version: cache.version });
|
|
106
|
+
if (!cache.nodes)
|
|
107
|
+
return json({ version: cache.version, project: ws.project() ?? null, tree: null });
|
|
108
|
+
const base = await sessionBase();
|
|
109
|
+
const changes = base ? diffObjects([...base.values()], snapshot(cache.nodes)) : [];
|
|
110
|
+
const changeOf = new Map(changes.map((c) => [c.path.toLowerCase(), c.change]));
|
|
111
|
+
const problems = new Map();
|
|
112
|
+
for (const m of cache.compile?.messages ?? []) {
|
|
113
|
+
if (!m.object)
|
|
114
|
+
continue;
|
|
115
|
+
const k = m.object.replace(/^\/+/, "").toLowerCase();
|
|
116
|
+
const p = problems.get(k) ?? { errors: 0, warnings: 0 };
|
|
117
|
+
if (m.severity === "error")
|
|
118
|
+
p.errors++;
|
|
119
|
+
else
|
|
120
|
+
p.warnings++;
|
|
121
|
+
problems.set(k, p);
|
|
122
|
+
}
|
|
123
|
+
const tree = cache.nodes.map((n) => {
|
|
124
|
+
const k = n.path.toLowerCase();
|
|
125
|
+
const ch = changeOf.get(k);
|
|
126
|
+
const pr = problems.get(k);
|
|
127
|
+
return {
|
|
128
|
+
path: n.path,
|
|
129
|
+
name: n.name,
|
|
130
|
+
kind: n.kind,
|
|
131
|
+
...(n.sub ? { sub: n.sub } : {}),
|
|
132
|
+
depth: n.depth,
|
|
133
|
+
...(n.st === false ? { st: false } : {}),
|
|
134
|
+
...(ch ? { change: ch === "added" ? "A" : "M" } : {}),
|
|
135
|
+
...(pr ? pr : {}),
|
|
136
|
+
};
|
|
137
|
+
});
|
|
138
|
+
return json({
|
|
139
|
+
version: cache.version,
|
|
140
|
+
project: ws.project() ?? null,
|
|
141
|
+
versions: ws.versions?.() || undefined,
|
|
142
|
+
tree,
|
|
143
|
+
removed: changes.filter((c) => c.change === "removed").map((c) => c.path),
|
|
144
|
+
changeCount: changes.length,
|
|
145
|
+
compile: cache.compile ?? null,
|
|
146
|
+
focus: cache.focus ?? null,
|
|
147
|
+
});
|
|
148
|
+
}));
|
|
149
|
+
tools.push(registerAppTool(server, "get_object", {
|
|
150
|
+
description: "Panel: one object's CODESYS text, and its text at session start for the diff view.",
|
|
151
|
+
inputSchema: z.object({ path: z.string() }),
|
|
152
|
+
annotations: { readOnlyHint: true },
|
|
153
|
+
_meta: appOnly,
|
|
154
|
+
}, async ({ path }) => {
|
|
155
|
+
const n = ws.cache?.get(path);
|
|
156
|
+
const base = (await sessionBase())?.get(path.toLowerCase());
|
|
157
|
+
if (!n && !base)
|
|
158
|
+
return json({ object: null });
|
|
159
|
+
return json({
|
|
160
|
+
object: n ? { path: n.path, name: n.name, kind: n.kind, sub: n.sub ?? null, st: n.st ?? null, declaration: n.declaration ?? null, implementation: n.implementation ?? null } : null,
|
|
161
|
+
base: base ? { declaration: base.declaration ?? null, implementation: base.implementation ?? null } : null,
|
|
162
|
+
});
|
|
163
|
+
}));
|
|
164
|
+
/** A user action from the panel; a failure is an answer, not a tool error. */
|
|
165
|
+
const action = (name, description, schema, fn) => {
|
|
166
|
+
tools.push(registerAppTool(server, name, { description: `Panel (user action): ${description}`, inputSchema: schema, _meta: appOnly }, (async (a) => {
|
|
167
|
+
try {
|
|
168
|
+
return json({ ok: true, message: await fn(a) });
|
|
169
|
+
}
|
|
170
|
+
catch (e) {
|
|
171
|
+
return json({ ok: false, message: e.message });
|
|
172
|
+
}
|
|
173
|
+
})));
|
|
174
|
+
};
|
|
175
|
+
action("ui_hold", "pause or resume Claude (its tools that change the project or the simulation are held).", z.object({ on: z.boolean() }), async (a) => {
|
|
176
|
+
if (!ws.driver)
|
|
177
|
+
throw new Error("Pause Claude is not available.");
|
|
178
|
+
ws.driver.hold(a.on);
|
|
179
|
+
ws.cache?.bump();
|
|
180
|
+
return a.on ? "paused Claude" : "resumed Claude";
|
|
181
|
+
});
|
|
182
|
+
action("ui_accept_object", "accept the current text of an object (and its children) as reviewed.", z.object({ path: z.string() }), async (a) => {
|
|
183
|
+
const project = ws.project();
|
|
184
|
+
if (!project || !ws.changes || !ws.cache?.nodes)
|
|
185
|
+
throw new Error("No project is open.");
|
|
186
|
+
const n = await ws.changes.accept(project, a.path, snapshot(ws.cache.nodes));
|
|
187
|
+
baseline = undefined;
|
|
188
|
+
ws.cache.bump();
|
|
189
|
+
return `accepted the changes to ${a.path}${n > 1 ? ` and its ${n - 1} child object${n === 2 ? "" : "s"}` : ""}`;
|
|
190
|
+
});
|
|
191
|
+
action("ui_revert_object", "revert an object (and its children) in CODESYS to the reviewed text.", z.object({ path: z.string() }), async (a) => {
|
|
192
|
+
if (!ws.revert)
|
|
193
|
+
throw new Error("Revert is not available.");
|
|
194
|
+
const r = await ws.revert(a.path, REVIEW);
|
|
195
|
+
baseline = undefined;
|
|
196
|
+
ws.cache?.bump();
|
|
197
|
+
return r;
|
|
198
|
+
});
|
|
199
|
+
// Clients without MCP Apps support would show app-only tools to the model; hide them there.
|
|
200
|
+
const prev = server.server.oninitialized;
|
|
201
|
+
server.server.oninitialized = () => {
|
|
202
|
+
prev?.();
|
|
203
|
+
if (!getUiCapability(server.server.getClientCapabilities()))
|
|
204
|
+
for (const t of tools)
|
|
205
|
+
t.disable();
|
|
206
|
+
};
|
|
207
|
+
}
|
|
208
|
+
//# sourceMappingURL=panel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"panel.js","sourceRoot":"","sources":["../src/panel.ts"],"names":[],"mappings":"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"}
|
package/dist/server.d.ts
ADDED