gx3-cli-mcp 0.1.0__tar.gz
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.
- gx3_cli_mcp-0.1.0/LICENSE.txt +32 -0
- gx3_cli_mcp-0.1.0/MANIFEST.in +15 -0
- gx3_cli_mcp-0.1.0/PKG-INFO +225 -0
- gx3_cli_mcp-0.1.0/README.md +207 -0
- gx3_cli_mcp-0.1.0/gx3_cli_mcp.egg-info/PKG-INFO +225 -0
- gx3_cli_mcp-0.1.0/gx3_cli_mcp.egg-info/SOURCES.txt +62 -0
- gx3_cli_mcp-0.1.0/gx3_cli_mcp.egg-info/dependency_links.txt +1 -0
- gx3_cli_mcp-0.1.0/gx3_cli_mcp.egg-info/entry_points.txt +3 -0
- gx3_cli_mcp-0.1.0/gx3_cli_mcp.egg-info/top_level.txt +1 -0
- gx3_cli_mcp-0.1.0/gx3cli/__init__.py +5 -0
- gx3_cli_mcp-0.1.0/gx3cli/analyze_gx3_intermediate_parse_gaps.py +372 -0
- gx3_cli_mcp-0.1.0/gx3cli/extract_comm_refresh_areas.py +700 -0
- gx3_cli_mcp-0.1.0/gx3cli/extract_gx3_extended_instruction_knowledge.py +918 -0
- gx3_cli_mcp-0.1.0/gx3cli/extract_hmi_build_info.py +783 -0
- gx3_cli_mcp-0.1.0/gx3cli/extract_used_devices_without_comments.py +398 -0
- gx3_cli_mcp-0.1.0/gx3cli/gtx_probe.py +804 -0
- gx3_cli_mcp-0.1.0/gx3cli/gx3_ai_context.py +89 -0
- gx3_cli_mcp-0.1.0/gx3cli/gx3_alarm_map.py +228 -0
- gx3_cli_mcp-0.1.0/gx3cli/gx3_arg_decode.py +347 -0
- gx3_cli_mcp-0.1.0/gx3cli/gx3_audit.py +102 -0
- gx3_cli_mcp-0.1.0/gx3cli/gx3_cli.py +667 -0
- gx3_cli_mcp-0.1.0/gx3cli/gx3_comm_detail.py +779 -0
- gx3_cli_mcp-0.1.0/gx3cli/gx3_convertdata_probe.py +373 -0
- gx3_cli_mcp-0.1.0/gx3cli/gx3_coverage.py +202 -0
- gx3_cli_mcp-0.1.0/gx3cli/gx3_dead_logic.py +265 -0
- gx3_cli_mcp-0.1.0/gx3cli/gx3_dependency_flow.py +626 -0
- gx3_cli_mcp-0.1.0/gx3cli/gx3_dm_probe.py +283 -0
- gx3_cli_mcp-0.1.0/gx3cli/gx3_doctor.py +165 -0
- gx3_cli_mcp-0.1.0/gx3cli/gx3_exec_config.py +214 -0
- gx3_cli_mcp-0.1.0/gx3cli/gx3_external_inputs.py +779 -0
- gx3_cli_mcp-0.1.0/gx3cli/gx3_index_lite.py +633 -0
- gx3_cli_mcp-0.1.0/gx3cli/gx3_interlock.py +355 -0
- gx3_cli_mcp-0.1.0/gx3cli/gx3_intermediate_tool.py +1412 -0
- gx3_cli_mcp-0.1.0/gx3cli/gx3_iut_probe.py +256 -0
- gx3_cli_mcp-0.1.0/gx3cli/gx3_label_probe.py +279 -0
- gx3_cli_mcp-0.1.0/gx3cli/gx3_ladder_diagram.py +383 -0
- gx3_cli_mcp-0.1.0/gx3cli/gx3_ladder_logic.py +598 -0
- gx3_cli_mcp-0.1.0/gx3cli/gx3_ladder_print.py +1190 -0
- gx3_cli_mcp-0.1.0/gx3cli/gx3_link_map.py +735 -0
- gx3_cli_mcp-0.1.0/gx3cli/gx3_lint.py +824 -0
- gx3_cli_mcp-0.1.0/gx3cli/gx3_matiec_export.py +362 -0
- gx3_cli_mcp-0.1.0/gx3cli/gx3_mc_zones.py +197 -0
- gx3_cli_mcp-0.1.0/gx3cli/gx3_mcp_server.py +522 -0
- gx3_cli_mcp-0.1.0/gx3cli/gx3_mildb_probe.py +295 -0
- gx3_cli_mcp-0.1.0/gx3cli/gx3_motion_rd77.py +287 -0
- gx3_cli_mcp-0.1.0/gx3cli/gx3_network_map.py +226 -0
- gx3_cli_mcp-0.1.0/gx3cli/gx3_program_map.py +378 -0
- gx3_cli_mcp-0.1.0/gx3cli/gx3_project_paths.py +275 -0
- gx3_cli_mcp-0.1.0/gx3cli/gx3_project_survey.py +789 -0
- gx3_cli_mcp-0.1.0/gx3cli/gx3_redaction.py +277 -0
- gx3_cli_mcp-0.1.0/gx3cli/gx3_reliability_report.py +120 -0
- gx3_cli_mcp-0.1.0/gx3cli/gx3_scan_order.py +713 -0
- gx3_cli_mcp-0.1.0/gx3cli/gx3_semantic_diff.py +228 -0
- gx3_cli_mcp-0.1.0/gx3cli/gx3_support_bundle.py +141 -0
- gx3_cli_mcp-0.1.0/gx3cli/gx3_synthetic_project.py +122 -0
- gx3_cli_mcp-0.1.0/gx3cli/gx3_timing_chart.py +720 -0
- gx3_cli_mcp-0.1.0/gx3cli/gx3_tools.py +743 -0
- gx3_cli_mcp-0.1.0/gx3cli/gx3_version.py +63 -0
- gx3_cli_mcp-0.1.0/gx3cli/gx3_w3pa_probe.py +216 -0
- gx3_cli_mcp-0.1.0/gx3cli/gx3_xref.py +420 -0
- gx3_cli_mcp-0.1.0/gx3cli/review_gx3_project.py +941 -0
- gx3_cli_mcp-0.1.0/gx3cli/trace_gx3_device_dependencies.py +976 -0
- gx3_cli_mcp-0.1.0/pyproject.toml +32 -0
- gx3_cli_mcp-0.1.0/setup.cfg +4 -0
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
SOURCE-AVAILABLE PROPRIETARY LICENSE
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 purinzan. All rights reserved.
|
|
4
|
+
|
|
5
|
+
This software is published as source-available proprietary software. It is not
|
|
6
|
+
open-source software.
|
|
7
|
+
|
|
8
|
+
Permission is granted to view, clone, and run this repository locally for
|
|
9
|
+
evaluation and personal/internal analysis, subject to the restrictions below.
|
|
10
|
+
|
|
11
|
+
You may not redistribute, sublicense, sell, host as a service, or use this
|
|
12
|
+
software as part of a paid product or commercial service without prior written
|
|
13
|
+
permission from the copyright holder.
|
|
14
|
+
|
|
15
|
+
You may not use this software to bypass, modify, or violate the terms of GX
|
|
16
|
+
Works3, Mitsubishi Electric software, or any other third-party product.
|
|
17
|
+
|
|
18
|
+
This software performs static analysis of PLC project files. Its output is
|
|
19
|
+
advisory only. It does not execute, validate, certify, or guarantee the behavior
|
|
20
|
+
of any programmable logic controller, safety system, machine, or physical
|
|
21
|
+
equipment.
|
|
22
|
+
|
|
23
|
+
Users are solely responsible for verifying all results in the official
|
|
24
|
+
engineering environment and through their own safety, quality, and operational
|
|
25
|
+
review process before applying any change to a live system.
|
|
26
|
+
|
|
27
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
28
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR
|
|
29
|
+
A PARTICULAR PURPOSE, NON-INFRINGEMENT, ACCURACY, OR SAFETY. IN NO EVENT SHALL
|
|
30
|
+
THE COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES, EQUIPMENT LOSS,
|
|
31
|
+
PRODUCTION LOSS, OR OTHER LIABILITY ARISING FROM USE OF THE SOFTWARE OR ITS
|
|
32
|
+
ANALYSIS OUTPUT.
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
include pyproject.toml
|
|
2
|
+
include README.md
|
|
3
|
+
include LICENSE.txt
|
|
4
|
+
recursive-include gx3cli *.py
|
|
5
|
+
prune tests
|
|
6
|
+
prune scripts
|
|
7
|
+
prune dist
|
|
8
|
+
prune dist_sdist
|
|
9
|
+
prune build
|
|
10
|
+
prune .git
|
|
11
|
+
global-exclude __pycache__/* *.py[cod]
|
|
12
|
+
# Belt-and-suspenders: no data of any kind ships, even if it lands here.
|
|
13
|
+
global-exclude *.gx3 *.GX3 *.gtx *.GTX *.zip *.BACKUP.GTX
|
|
14
|
+
global-exclude *.db *.sqlite *.sqlite3 *.cab *.CAB *.dat *.PRM *.xml *.bin *.w3pa *.iut *.gpj *.prj *.pji *.col *.qpg *.pcode *.info
|
|
15
|
+
global-exclude *.csv *.xlsx *.xls *.pdf
|
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: gx3-cli-mcp
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: Local GX Works3 project analysis CLI with a stdio MCP server
|
|
5
|
+
Author: purinzan
|
|
6
|
+
License-Expression: LicenseRef-Source-Available-Proprietary
|
|
7
|
+
Project-URL: Homepage, https://github.com/purinzan/gx3-cli-mcp
|
|
8
|
+
Project-URL: Repository, https://github.com/purinzan/gx3-cli-mcp
|
|
9
|
+
Project-URL: Issues, https://github.com/purinzan/gx3-cli-mcp/issues
|
|
10
|
+
Keywords: plc,gx-works3,mitsubishi,ladder,mcp
|
|
11
|
+
Classifier: Programming Language :: Python :: 3
|
|
12
|
+
Classifier: Operating System :: Microsoft :: Windows
|
|
13
|
+
Classifier: Intended Audience :: Manufacturing
|
|
14
|
+
Requires-Python: >=3.10
|
|
15
|
+
Description-Content-Type: text/markdown
|
|
16
|
+
License-File: LICENSE.txt
|
|
17
|
+
Dynamic: license-file
|
|
18
|
+
|
|
19
|
+
# gx3-cli-mcp
|
|
20
|
+
|
|
21
|
+
Local GX Works3 project analysis for engineers and AI agents.
|
|
22
|
+
|
|
23
|
+
`gx3-cli-mcp` provides a Windows-first CLI and stdio MCP server for inspecting
|
|
24
|
+
GX Works3 (`.gx3`) projects on your own machine. It helps you search devices,
|
|
25
|
+
comments, cross references, ladder conditions, communication boundaries, and
|
|
26
|
+
static review signals without modifying the source project.
|
|
27
|
+
|
|
28
|
+
日本語: GX Works3 (`.gx3`) プロジェクトをローカルで読み取り解析し、AI
|
|
29
|
+
エージェントからも使える CLI / MCP サーバーです。プロジェクトを書き換えず、
|
|
30
|
+
デバイス、コメント、xref、ラダー根拠、通信境界を確認するための道具です。
|
|
31
|
+
|
|
32
|
+
This is an unofficial, independent tool. It is not endorsed by Mitsubishi
|
|
33
|
+
Electric.
|
|
34
|
+
|
|
35
|
+
## What You Can Do
|
|
36
|
+
|
|
37
|
+
- Find where a device is used and whether it is read, written, or referenced.
|
|
38
|
+
- Search device comments such as start, stop, alarm, cycle, step, or manual
|
|
39
|
+
operation keywords.
|
|
40
|
+
- Trace upstream conditions for a coil and print nearby ladder evidence.
|
|
41
|
+
- Build xref and SQLite indexes so AI agents can answer from structured facts.
|
|
42
|
+
- Review static risks such as duplicate coils, multi-writers, dead logic, and
|
|
43
|
+
interlock possibilities.
|
|
44
|
+
- Inspect external inputs, HMI/communication boundaries, IP maps, link maps,
|
|
45
|
+
timing candidates, and project-wide summaries.
|
|
46
|
+
|
|
47
|
+
## What It Does Not Do
|
|
48
|
+
|
|
49
|
+
- It does not include real customer or production PLC projects.
|
|
50
|
+
- It does not send project data to an online service by itself.
|
|
51
|
+
- It does not provide a GUI in this release.
|
|
52
|
+
- It does not require a license token or paid-plan token.
|
|
53
|
+
- The MCP server does not expose project-mutating commands.
|
|
54
|
+
|
|
55
|
+
## Install
|
|
56
|
+
|
|
57
|
+
```powershell
|
|
58
|
+
python -m pip install gx3-cli-mcp
|
|
59
|
+
gx3-cli --version
|
|
60
|
+
gx3-mcp-server --version
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
Requires Python 3.10 or later. Installing into a virtual environment is
|
|
64
|
+
recommended so the two console scripts stay off the system PATH.
|
|
65
|
+
|
|
66
|
+
If your site blocks PyPI, install the latest source directly:
|
|
67
|
+
|
|
68
|
+
```powershell
|
|
69
|
+
python -m pip install git+https://github.com/purinzan/gx3-cli-mcp.git
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
For a local source checkout:
|
|
73
|
+
|
|
74
|
+
```powershell
|
|
75
|
+
python -m pip install -e .
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
日本語: 通常は `pip install gx3-cli-mcp` だけで CLI と MCP サーバーの両方が
|
|
79
|
+
入ります。社内プロキシで PyPI に到達できない場合のみ、上の git 直接指定を
|
|
80
|
+
使ってください。
|
|
81
|
+
|
|
82
|
+
## First Analysis
|
|
83
|
+
|
|
84
|
+
Run these three commands first for a real project:
|
|
85
|
+
|
|
86
|
+
```powershell
|
|
87
|
+
gx3-cli doctor --root C:\path\to\project.gx3
|
|
88
|
+
gx3-cli index-lite build --root C:\path\to\project.gx3
|
|
89
|
+
gx3-cli xref build --root C:\path\to\project.gx3
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
Then inspect a device:
|
|
93
|
+
|
|
94
|
+
```powershell
|
|
95
|
+
gx3-cli query-device M100 --root C:\path\to\project.gx3
|
|
96
|
+
gx3-cli xref where-used M100 --root C:\path\to\project.gx3
|
|
97
|
+
gx3-cli trace-device M100 --root C:\path\to\project.gx3 --strict-logic --compact
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
When you pass a `.gx3` file, the tool extracts it into
|
|
101
|
+
`.gx3_cache\<sha256>\` and analyzes that local cache.
|
|
102
|
+
|
|
103
|
+
## Common Tasks
|
|
104
|
+
|
|
105
|
+
| Goal | Command |
|
|
106
|
+
|---|---|
|
|
107
|
+
| Check project readiness | `gx3-cli doctor --root project.gx3` |
|
|
108
|
+
| Build the search index | `gx3-cli index-lite build --root project.gx3` |
|
|
109
|
+
| Build cross references | `gx3-cli xref build --root project.gx3` |
|
|
110
|
+
| Look up one device | `gx3-cli query-device M100 --root project.gx3` |
|
|
111
|
+
| Search by comment text | `gx3-cli query-comment "起動" --root project.gx3` |
|
|
112
|
+
| Show external/HMI/communication boundary devices | `gx3-cli query-external --root project.gx3` |
|
|
113
|
+
| Find cycle, step, or state candidates | `gx3-cli query-cycle --root project.gx3` |
|
|
114
|
+
| Show used/free device ranges | `gx3-cli device-map --root project.gx3 --types M,D,W --min-free 100` |
|
|
115
|
+
| Show writers/readers | `gx3-cli xref where-used M100 --root project.gx3` |
|
|
116
|
+
| Trace coil conditions | `gx3-cli trace-device M100 --root project.gx3 --strict-logic --compact` |
|
|
117
|
+
| Print ladder evidence | `gx3-cli ladder-print <PROGRAM_OR_LDDB> --root project.gx3 --device M100` |
|
|
118
|
+
| Check static interlock possibility | `gx3-cli interlock-check M100 M200 --root project.gx3` |
|
|
119
|
+
| Run static review checks | `gx3-cli lint project.gx3` |
|
|
120
|
+
| Create a support summary | `gx3-cli support-bundle --root project.gx3 -o support.zip` |
|
|
121
|
+
|
|
122
|
+
Use the indexed commands above for normal lookup and discovery. Avoid starting
|
|
123
|
+
AI workflows with raw text search over extracted GX3 files; GX Works3 projects
|
|
124
|
+
contain binary/database files, and the CLI preserves device, comment, POU, role,
|
|
125
|
+
and step context.
|
|
126
|
+
|
|
127
|
+
## Use With MCP
|
|
128
|
+
|
|
129
|
+
The MCP server is intended for AI clients that support stdio MCP servers.
|
|
130
|
+
|
|
131
|
+
```json
|
|
132
|
+
{
|
|
133
|
+
"mcpServers": {
|
|
134
|
+
"gx3": {
|
|
135
|
+
"command": "python",
|
|
136
|
+
"args": ["-m", "gx3cli.gx3_mcp_server"]
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
If your client can resolve console scripts from PATH:
|
|
143
|
+
|
|
144
|
+
```json
|
|
145
|
+
{
|
|
146
|
+
"mcpServers": {
|
|
147
|
+
"gx3": {
|
|
148
|
+
"command": "gx3-mcp-server"
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
The MCP server exposes read-only analysis tools and a restricted command
|
|
155
|
+
runner. Synthetic demo generation is local CLI-only.
|
|
156
|
+
|
|
157
|
+
## Demo Project
|
|
158
|
+
|
|
159
|
+
Use a synthetic project for screenshots, tutorials, and first-time tests.
|
|
160
|
+
|
|
161
|
+
```powershell
|
|
162
|
+
gx3-cli synthetic-project demo.gx3 --overwrite
|
|
163
|
+
gx3-cli doctor --root demo.gx3
|
|
164
|
+
gx3-cli trace-device M100 --root demo.gx3 --strict-logic --compact
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
## Data And Safety
|
|
168
|
+
|
|
169
|
+
- Project files stay on your machine unless you pass outputs to another tool.
|
|
170
|
+
- Some commands create local files such as SQLite indexes, CSV reports, ZIP
|
|
171
|
+
support bundles, or Markdown summaries.
|
|
172
|
+
- Analysis output is advisory. Verify findings in GX Works3 and through your
|
|
173
|
+
own safety/quality process before changing real equipment.
|
|
174
|
+
- The tool is not a substitute for PLC validation, machine safety review, or
|
|
175
|
+
official engineering software.
|
|
176
|
+
|
|
177
|
+
## Documentation
|
|
178
|
+
|
|
179
|
+
Recommended reading:
|
|
180
|
+
|
|
181
|
+
1. [User manual (JA)](docs/USER_MANUAL_JA.md): Japanese install and usage guide.
|
|
182
|
+
2. [Agent usage guide (JA)](docs/AGENT_USAGE_JA.md): how AI agents should use the indexed tools.
|
|
183
|
+
3. [Security note (JA)](docs/SECURITY_JA.md): local data handling and read-only MCP policy.
|
|
184
|
+
4. [Validation matrix (JA)](docs/VALIDATION_MATRIX.md): verified scope and limitations.
|
|
185
|
+
5. [File usage guide (JA)](docs/FILE_USAGE_GUIDE_JA.md): repository file map for agents and contributors.
|
|
186
|
+
|
|
187
|
+
MCP configuration examples:
|
|
188
|
+
|
|
189
|
+
- [MCP client config](docs/mcp_client_config.json): robust `python -m gx3cli.gx3_mcp_server` launch.
|
|
190
|
+
- [MCP client config, console script](docs/mcp_client_config_console_script.json): direct `gx3-mcp-server` launch when PATH is reliable.
|
|
191
|
+
|
|
192
|
+
## License In Plain Words
|
|
193
|
+
|
|
194
|
+
Full terms are in [LICENSE.txt](LICENSE.txt); this section is only a summary and
|
|
195
|
+
the license text governs.
|
|
196
|
+
|
|
197
|
+
This is **source-available proprietary software**, not open source. In practice:
|
|
198
|
+
|
|
199
|
+
- You **may** clone it, read the source, and run it for evaluation and for
|
|
200
|
+
internal analysis work, including inside a company.
|
|
201
|
+
- You **may not** redistribute it, host it as a service, resell it, or ship it
|
|
202
|
+
as part of a paid product or commercial service without written permission.
|
|
203
|
+
- There is **no license token, activation, or paid plan** to run it.
|
|
204
|
+
- It is provided as is, with no warranty, and its output is advisory only.
|
|
205
|
+
|
|
206
|
+
日本語: 社内での評価・業務利用は許諾されています。禁止しているのは再配布、
|
|
207
|
+
SaaS としての提供、有償製品やサービスへの組み込みです。実行にライセンス
|
|
208
|
+
キーや課金は不要です。商用利用の相談は Issue からご連絡ください。
|
|
209
|
+
|
|
210
|
+
## For Contributors
|
|
211
|
+
|
|
212
|
+
Bug reports, questions, and small pull requests are welcome, in Japanese or
|
|
213
|
+
English. Start with [CONTRIBUTING.md](CONTRIBUTING.md), which covers the
|
|
214
|
+
no-project-data rule, the development setup, and what a useful bug report
|
|
215
|
+
contains. Issues labeled `good first issue` are scoped to be approachable
|
|
216
|
+
without deep knowledge of the GX Works3 file format.
|
|
217
|
+
|
|
218
|
+
Before changing or publishing this project, run the same checks used by CI:
|
|
219
|
+
|
|
220
|
+
```powershell
|
|
221
|
+
python run_tests.py
|
|
222
|
+
python scripts\release_gate.py .
|
|
223
|
+
python -m build --wheel
|
|
224
|
+
python scripts\release_gate.py dist\gx3_cli_mcp-*.whl
|
|
225
|
+
```
|
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
# gx3-cli-mcp
|
|
2
|
+
|
|
3
|
+
Local GX Works3 project analysis for engineers and AI agents.
|
|
4
|
+
|
|
5
|
+
`gx3-cli-mcp` provides a Windows-first CLI and stdio MCP server for inspecting
|
|
6
|
+
GX Works3 (`.gx3`) projects on your own machine. It helps you search devices,
|
|
7
|
+
comments, cross references, ladder conditions, communication boundaries, and
|
|
8
|
+
static review signals without modifying the source project.
|
|
9
|
+
|
|
10
|
+
日本語: GX Works3 (`.gx3`) プロジェクトをローカルで読み取り解析し、AI
|
|
11
|
+
エージェントからも使える CLI / MCP サーバーです。プロジェクトを書き換えず、
|
|
12
|
+
デバイス、コメント、xref、ラダー根拠、通信境界を確認するための道具です。
|
|
13
|
+
|
|
14
|
+
This is an unofficial, independent tool. It is not endorsed by Mitsubishi
|
|
15
|
+
Electric.
|
|
16
|
+
|
|
17
|
+
## What You Can Do
|
|
18
|
+
|
|
19
|
+
- Find where a device is used and whether it is read, written, or referenced.
|
|
20
|
+
- Search device comments such as start, stop, alarm, cycle, step, or manual
|
|
21
|
+
operation keywords.
|
|
22
|
+
- Trace upstream conditions for a coil and print nearby ladder evidence.
|
|
23
|
+
- Build xref and SQLite indexes so AI agents can answer from structured facts.
|
|
24
|
+
- Review static risks such as duplicate coils, multi-writers, dead logic, and
|
|
25
|
+
interlock possibilities.
|
|
26
|
+
- Inspect external inputs, HMI/communication boundaries, IP maps, link maps,
|
|
27
|
+
timing candidates, and project-wide summaries.
|
|
28
|
+
|
|
29
|
+
## What It Does Not Do
|
|
30
|
+
|
|
31
|
+
- It does not include real customer or production PLC projects.
|
|
32
|
+
- It does not send project data to an online service by itself.
|
|
33
|
+
- It does not provide a GUI in this release.
|
|
34
|
+
- It does not require a license token or paid-plan token.
|
|
35
|
+
- The MCP server does not expose project-mutating commands.
|
|
36
|
+
|
|
37
|
+
## Install
|
|
38
|
+
|
|
39
|
+
```powershell
|
|
40
|
+
python -m pip install gx3-cli-mcp
|
|
41
|
+
gx3-cli --version
|
|
42
|
+
gx3-mcp-server --version
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
Requires Python 3.10 or later. Installing into a virtual environment is
|
|
46
|
+
recommended so the two console scripts stay off the system PATH.
|
|
47
|
+
|
|
48
|
+
If your site blocks PyPI, install the latest source directly:
|
|
49
|
+
|
|
50
|
+
```powershell
|
|
51
|
+
python -m pip install git+https://github.com/purinzan/gx3-cli-mcp.git
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
For a local source checkout:
|
|
55
|
+
|
|
56
|
+
```powershell
|
|
57
|
+
python -m pip install -e .
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
日本語: 通常は `pip install gx3-cli-mcp` だけで CLI と MCP サーバーの両方が
|
|
61
|
+
入ります。社内プロキシで PyPI に到達できない場合のみ、上の git 直接指定を
|
|
62
|
+
使ってください。
|
|
63
|
+
|
|
64
|
+
## First Analysis
|
|
65
|
+
|
|
66
|
+
Run these three commands first for a real project:
|
|
67
|
+
|
|
68
|
+
```powershell
|
|
69
|
+
gx3-cli doctor --root C:\path\to\project.gx3
|
|
70
|
+
gx3-cli index-lite build --root C:\path\to\project.gx3
|
|
71
|
+
gx3-cli xref build --root C:\path\to\project.gx3
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
Then inspect a device:
|
|
75
|
+
|
|
76
|
+
```powershell
|
|
77
|
+
gx3-cli query-device M100 --root C:\path\to\project.gx3
|
|
78
|
+
gx3-cli xref where-used M100 --root C:\path\to\project.gx3
|
|
79
|
+
gx3-cli trace-device M100 --root C:\path\to\project.gx3 --strict-logic --compact
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
When you pass a `.gx3` file, the tool extracts it into
|
|
83
|
+
`.gx3_cache\<sha256>\` and analyzes that local cache.
|
|
84
|
+
|
|
85
|
+
## Common Tasks
|
|
86
|
+
|
|
87
|
+
| Goal | Command |
|
|
88
|
+
|---|---|
|
|
89
|
+
| Check project readiness | `gx3-cli doctor --root project.gx3` |
|
|
90
|
+
| Build the search index | `gx3-cli index-lite build --root project.gx3` |
|
|
91
|
+
| Build cross references | `gx3-cli xref build --root project.gx3` |
|
|
92
|
+
| Look up one device | `gx3-cli query-device M100 --root project.gx3` |
|
|
93
|
+
| Search by comment text | `gx3-cli query-comment "起動" --root project.gx3` |
|
|
94
|
+
| Show external/HMI/communication boundary devices | `gx3-cli query-external --root project.gx3` |
|
|
95
|
+
| Find cycle, step, or state candidates | `gx3-cli query-cycle --root project.gx3` |
|
|
96
|
+
| Show used/free device ranges | `gx3-cli device-map --root project.gx3 --types M,D,W --min-free 100` |
|
|
97
|
+
| Show writers/readers | `gx3-cli xref where-used M100 --root project.gx3` |
|
|
98
|
+
| Trace coil conditions | `gx3-cli trace-device M100 --root project.gx3 --strict-logic --compact` |
|
|
99
|
+
| Print ladder evidence | `gx3-cli ladder-print <PROGRAM_OR_LDDB> --root project.gx3 --device M100` |
|
|
100
|
+
| Check static interlock possibility | `gx3-cli interlock-check M100 M200 --root project.gx3` |
|
|
101
|
+
| Run static review checks | `gx3-cli lint project.gx3` |
|
|
102
|
+
| Create a support summary | `gx3-cli support-bundle --root project.gx3 -o support.zip` |
|
|
103
|
+
|
|
104
|
+
Use the indexed commands above for normal lookup and discovery. Avoid starting
|
|
105
|
+
AI workflows with raw text search over extracted GX3 files; GX Works3 projects
|
|
106
|
+
contain binary/database files, and the CLI preserves device, comment, POU, role,
|
|
107
|
+
and step context.
|
|
108
|
+
|
|
109
|
+
## Use With MCP
|
|
110
|
+
|
|
111
|
+
The MCP server is intended for AI clients that support stdio MCP servers.
|
|
112
|
+
|
|
113
|
+
```json
|
|
114
|
+
{
|
|
115
|
+
"mcpServers": {
|
|
116
|
+
"gx3": {
|
|
117
|
+
"command": "python",
|
|
118
|
+
"args": ["-m", "gx3cli.gx3_mcp_server"]
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
If your client can resolve console scripts from PATH:
|
|
125
|
+
|
|
126
|
+
```json
|
|
127
|
+
{
|
|
128
|
+
"mcpServers": {
|
|
129
|
+
"gx3": {
|
|
130
|
+
"command": "gx3-mcp-server"
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
The MCP server exposes read-only analysis tools and a restricted command
|
|
137
|
+
runner. Synthetic demo generation is local CLI-only.
|
|
138
|
+
|
|
139
|
+
## Demo Project
|
|
140
|
+
|
|
141
|
+
Use a synthetic project for screenshots, tutorials, and first-time tests.
|
|
142
|
+
|
|
143
|
+
```powershell
|
|
144
|
+
gx3-cli synthetic-project demo.gx3 --overwrite
|
|
145
|
+
gx3-cli doctor --root demo.gx3
|
|
146
|
+
gx3-cli trace-device M100 --root demo.gx3 --strict-logic --compact
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
## Data And Safety
|
|
150
|
+
|
|
151
|
+
- Project files stay on your machine unless you pass outputs to another tool.
|
|
152
|
+
- Some commands create local files such as SQLite indexes, CSV reports, ZIP
|
|
153
|
+
support bundles, or Markdown summaries.
|
|
154
|
+
- Analysis output is advisory. Verify findings in GX Works3 and through your
|
|
155
|
+
own safety/quality process before changing real equipment.
|
|
156
|
+
- The tool is not a substitute for PLC validation, machine safety review, or
|
|
157
|
+
official engineering software.
|
|
158
|
+
|
|
159
|
+
## Documentation
|
|
160
|
+
|
|
161
|
+
Recommended reading:
|
|
162
|
+
|
|
163
|
+
1. [User manual (JA)](docs/USER_MANUAL_JA.md): Japanese install and usage guide.
|
|
164
|
+
2. [Agent usage guide (JA)](docs/AGENT_USAGE_JA.md): how AI agents should use the indexed tools.
|
|
165
|
+
3. [Security note (JA)](docs/SECURITY_JA.md): local data handling and read-only MCP policy.
|
|
166
|
+
4. [Validation matrix (JA)](docs/VALIDATION_MATRIX.md): verified scope and limitations.
|
|
167
|
+
5. [File usage guide (JA)](docs/FILE_USAGE_GUIDE_JA.md): repository file map for agents and contributors.
|
|
168
|
+
|
|
169
|
+
MCP configuration examples:
|
|
170
|
+
|
|
171
|
+
- [MCP client config](docs/mcp_client_config.json): robust `python -m gx3cli.gx3_mcp_server` launch.
|
|
172
|
+
- [MCP client config, console script](docs/mcp_client_config_console_script.json): direct `gx3-mcp-server` launch when PATH is reliable.
|
|
173
|
+
|
|
174
|
+
## License In Plain Words
|
|
175
|
+
|
|
176
|
+
Full terms are in [LICENSE.txt](LICENSE.txt); this section is only a summary and
|
|
177
|
+
the license text governs.
|
|
178
|
+
|
|
179
|
+
This is **source-available proprietary software**, not open source. In practice:
|
|
180
|
+
|
|
181
|
+
- You **may** clone it, read the source, and run it for evaluation and for
|
|
182
|
+
internal analysis work, including inside a company.
|
|
183
|
+
- You **may not** redistribute it, host it as a service, resell it, or ship it
|
|
184
|
+
as part of a paid product or commercial service without written permission.
|
|
185
|
+
- There is **no license token, activation, or paid plan** to run it.
|
|
186
|
+
- It is provided as is, with no warranty, and its output is advisory only.
|
|
187
|
+
|
|
188
|
+
日本語: 社内での評価・業務利用は許諾されています。禁止しているのは再配布、
|
|
189
|
+
SaaS としての提供、有償製品やサービスへの組み込みです。実行にライセンス
|
|
190
|
+
キーや課金は不要です。商用利用の相談は Issue からご連絡ください。
|
|
191
|
+
|
|
192
|
+
## For Contributors
|
|
193
|
+
|
|
194
|
+
Bug reports, questions, and small pull requests are welcome, in Japanese or
|
|
195
|
+
English. Start with [CONTRIBUTING.md](CONTRIBUTING.md), which covers the
|
|
196
|
+
no-project-data rule, the development setup, and what a useful bug report
|
|
197
|
+
contains. Issues labeled `good first issue` are scoped to be approachable
|
|
198
|
+
without deep knowledge of the GX Works3 file format.
|
|
199
|
+
|
|
200
|
+
Before changing or publishing this project, run the same checks used by CI:
|
|
201
|
+
|
|
202
|
+
```powershell
|
|
203
|
+
python run_tests.py
|
|
204
|
+
python scripts\release_gate.py .
|
|
205
|
+
python -m build --wheel
|
|
206
|
+
python scripts\release_gate.py dist\gx3_cli_mcp-*.whl
|
|
207
|
+
```
|