@shiftleftpt/sbd-toe-mcp 0.1.0 → 0.2.16

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.
Files changed (42) hide show
  1. package/.env.example +0 -3
  2. package/README.md +136 -254
  3. package/dist/config.js +0 -3
  4. package/dist/config.js.map +1 -1
  5. package/dist/types.d.ts +0 -3
  6. package/package.json +18 -2
  7. package/dist/backend/semantic-index-gateway.test.d.ts +0 -1
  8. package/dist/backend/semantic-index-gateway.test.js +0 -384
  9. package/dist/backend/semantic-index-gateway.test.js.map +0 -1
  10. package/dist/bootstrap/checkout-backend.d.ts +0 -31
  11. package/dist/bootstrap/checkout-backend.js +0 -136
  12. package/dist/bootstrap/checkout-backend.js.map +0 -1
  13. package/dist/bootstrap/checkout-backend.test.d.ts +0 -1
  14. package/dist/bootstrap/checkout-backend.test.js +0 -158
  15. package/dist/bootstrap/checkout-backend.test.js.map +0 -1
  16. package/dist/bootstrap/release-checkout.d.ts +0 -8
  17. package/dist/bootstrap/release-checkout.js +0 -168
  18. package/dist/bootstrap/release-checkout.js.map +0 -1
  19. package/dist/bootstrap/release-checkout.test.d.ts +0 -1
  20. package/dist/bootstrap/release-checkout.test.js +0 -137
  21. package/dist/bootstrap/release-checkout.test.js.map +0 -1
  22. package/dist/resources/sbd-toe-resources.test.d.ts +0 -1
  23. package/dist/resources/sbd-toe-resources.test.js +0 -134
  24. package/dist/resources/sbd-toe-resources.test.js.map +0 -1
  25. package/dist/test-utils.d.ts +0 -153
  26. package/dist/test-utils.js +0 -176
  27. package/dist/test-utils.js.map +0 -1
  28. package/dist/tools/generate-document.test.d.ts +0 -1
  29. package/dist/tools/generate-document.test.js +0 -189
  30. package/dist/tools/generate-document.test.js.map +0 -1
  31. package/dist/tools/map-review-scope.test.d.ts +0 -1
  32. package/dist/tools/map-review-scope.test.js +0 -204
  33. package/dist/tools/map-review-scope.test.js.map +0 -1
  34. package/dist/tools/plan-repo-governance.test.d.ts +0 -1
  35. package/dist/tools/plan-repo-governance.test.js +0 -237
  36. package/dist/tools/plan-repo-governance.test.js.map +0 -1
  37. package/dist/tools/structured-tools.test.d.ts +0 -1
  38. package/dist/tools/structured-tools.test.js +0 -459
  39. package/dist/tools/structured-tools.test.js.map +0 -1
  40. package/dist/validators/ai-disclosure.test.d.ts +0 -1
  41. package/dist/validators/ai-disclosure.test.js +0 -244
  42. package/dist/validators/ai-disclosure.test.js.map +0 -1
package/.env.example CHANGED
@@ -17,10 +17,7 @@ SITE_BASE_URL=https://www.securitybydesign.dev/
17
17
  MANUAL_BASE_URL=https://www.securitybydesign.dev/sbd-toe/sbd-manual/
18
18
  CROSS_CHECK_BASE_URL=https://www.securitybydesign.dev/sbd-toe/cross-check-normativo/
19
19
 
20
- DEFAULT_LANGUAGE=pt-PT
21
20
  DEBUG_MODE=false
22
- DOCS_HITS=8
23
- ENTITIES_HITS=5
24
21
  MAX_CONTEXT_RECORDS=8
25
22
  SAMPLING_MAX_TOKENS=1200
26
23
 
package/README.md CHANGED
@@ -1,323 +1,205 @@
1
- # sbd-toe-mcp-poc
1
+ # @shiftleftpt/sbd-toe-mcp
2
2
 
3
- Servidor MCP (Model Context Protocol) para VS Code, em Node.js/TypeScript, que faz retrieval local sobre snapshots semânticos publicados do manual SbD-ToE e os expõe ao chat via `stdio`.
3
+ MCP server for the SbD-ToE security manual structured tools for Claude, GitHub Copilot, Cursor, Windsurf, Zed and any MCP-compatible client.
4
4
 
5
- > Estado atual: **PoC / primeira iteração publicável**. O foco desta versão é distribuição simples via GitHub Releases, uso local no VS Code, grounding forte e zero dependência de builder semântico em runtime.
6
-
7
- ## O que é este projeto
5
+ [![npm](https://img.shields.io/npm/v/@shiftleftpt%2fsbd-toe-mcp)](https://www.npmjs.com/package/@shiftleftpt/sbd-toe-mcp)
6
+ [![License](https://img.shields.io/badge/license-Apache--2.0-blue)](LICENSE)
8
7
 
9
- Este repositório empacota um servidor MCP que:
8
+ ---
10
9
 
11
- - corre localmente via `stdio`
12
- - expõe tools e prompts MCP para consulta do manual
13
- - usa o modelo configurado pelo utilizador no VS Code
14
- - faz retrieval local sobre um bundle embutido em `data/publish/`
15
- - devolve contexto grounded, citações e metadados úteis para debug
10
+ ## Quick Start
16
11
 
17
- O objetivo é responder melhor, dentro do VS Code, a perguntas práticas sobre o ecossistema SbD-ToE, por exemplo:
12
+ **Zero configuration required.** Works out-of-the-box with `npx`:
18
13
 
19
- ```text
20
- quais os requisitos de autenticacao que preciso implementar para esta aplicacao L1
14
+ **Claude Code:**
15
+ ```bash
16
+ claude mcp add sbd-toe -- npx -y @shiftleftpt/sbd-toe-mcp
21
17
  ```
22
18
 
23
- ou:
19
+ **Claude Desktop / Cursor / Windsurf** — add to your MCP config:
20
+ ```json
21
+ {
22
+ "mcpServers": {
23
+ "sbd-toe": {
24
+ "command": "npx",
25
+ "args": ["-y", "@shiftleftpt/sbd-toe-mcp"]
26
+ }
27
+ }
28
+ }
29
+ ```
24
30
 
25
- ```text
26
- Que policies governam pipelines CI/CD?
31
+ **VS Code + GitHub Copilot** — add to `.vscode/mcp.json`:
32
+ ```json
33
+ {
34
+ "servers": {
35
+ "sbdToe": {
36
+ "type": "stdio",
37
+ "command": "npx",
38
+ "args": ["-y", "@shiftleftpt/sbd-toe-mcp"]
39
+ }
40
+ }
41
+ }
27
42
  ```
28
43
 
29
- ## Porque existe
44
+ For full installation instructions for all clients see [`docs/installation.md`](docs/installation.md).
45
+
46
+ **Requirements:** Node.js ≥ 20.9.0
30
47
 
31
- O manual SbD-ToE é a fonte editorial canónica, mas o consumo prático dentro do editor exige uma camada técnica própria:
48
+ ---
32
49
 
33
- - descoberta contextual no momento da pergunta
34
- - recuperação determinística de records relevantes
35
- - composição de prompt grounded
36
- - integração direta com o chat do VS Code
50
+ ## What it does
37
51
 
38
- Este repositório existe para fazer essa ponte, sem duplicar o papel dos outros repositórios do ecossistema.
52
+ This MCP server gives any AI client structured access to the [SbD-ToE security manual](https://www.securitybydesign.dev/sbd-toe/sbd-manual/) a comprehensive framework for secure-by-design software development.
39
53
 
40
- ## Relação com o ecossistema SbD-ToE
54
+ All data is bundled locally. No Algolia, no internet connection required at runtime, no API keys.
41
55
 
42
- | Repositório | Papel |
43
- | --- | --- |
44
- | `Shiftleftpt/SbD-ToE-Manual` | fonte editorial canónica do manual |
45
- | `sbd-toe-knowledge-graph` | builder/publicador dos snapshots semânticos |
46
- | `sbd-toe-mcp-poc` | consumer MCP para uso local no VS Code |
56
+ ---
47
57
 
48
- Este projeto **consome** artefactos já produzidos pelo `sbd-toe-knowledge-graph`. Não reindexa o manual, não reconstrói semântica e não substitui o builder.
58
+ ## Tools
49
59
 
50
- ## O que faz
60
+ | Tool | Description |
61
+ |---|---|
62
+ | `search_sbd_toe_manual` | Retrieval over the manual — returns grounded context with citations |
63
+ | `answer_sbd_toe_manual` | Retrieval + answer via MCP sampling (uses the user's model) |
64
+ | `inspect_sbd_toe_retrieval` | Debug tool — shows retrieval scores, selection and prompt |
65
+ | `list_sbd_toe_chapters` | Lists all 14 manual chapters with readable titles and risk levels |
66
+ | `query_sbd_toe_entities` | Queries structured entities (controls, requirements, patterns) |
67
+ | `get_sbd_toe_chapter_brief` | Returns a structured brief for a specific chapter |
68
+ | `map_sbd_toe_applicability` | Maps a project profile to applicable chapter bundles |
69
+ | `generate_document` | Generates a structured document skeleton (5 types × 3 risk levels) |
70
+ | `map_sbd_toe_review_scope` | Maps changed file paths to relevant SbD-ToE knowledge bundles |
71
+ | `plan_sbd_toe_repo_governance` | Produces an advisory governance plan for a repository |
51
72
 
52
- - consulta os snapshots `SbD-ToE-ASKAI-Docs` e `SbD-ToE-ASKAI-Entities`
53
- - faz ranking local observável para seleção de contexto
54
- - expõe as tools `search_sbd_toe_manual`, `answer_sbd_toe_manual` e `inspect_sbd_toe_retrieval`
55
- - expõe a prompt MCP `ask_sbd_toe_manual`
56
- - permite debug forte quando `debug=true` ou `DEBUG_MODE=true`
57
- - usa sampling MCP opcionalmente, mantendo o modelo do lado do utilizador
73
+ ### Resources
58
74
 
59
- ## O que não faz
75
+ | Resource | Description |
76
+ |---|---|
77
+ | `sbd://toe/index-compact` | Compact chapter index (<5KB) — injectable into system prompts |
78
+ | `sbd://toe/skill-template` | Skill template for AI agent configuration (L1/L2/L3) |
79
+ | `sbd://toe/chapter-applicability` | Chapter applicability by risk level |
60
80
 
61
- - não faz parsing do corpus Markdown
62
- - não reconstrói bundles semânticos
63
- - não reindexa o manual
64
- - não depende de Algolia em runtime
65
- - não executa retrieval remoto
66
- - não mantém memória conversacional
67
- - não substitui o VS Code Chat nem o `sbd-toe-knowledge-graph`
81
+ ### Prompts
68
82
 
69
- ## Arquitetura resumida
83
+ | Prompt | Description |
84
+ |---|---|
85
+ | `setup_sbd_toe_agent` | Slash command to configure an AI agent with SbD-ToE context |
70
86
 
71
- 1. O utilizador faz uma pergunta no chat do VS Code.
72
- 2. O chat chama `search_sbd_toe_manual` ou `answer_sbd_toe_manual`.
73
- 3. O servidor MCP lê os snapshots locais embutidos em `data/publish/`.
74
- 4. O retrieval combina records documentais e estruturados.
75
- 5. O servidor devolve contexto grounded com citações `[D1]`, `[E1]`, links e debug.
76
- 6. O modelo do utilizador responde com base nesse contexto.
87
+ ---
77
88
 
78
- O papel detalhado deste repositório está documentado em [`docs/role.md`](docs/role.md).
89
+ ## Architecture
79
90
 
80
- ## Ferramentas MCP expostas
91
+ ```
92
+ AI client (Claude / Copilot / Cursor / ...)
93
+ ↓ MCP stdio
94
+ sbd-toe-mcp server
95
+ ↓ local read
96
+ data/publish/ ← semantic snapshots bundled in the package
97
+ ```
81
98
 
82
- - `search_sbd_toe_manual`
83
- - tool principal para o fluxo normal de chat
84
- - devolve contexto grounded sem obrigar a sampling
85
- - `answer_sbd_toe_manual`
86
- - usa retrieval local e pede a resposta final ao modelo do utilizador via MCP sampling
87
- - `inspect_sbd_toe_retrieval`
88
- - mostra retrieval, seleção final e prompt montado
89
- - útil para tuning, grounding e troubleshooting
90
- - `ask_sbd_toe_manual`
91
- - prompt MCP/slash command para orientar o chat a usar retrieval antes de responder
99
+ 1. The user asks a question in their AI client.
100
+ 2. The client calls a tool (e.g. `search_sbd_toe_manual`).
101
+ 3. The server reads the local snapshots in `data/publish/`.
102
+ 4. Retrieval combines documentary and structured records.
103
+ 5. The server returns grounded context with citations and links.
104
+ 6. The user's model answers based on that context.
92
105
 
93
- ## Distribuição e release bundle
106
+ ---
94
107
 
95
- O canal principal de distribuição é **npm** (`sbd-toe-mcp`). O **GitHub Releases** mantém-se como canal secundário — publica um bundle self-contained para instalação em ambientes sem acesso à internet ou sem `npx`.
108
+ ## Distribution
96
109
 
97
- Cada release publica um bundle via GitHub Releases com convenção de nome explícita:
110
+ **Primary channel: npm**
111
+
112
+ ```bash
113
+ npx -y @shiftleftpt/sbd-toe-mcp
114
+ ```
115
+
116
+ **Secondary channel: GitHub Releases** — self-contained bundle for environments without internet access or `npx`. Each release publishes:
98
117
 
99
118
  - `sbd-toe-mcp-vX.Y.Z-bundle.tar.gz`
100
119
  - `sbd-toe-mcp-vX.Y.Z-bundle.zip`
101
120
  - `sbd-toe-mcp-vX.Y.Z-bundle.sha256`
102
121
 
103
- O bundle inclui:
104
-
105
- - `dist/`
106
- - `data/publish/`
107
- - `data/reports/run_manifest.json`
108
- - `prompts/`
109
- - `examples/`
110
- - `docs/`
111
- - `.vscode/mcp.json`
112
- - `.env.example`
113
- - `README.md`
114
- - `CONTRIBUTING.md`
115
- - `CODE_OF_CONDUCT.md`
116
- - `SECURITY.md`
117
- - `SUPPORT.md`
118
- - ficheiros de licença
122
+ ### Installing from a GitHub Release bundle
119
123
 
120
- O bundle **não** inclui:
124
+ For environments without npm/npx:
121
125
 
122
- - `node_modules`
123
- - checkout completo do upstream
124
- - tooling de desenvolvimento desnecessário para runtime
126
+ 1. Download `sbd-toe-mcp-vX.Y.Z-bundle.zip` from [GitHub Releases](https://github.com/Shiftleftpt/sbd-toe-mcp-poc/releases).
127
+ 2. Extract the archive.
128
+ 3. Point your MCP client to the extracted `dist/index.js`:
129
+ ```json
130
+ {
131
+ "command": "node",
132
+ "args": ["/path/to/extracted/dist/index.js"]
133
+ }
134
+ ```
135
+ 4. No `npm ci` or `npm run build` needed — the bundle is self-contained.
125
136
 
126
- ## Como os snapshots são distribuídos
137
+ ---
127
138
 
128
- `data/publish/` é tratado como parte intencional do produto:
139
+ ## Optional configuration
129
140
 
130
- - fica **versionado no repositório**
131
- - fica **incluído no artefacto de release**
132
- - é a base do retrieval local em runtime
141
+ No environment variables are required. The following can be overridden:
133
142
 
134
- Isto significa que:
143
+ | Variable | Default | Description |
144
+ |---|---|---|
145
+ | `DEBUG_MODE` | `false` | Enable debug metadata in responses |
146
+ | `MAX_CONTEXT_RECORDS` | `8` | Max records returned per query |
147
+ | `SITE_BASE_URL` | `https://www.securitybydesign.dev/` | Override base URL |
148
+ | `MANUAL_BASE_URL` | `https://www.securitybydesign.dev/sbd-toe/sbd-manual/` | Override manual URL |
149
+ | `CROSS_CHECK_BASE_URL` | `https://www.securitybydesign.dev/sbd-toe/cross-check-normativo/` | Override cross-check URL |
150
+ | `SBD_TOE_APP_ROOT` | auto (resolved from `dist/`) | Override app root path |
135
151
 
136
- - o utilizador **não precisa** de Algolia
137
- - o utilizador **não precisa** de correr o builder semântico
138
- - o utilizador **não precisa** de fazer checkout do `sbd-toe-knowledge-graph` para usar o servidor
152
+ Copy `.env.example` to `.env` and adjust as needed.
139
153
 
140
- O ficheiro `data/reports/run_manifest.json` mantém a proveniência do snapshot embutido.
141
- Esse ficheiro deve conter apenas proveniência pública e redistribuível, sem paths absolutos de máquinas locais.
154
+ ---
142
155
 
143
- ## Instalação via GitHub Release (alternativa sem internet)
156
+ ## Relation to the SbD-ToE ecosystem
144
157
 
145
- Fluxo para ambientes sem acesso ao npm ou sem `npx`:
158
+ | Repository | Role |
159
+ |---|---|
160
+ | `Shiftleftpt/SbD-ToE-Manual` | canonical editorial source of the manual |
161
+ | `sbd-toe-knowledge-graph` | builder/publisher of semantic snapshots |
162
+ | `@shiftleftpt/sbd-toe-mcp` | MCP server — consumes snapshots, exposes tools |
146
163
 
147
- 1. Descarregar o asset `sbd-toe-mcp-vX.Y.Z-bundle.zip` ou `sbd-toe-mcp-vX.Y.Z-bundle.tar.gz` em **GitHub Releases**.
148
- 2. Extrair o archive para um diretório local.
149
- 3. Confirmar que a extração já inclui `dist/` e `data/publish/`.
150
- 4. Copiar `.env.example` para `.env`.
151
- 5. Abrir a pasta extraída no VS Code.
152
- 6. Reutilizar o `.vscode/mcp.json` já incluído no bundle.
153
- 7. Abrir o chat e usar perguntas reais sobre o manual.
164
+ This project **consumes** artefacts already produced by `sbd-toe-knowledge-graph`. It does not re-index the manual, does not rebuild semantics and does not replace the builder.
154
165
 
155
- Exemplo:
166
+ Maintainers who want to update the bundled snapshots from a local checkout of `sbd-toe-knowledge-graph`:
156
167
 
157
168
  ```bash
158
- cp .env.example .env
169
+ npm run checkout:backend
159
170
  ```
160
171
 
161
- Depois de extrair a release, não é necessário correr `npm ci` nem `npm run build`.
162
- Também não é necessário editar manualmente a configuração MCP se usares a pasta extraída como workspace do VS Code.
163
-
164
- ## Quick Start — instalar via npm
165
-
166
- [![npm](https://img.shields.io/npm/v/@shiftleftpt%2fsbd-toe-mcp)](https://www.npmjs.com/package/@shiftleftpt/sbd-toe-mcp)
167
-
168
- **Zero configuração obrigatória.** O servidor funciona directamente com `npx`:
169
-
170
- 1. Instalar Node.js ≥ 20.9.0: [nodejs.org/download](https://nodejs.org/download/)
171
- 2. Registar o servidor no teu cliente MCP (exemplo para Claude Code):
172
- ```bash
173
- claude mcp add sbd-toe -- npx -y @shiftleftpt/sbd-toe-mcp
174
- ```
175
- 3. Usar as tools MCP no Claude Code (ou Claude Desktop, VS Code, Cursor, etc.)
176
-
177
- Para instruções completas por cliente MCP (Claude Desktop, VS Code, Cursor, Windsurf, Zed),
178
- consultar [`docs/installation.md`](docs/installation.md).
179
-
180
172
  ---
181
173
 
182
- ## Instalação a partir do source
183
-
184
- Se preferires trabalhar a partir do source deste repositório:
174
+ ## Development
185
175
 
186
176
  ```bash
187
177
  npm ci
188
178
  npm run check
189
179
  npm run build
180
+ npm run test
190
181
  ```
191
182
 
192
- O checkout de source já traz `data/publish/` versionado. Portanto, mesmo a partir do source, o uso normal do MCP **não** depende do builder semântico.
193
-
194
- O script abaixo é apenas para mantenedores que queiram atualizar o bundle embutido a partir de um checkout local do `sbd-toe-knowledge-graph`:
195
-
196
- ```bash
197
- npm run checkout:backend
198
- ```
199
-
200
- Esse fluxo regenera um manifesto local em `data/upstream/backend-checkout.json`, usado apenas para manutenção/debug local e não versionado neste repositório.
183
+ See [`CONTRIBUTING.md`](CONTRIBUTING.md) for the contribution workflow.
201
184
 
202
- ## Configuração `.env`
203
-
204
- Copiar `.env.example` para `.env` e ajustar apenas o que fizer sentido para o teu ambiente local.
205
-
206
- Variáveis mais relevantes para runtime:
207
-
208
- | Variável | Uso |
209
- | --- | --- |
210
- | `DOCS_SNAPSHOT_FILE` | snapshot documental local |
211
- | `ENTITIES_SNAPSHOT_FILE` | snapshot de entidades local |
212
- | `INDEX_SETTINGS_FILE` | metadados dos índices publicados |
213
- | `RUN_MANIFEST_FILE` | proveniência do bundle embutido |
214
- | `SYSTEM_PROMPT_FILE` | system prompt usada pela tool de answer |
215
- | `DEBUG_MODE` | ativa debug adicional nas respostas |
216
-
217
- Variáveis de manutenção opcional:
218
-
219
- | Variável | Uso |
220
- | --- | --- |
221
- | `UPSTREAM_KNOWLEDGE_GRAPH_DIR` | checkout local do `sbd-toe-knowledge-graph` |
222
- | `BACKEND_CHECKOUT_FILE` | manifesto local do último refresh do bundle; ficheiro de manutenção local, não versionado |
223
-
224
- Não há API keys obrigatórias neste projeto: o modelo continua a ser o do utilizador no VS Code.
225
-
226
- ## Integração com VS Code
227
-
228
- O exemplo de configuração está em [`examples/vscode.mcp.json`](examples/vscode.mcp.json).
229
-
230
- Para o fluxo mais simples via GitHub Release, o bundle já inclui [`.vscode/mcp.json`](.vscode/mcp.json) com este formato:
231
-
232
- ```json
233
- {
234
- "servers": {
235
- "sbdToe": {
236
- "type": "stdio",
237
- "command": "node",
238
- "args": ["${workspaceFolder}/dist/index.js"],
239
- "envFile": "${workspaceFolder}/.env"
240
- }
241
- }
242
- }
243
- ```
244
-
245
- Se abrires a pasta extraída no VS Code, `${workspaceFolder}` passa a apontar para esse bundle e o editor pode usar a configuração diretamente.
246
-
247
- Exemplo realista para um bundle extraído fora do workspace atual:
248
-
249
- ```json
250
- {
251
- "servers": {
252
- "sbdToe": {
253
- "type": "stdio",
254
- "command": "node",
255
- "args": ["/absolute/path/to/sbd-toe-mcp-poc/dist/index.js"],
256
- "envFile": "/absolute/path/to/sbd-toe-mcp-poc/.env"
257
- }
258
- }
259
- }
260
- ```
261
-
262
- Se estiveres a trabalhar diretamente neste repositório, podes adaptar para `${workspaceFolder}`.
263
-
264
- ## Exemplo de uso no chat
265
-
266
- Perguntas úteis para validar a integração:
267
-
268
- ```text
269
- quais os requisitos de autenticacao que preciso implementar para esta aplicacao L1
270
- ```
271
-
272
- ```text
273
- Que policies governam pipelines CI/CD?
274
- ```
275
-
276
- Comportamento esperado:
277
-
278
- - o chat usa `search_sbd_toe_manual` ou `answer_sbd_toe_manual`
279
- - o MCP recupera records relevantes do bundle local
280
- - a resposta final usa apenas o contexto recuperado
281
- - a resposta cita records e aponta páginas determinísticas quando existirem
282
-
283
- ## Troubleshooting e debug
284
-
285
- - Se `dist/` não existir, estás provavelmente num checkout de source sem build concluído.
286
- - Se `data/publish/` não existir, a instalação está incompleta ou o archive foi extraído incorretamente.
287
- - Se o cliente MCP não suportar `sampling`, usa `search_sbd_toe_manual` como fluxo principal.
288
- - Usa `inspect_sbd_toe_retrieval` para ver retrieval, seleção final e prompt montado.
289
- - Ativa `DEBUG_MODE=true` para anexar metadados de debug à resposta.
290
- - Se precisares de atualizar o snapshot embutido, usa `npm run checkout:backend` a partir de um checkout local do `sbd-toe-knowledge-graph`.
291
-
292
- ## Contribuição
293
-
294
- O fluxo de contribuição está em [`CONTRIBUTING.md`](CONTRIBUTING.md).
295
-
296
- Em resumo:
297
-
298
- - trunk-based development com `master`
299
- - branches `feat/`, `fix/`, `docs/`, `chore/` e `hotfix/`
300
- - validação local com `npm ci`, `npm run check` e `npm run build`
301
- - teste manual no VS Code antes de abrir PR
302
- - squash merge para `master`
303
- - releases por tag `vX.Y.Z`
185
+ ---
304
186
 
305
- ## Próximas iterações
187
+ ## Smithery
306
188
 
307
- Os pontos abertos e candidatos a evolução futura estão em [`NEXT-STEPS.md`](NEXT-STEPS.md), incluindo a hipótese de uma extensão wrapper para publicação no VS Code Marketplace.
189
+ This server is registered on [Smithery](https://smithery.ai) the MCP server directory. Smithery provides one-click install and guided configuration.
308
190
 
309
- ## Suporte
191
+ ---
310
192
 
311
- Ver [`SUPPORT.md`](SUPPORT.md).
193
+ ## Security
312
194
 
313
- ## Segurança
195
+ See [`SECURITY.md`](SECURITY.md). Vulnerabilities must be reported privately by email, never via public issue.
314
196
 
315
- Ver [`SECURITY.md`](SECURITY.md). Vulnerabilidades devem ser reportadas em privado por email, nunca por issue público.
197
+ ---
316
198
 
317
- ## Licença
199
+ ## Licence
318
200
 
319
- Este repositório usa **split licensing**:
201
+ Split licensing:
320
202
 
321
- - código e runtime: [`LICENSE`](LICENSE) (`Apache-2.0`)
322
- - documentação e snapshots embutidos: [`LICENSE-DATA`](LICENSE-DATA) (`CC BY-SA 4.0`)
323
- - nota de mapeamento e atribuição: [`LICENSE-NOTE.md`](LICENSE-NOTE.md)
203
+ - code and runtime: [`LICENSE`](LICENSE) (`Apache-2.0`)
204
+ - documentation and bundled snapshots: [`LICENSE-DATA`](LICENSE-DATA) (`CC BY-SA 4.0`)
205
+ - mapping and attribution note: [`LICENSE-NOTE.md`](LICENSE-NOTE.md)
package/dist/config.js CHANGED
@@ -44,8 +44,6 @@ export function getConfig() {
44
44
  backend: {
45
45
  docsIndex: getEnv("SEMANTIC_BACKEND_DOCS_INDEX", "SbD-ToE-ASKAI-Docs"),
46
46
  entitiesIndex: getEnv("SEMANTIC_BACKEND_ENTITIES_INDEX", "SbD-ToE-ASKAI-Entities"),
47
- docsHits: parseInteger("DOCS_HITS", getEnv("DOCS_HITS", "8"), 8),
48
- entitiesHits: parseInteger("ENTITIES_HITS", getEnv("ENTITIES_HITS", "5"), 5),
49
47
  maxContextRecords: parseInteger("MAX_CONTEXT_RECORDS", getEnv("MAX_CONTEXT_RECORDS", "8"), 8),
50
48
  upstreamRepoDir: getEnv("UPSTREAM_KNOWLEDGE_GRAPH_DIR", "../sbd-toe-knowledge-graph"),
51
49
  checkoutFile: getEnv("BACKEND_CHECKOUT_FILE", "./data/upstream/backend-checkout.json"),
@@ -68,7 +66,6 @@ export function getConfig() {
68
66
  },
69
67
  prompt: {
70
68
  systemPromptFile: getEnv("SYSTEM_PROMPT_FILE", "./prompts/sbd-toe-chat-system.md"),
71
- defaultLanguage: getEnv("DEFAULT_LANGUAGE", "pt-PT"),
72
69
  siteBaseUrl: normalizeBaseUrl(getEnv("SITE_BASE_URL", "https://www.securitybydesign.dev/")),
73
70
  manualBaseUrl: normalizeBaseUrl(getEnv("MANUAL_BASE_URL", "https://www.securitybydesign.dev/sbd-toe/sbd-manual/")),
74
71
  crossCheckBaseUrl: normalizeBaseUrl(getEnv("CROSS_CHECK_BASE_URL", "https://www.securitybydesign.dev/sbd-toe/cross-check-normativo/")),
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -7,8 +7,6 @@ export interface AppConfig {
7
7
  backend: {
8
8
  docsIndex: string;
9
9
  entitiesIndex: string;
10
- docsHits: number;
11
- entitiesHits: number;
12
10
  maxContextRecords: number;
13
11
  upstreamRepoDir: string;
14
12
  checkoutFile: string;
@@ -25,7 +23,6 @@ export interface AppConfig {
25
23
  };
26
24
  prompt: {
27
25
  systemPromptFile: string;
28
- defaultLanguage: string;
29
26
  siteBaseUrl: string;
30
27
  manualBaseUrl: string;
31
28
  crossCheckBaseUrl: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@shiftleftpt/sbd-toe-mcp",
3
- "version": "0.1.0",
3
+ "version": "0.2.16",
4
4
  "license": "Apache-2.0",
5
5
  "description": "MCP server for SbD-ToE security manual — structured tools for Claude, GitHub Copilot and other MCP clients",
6
6
  "keywords": ["mcp", "security", "sbd", "toe", "devsecops", "claude", "copilot", "llm"],
@@ -18,7 +18,23 @@
18
18
  "sbd-toe-mcp": "./dist/index.js"
19
19
  },
20
20
  "files": [
21
- "dist/",
21
+ "dist/backend",
22
+ "dist/config.js",
23
+ "dist/config.d.ts",
24
+ "dist/config.js.map",
25
+ "dist/index.js",
26
+ "dist/index.d.ts",
27
+ "dist/index.js.map",
28
+ "dist/orchestrator",
29
+ "dist/prompt",
30
+ "dist/release",
31
+ "dist/resources",
32
+ "dist/tools",
33
+ "dist/types.js",
34
+ "dist/types.d.ts",
35
+ "dist/types.js.map",
36
+ "dist/upstream",
37
+ "dist/validators",
22
38
  "data/publish/",
23
39
  "data/reports/run_manifest.json",
24
40
  "prompts/",
@@ -1 +0,0 @@
1
- export {};