@renanlido/tia-openness-mcp 1.1.0 → 1.2.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/README.md +25 -8
- package/dist/index.js +396 -396
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# TIA Openness MCP server
|
|
2
2
|
|
|
3
3
|
Servidor **MCP (stdio)** que é um **cliente HTTP puro** sobre a API `serve` do TIA Openness
|
|
4
|
-
(veja
|
|
4
|
+
(veja `docs/API-HTTP.md` no repositório). Não referencia Openness / net48 / x64 — toda a
|
|
5
5
|
complexidade (`AssemblyResolve`, worker serial MTA) vive no processo `serve`. Aqui só falamos **MCP de um
|
|
6
6
|
lado** e **HTTP/JSON do outro**.
|
|
7
7
|
|
|
@@ -76,12 +76,12 @@ com o **mesmo `planHash`**. Hash errado ou `approved` ausente → envelope `requ
|
|
|
76
76
|
re-externalizado, o "Load Preview" real não é exposto e o G3 é a salvaguarda da **camada do MCP** (não bypassável só por texto do LLM).
|
|
77
77
|
|
|
78
78
|
### M5 — ingestão de project-spec (orquestra M1–M4)
|
|
79
|
-
Aceita o **project-spec** estruturado (
|
|
79
|
+
Aceita o **project-spec** estruturado (`docs/TIA-BEST-PRACTICES.md` §13.2; JSON Schema em `.claude-plugin/schemas/project-spec.schema.json`):
|
|
80
80
|
- **`tia_spec_validate`** (R, determinístico, **sem serve**): valida forma + regras de campo cruzado — R-NAMES (nomes únicos), R-TYPEID (`OrderNumber:<MLFB>/V<fw>`), R-SUBNET (IP∈CIDR, CPU+IO na mesma subnet, 1 IO-system), R-LANGFAM (STL/GRAPH só S7-1500), R-MODLIMIT, e **G5** (`safety.required && autonomous ⇒ REJECT`).
|
|
81
81
|
- **`tia_spec_plan`** (sem serve): transforma um spec válido na sequência ordenada de operações (subnets→devices→módulos→rede→tags→blocos→compile).
|
|
82
82
|
- **`tia_spec_apply`**: orquestra o build OFFLINE num projeto aberto (valida → G5 → executa serial → compila), **para no 1º erro** e **nunca baixa** (download é o GATE G3, sempre humano). `dryRun:true` devolve o plano.
|
|
83
83
|
|
|
84
|
-
> **MCP M0–M5 COMPLETO** (
|
|
84
|
+
> **MCP M0–M5 COMPLETO** (~74 tools), **validado em runtime** contra um TIA Portal V21 real (incluindo **deploy em hardware** num S7-1200) e **publicado no npm**. Roadmap e marcos em `docs/ROADMAP.md` §3.
|
|
85
85
|
|
|
86
86
|
## Configuração (env)
|
|
87
87
|
|
|
@@ -149,7 +149,7 @@ npm install -g . # o prepack compila e instala o b
|
|
|
149
149
|
## Publicação (npm público + semantic-release)
|
|
150
150
|
|
|
151
151
|
Versionamento **automático por commits convencionais** (`feat` → minor, `fix` → patch, `BREAKING CHANGE`
|
|
152
|
-
→ major). O workflow
|
|
152
|
+
→ major). O workflow `.github/workflows/release-mcp.yml` dispara
|
|
153
153
|
no push para `main` **quando algo em `mcp/` muda** (e `semantic-release-monorepo` filtra os commits por
|
|
154
154
|
esse path), builda e publica no **npm público** (`registry.npmjs.org`, `publishConfig.access: public`).
|
|
155
155
|
|
|
@@ -169,16 +169,24 @@ commitar o `CHANGELOG`.
|
|
|
169
169
|
> Config validada localmente: versões dedupadas em `semantic-release@24`; o dry-run carregou config/plugins
|
|
170
170
|
> e só parou por o repo remoto ainda não existir.
|
|
171
171
|
|
|
172
|
-
## Registro no Claude Code
|
|
172
|
+
## Registro no Claude Code
|
|
173
173
|
|
|
174
|
-
|
|
174
|
+
**Não precisa instalar nada** — o recomendado é o `npx`, que baixa e roda o pacote publicado. Um comando
|
|
175
|
+
só (escopo de **usuário**):
|
|
176
|
+
|
|
177
|
+
```bash
|
|
178
|
+
claude mcp add --transport stdio --env TIA_API_BASE=http://localhost:5000 --scope user tia -- npx -y @renanlido/tia-openness-mcp
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
Confira com `claude mcp list` e `claude mcp get tia`. O equivalente por **`.mcp.json`** na raiz do projeto
|
|
182
|
+
(escopo de **projeto**) — também via `npx`, sem instalar:
|
|
175
183
|
|
|
176
184
|
```jsonc
|
|
177
185
|
{
|
|
178
186
|
"mcpServers": {
|
|
179
187
|
"tia": {
|
|
180
|
-
"command": "
|
|
181
|
-
"args": [],
|
|
188
|
+
"command": "npx", // baixa e roda o pacote do npm — NADA instalado
|
|
189
|
+
"args": ["-y", "@renanlido/tia-openness-mcp"],
|
|
182
190
|
"env": {
|
|
183
191
|
"TIA_API_BASE": "${TIA_API_BASE:-http://localhost:5000}" // IP:porta do serve (use o IP da VM se remoto)
|
|
184
192
|
}
|
|
@@ -187,6 +195,15 @@ O [../.mcp.json](../.mcp.json) na raiz já registra o servidor `tia` apontando p
|
|
|
187
195
|
}
|
|
188
196
|
```
|
|
189
197
|
|
|
198
|
+
> **`tia-openness-mcp` NÃO é um arquivo do repositório** — é o nome do **bin** do pacote (`package.json` →
|
|
199
|
+
> `"bin": { "tia-openness-mcp": "dist/index.js" }`). Esse atalho só fica no seu PATH **se** você instalar
|
|
200
|
+
> global (`npm install -g @renanlido/tia-openness-mcp`); só então faria sentido
|
|
201
|
+
> `"command": "tia-openness-mcp", "args": []`. O `npx` dispensa esse passo — por isso é o recomendado.
|
|
202
|
+
|
|
203
|
+
**Outros clientes** (Claude Desktop, Codex, Gemini CLI, Cursor, VS Code, Windsurf): o guia canônico de
|
|
204
|
+
instalação — com os formatos exatos de cada um e a pegadinha do `cmd /c npx` no Windows — está em
|
|
205
|
+
`docs/INSTALL.md` no repositório.
|
|
206
|
+
|
|
190
207
|
**Envs opcionais** (default embutido no MCP — só defina para sobrescrever): `TIA_API_TIMEOUT_MS` (15000),
|
|
191
208
|
`TIA_SLOW_TIMEOUT_MS` (120000), `TIA_CONNECT_TIMEOUT_MS` (30000). Ex.: `--env TIA_SLOW_TIMEOUT_MS=180000`
|
|
192
209
|
no `claude mcp add`, ou a chave correspondente no `env` do `.mcp.json`.
|