@pascalcouturier/skill-builder-mcp 2.5.0 → 3.1.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 +57 -3
- package/README.md +65 -85
- package/SECURITY.md +16 -10
- package/dist/cli.js +609 -432
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,13 +2,67 @@
|
|
|
2
2
|
|
|
3
3
|
Every release of `@pascalcouturier/skill-builder-mcp`. Versions follow
|
|
4
4
|
[semantic versioning](https://semver.org); the major version matches the newest protocol the
|
|
5
|
-
connector speaks. Skill Builder
|
|
6
|
-
|
|
5
|
+
connector speaks. Skill Builder speaks only protocol 3, so `1.x` and `2.x` connectors can no
|
|
6
|
+
longer connect: replace the install line with the `@3` one.
|
|
7
7
|
|
|
8
|
-
The install line names the major version (`@
|
|
8
|
+
The install line names the major version (`@3`), so restarting your AI tool or its MCP server
|
|
9
9
|
fetches the newest release of that major (see **Updating** in the
|
|
10
10
|
[README](./README.md#updating)).
|
|
11
11
|
|
|
12
|
+
## 3.1.0
|
|
13
|
+
|
|
14
|
+
Same protocol and tools; the install line stays `@3`, so restarting your AI tool picks it up.
|
|
15
|
+
The tool definitions it offers before Skill Builder connects now match the app's:
|
|
16
|
+
|
|
17
|
+
- `validate` takes `documentId` (check one skill or agent) and `since` (the revision of your
|
|
18
|
+
last result: only what changed comes back), for loops that check after every round.
|
|
19
|
+
- `add_document` adds a whole workflow when `templateId` is a workflow id from
|
|
20
|
+
`list_templates`.
|
|
21
|
+
- `get_standards` has the topic `improve`, the `/improve-until` routine, for AI tools that do
|
|
22
|
+
not show slash commands.
|
|
23
|
+
- `apply_fix` accepts `set-loop-limit`, the fix for a loop with no limit.
|
|
24
|
+
- **A refresh keeps the pairing.** After you pair, the connector hands Skill Builder a
|
|
25
|
+
one-use resume secret (kept in memory only). If you refresh the page within two minutes, Skill
|
|
26
|
+
Builder proves it holds the secret and the AI tool stays connected, with no new code. Closing
|
|
27
|
+
the tab, a new window or tab, restoring tabs after a browser restart, or restarting the AI
|
|
28
|
+
tool still asks for a new code. Older tabs and connectors are unaffected: the messages are
|
|
29
|
+
only used between 3.1.0 and an app that knows them. Disconnecting or denying in Skill Builder,
|
|
30
|
+
or turning Connect AI off, closes with code 4000 and the connector forgets the secret at once.
|
|
31
|
+
|
|
32
|
+
## 3.0.0
|
|
33
|
+
|
|
34
|
+
Fewer, grouped tools, so AI tools read about a third less with every request and choose tools
|
|
35
|
+
more reliably. Every feature stays. **Replace your install line with the `@3` one** (Skill
|
|
36
|
+
Builder → Settings → Connect AI): `2.x` connectors can no longer connect, and Skill Builder
|
|
37
|
+
tells you when it finds one.
|
|
38
|
+
|
|
39
|
+
- **41 tools instead of 67.** Related actions share one tool, with an `action` (or `kind`):
|
|
40
|
+
- `block_action`: `move`, `duplicate`, `remove`, `convert`, `break_down`, `extract`
|
|
41
|
+
(was `move_block`, `duplicate_block`, `remove_block`, `convert_block`,
|
|
42
|
+
`break_down_block`, `extract_block_to_file`).
|
|
43
|
+
- `file_action`: `add`, `write`, `move`, `rename` (was `add_file`, `write_code_file`,
|
|
44
|
+
`move_file`, `rename_file`).
|
|
45
|
+
- `delete`: `session`, `document`, `file`, `block_type`, `library_item` (was
|
|
46
|
+
`delete_session`, `remove_document`, `remove_file`, `delete_block_type`,
|
|
47
|
+
`remove_library_item`). It still asks the person first.
|
|
48
|
+
- `duplicate`: `session`, `document` (was `duplicate_session`, `duplicate_document`).
|
|
49
|
+
- `link`: `connect`, `disconnect`.
|
|
50
|
+
- `versions`: `list`, `diff` (was `list_versions`, `diff_versions`).
|
|
51
|
+
- `library_item`: `add`, `update`, `restore_version`, `copy_builtin`, `set_hidden` (was
|
|
52
|
+
`add_library_item`, `update_library_item`, `restore_library_version`,
|
|
53
|
+
`copy_builtin_to_library`, `set_library_hidden`).
|
|
54
|
+
- `repository_import`: `start`, `add_files`, `finish` (was `start_repository_import`,
|
|
55
|
+
`add_repository_files`, `finish_repository_import`).
|
|
56
|
+
- `download`: `project` (the zip or the report), `backup` (was `download_export`,
|
|
57
|
+
`download_backup`).
|
|
58
|
+
- `get_session` with `canvas: true` replaces `get_canvas`; `get_document` with `fileId`
|
|
59
|
+
replaces `read_file`; `validate` with `files` replaces `check_files`; `add_document` with
|
|
60
|
+
`fromLibrary` replaces `add_from_library`.
|
|
61
|
+
- **Leaner definitions:** the input schemas AI tools read leave out length limits (Skill Builder
|
|
62
|
+
still enforces them), and shared notes are said once in the server instructions.
|
|
63
|
+
- **Compact results:** tool results are sent without indentation.
|
|
64
|
+
- **Protocol 3:** the tool list no longer repeats each title in its annotations.
|
|
65
|
+
|
|
12
66
|
## 2.5.0
|
|
13
67
|
|
|
14
68
|
Measure and improve a project, and a faster security scan.
|
package/README.md
CHANGED
|
@@ -72,10 +72,10 @@ shows the same steps with copy buttons and one-click install links for VS Code a
|
|
|
72
72
|
Every tool runs the same command, which names the major version:
|
|
73
73
|
|
|
74
74
|
```bash
|
|
75
|
-
npx -y @pascalcouturier/skill-builder-mcp@
|
|
75
|
+
npx -y @pascalcouturier/skill-builder-mcp@3
|
|
76
76
|
```
|
|
77
77
|
|
|
78
|
-
`@
|
|
78
|
+
`@3` means "the newest 3.x release". `npx` looks it up each time your AI tool starts the
|
|
79
79
|
connector, so you get fixes and new features after a restart without editing anything. A
|
|
80
80
|
release that changes how the app and the connector talk to each other needs a new major
|
|
81
81
|
(`@3`) and never arrives on its own.
|
|
@@ -90,7 +90,7 @@ User Configuration** and add:
|
|
|
90
90
|
"skill-builder": {
|
|
91
91
|
"type": "stdio",
|
|
92
92
|
"command": "npx",
|
|
93
|
-
"args": ["-y", "@pascalcouturier/skill-builder-mcp@
|
|
93
|
+
"args": ["-y", "@pascalcouturier/skill-builder-mcp@3"]
|
|
94
94
|
}
|
|
95
95
|
}
|
|
96
96
|
}
|
|
@@ -102,7 +102,7 @@ Then switch Copilot Chat to **Agent** mode and tick the **skill-builder** tools
|
|
|
102
102
|
**Claude Code** (CLI and the VS Code extension), once in a terminal:
|
|
103
103
|
|
|
104
104
|
```bash
|
|
105
|
-
claude mcp add --scope user skill-builder -- npx -y @pascalcouturier/skill-builder-mcp@
|
|
105
|
+
claude mcp add --scope user skill-builder -- npx -y @pascalcouturier/skill-builder-mcp@3
|
|
106
106
|
```
|
|
107
107
|
|
|
108
108
|
**OpenAI Codex** (CLI and the VS Code extension), in `~/.codex/config.toml`
|
|
@@ -111,7 +111,7 @@ claude mcp add --scope user skill-builder -- npx -y @pascalcouturier/skill-build
|
|
|
111
111
|
```toml
|
|
112
112
|
[mcp_servers.skill-builder]
|
|
113
113
|
command = "npx"
|
|
114
|
-
args = ["-y", "@pascalcouturier/skill-builder-mcp@
|
|
114
|
+
args = ["-y", "@pascalcouturier/skill-builder-mcp@3"]
|
|
115
115
|
```
|
|
116
116
|
|
|
117
117
|
**Cursor** (`~/.cursor/mcp.json`), **Claude Desktop** (**Settings → Developer → Edit
|
|
@@ -122,14 +122,14 @@ Config**, then restart it) and most other clients (Windsurf, Cline, Zed…):
|
|
|
122
122
|
"mcpServers": {
|
|
123
123
|
"skill-builder": {
|
|
124
124
|
"command": "npx",
|
|
125
|
-
"args": ["-y", "@pascalcouturier/skill-builder-mcp@
|
|
125
|
+
"args": ["-y", "@pascalcouturier/skill-builder-mcp@3"]
|
|
126
126
|
}
|
|
127
127
|
}
|
|
128
128
|
}
|
|
129
129
|
```
|
|
130
130
|
|
|
131
131
|
On **Windows**, if the tool can not start `npx`, use `"command": "cmd"` and
|
|
132
|
-
`"args": ["/c", "npx", "-y", "@pascalcouturier/skill-builder-mcp@
|
|
132
|
+
`"args": ["/c", "npx", "-y", "@pascalcouturier/skill-builder-mcp@3"]`.
|
|
133
133
|
|
|
134
134
|
### 2. Turn on Connect AI in Skill Builder
|
|
135
135
|
|
|
@@ -155,7 +155,10 @@ The code is made by the connector and shown only in your AI tool; it never trave
|
|
|
155
155
|
connection. Both sides prove they know it, so no other program on your computer can pose as
|
|
156
156
|
Skill Builder or as the connector. Three wrong codes close the connection; ten in one run
|
|
157
157
|
turn pairing off until you restart the AI tool. You pair again after restarting the AI tool
|
|
158
|
-
or
|
|
158
|
+
or in a new Skill Builder window; the code is new every time and you never need to keep it.
|
|
159
|
+
Refreshing the page keeps the pairing (within two minutes, and until the AI tool restarts): the
|
|
160
|
+
connector gives Skill Builder a one-use secret that it keeps as a key no script can read, and
|
|
161
|
+
Skill Builder proves it holds it, so there is no new code.
|
|
159
162
|
|
|
160
163
|
## What you can ask
|
|
161
164
|
|
|
@@ -177,7 +180,7 @@ or reloading Skill Builder; the code is new every time and you never need to kee
|
|
|
177
180
|
The connector offers MCP prompts, which AI tools show as slash commands:
|
|
178
181
|
|
|
179
182
|
- **`review-skill`** (always): the AI checks a skill or agent with Skill Builder's rules
|
|
180
|
-
(`
|
|
183
|
+
(`validate` with `files` for files in your repository, `validate` alone in Skill Builder), fixes the
|
|
181
184
|
problems, improves it following best practice and summarises what it changed.
|
|
182
185
|
- **`init-agents-md`** (when Skill Builder is connected): like `/init`, the AI reads your
|
|
183
186
|
repository (commands, structure, conventions, installed skills and agents) and creates or
|
|
@@ -210,75 +213,49 @@ The AI can do what you can do in the app, except anything to do with the cloud (
|
|
|
210
213
|
sync, the AI check, the community library). Tools marked **asks** wait for your confirmation
|
|
211
214
|
in Skill Builder.
|
|
212
215
|
|
|
213
|
-
| Tool | What it does
|
|
214
|
-
| ---------------------------- |
|
|
215
|
-
| `get_status` | What is open: project, skill or agent, file, unsaved changes
|
|
216
|
-
| `list_sessions` | Search, filter, sort and page projects
|
|
217
|
-
| `get_session` | A project's skills and agents, files and links
|
|
218
|
-
| `get_document` | A skill or agent with every block (uids, types, values)
|
|
219
|
-
| `
|
|
220
|
-
| `
|
|
221
|
-
| `
|
|
222
|
-
| `
|
|
223
|
-
| `
|
|
224
|
-
| `
|
|
225
|
-
| `
|
|
226
|
-
| `
|
|
227
|
-
| `
|
|
228
|
-
| `
|
|
229
|
-
| `
|
|
230
|
-
| `
|
|
231
|
-
| `
|
|
232
|
-
| `
|
|
233
|
-
| `
|
|
234
|
-
| `
|
|
235
|
-
| `
|
|
236
|
-
| `
|
|
237
|
-
| `
|
|
238
|
-
| `
|
|
239
|
-
| `
|
|
240
|
-
| `
|
|
241
|
-
| `
|
|
242
|
-
| `
|
|
243
|
-
| `
|
|
244
|
-
| `
|
|
245
|
-
| `
|
|
246
|
-
| `
|
|
247
|
-
| `
|
|
248
|
-
| `
|
|
249
|
-
| `
|
|
250
|
-
| `
|
|
251
|
-
| `
|
|
252
|
-
| `
|
|
253
|
-
| `
|
|
254
|
-
| `
|
|
255
|
-
| `
|
|
256
|
-
| `write_code_file` | Write a script or data file (scanned, never run) | |
|
|
257
|
-
| `add_files` | Add several supporting files by path (scanned like uploads) | |
|
|
258
|
-
| `move_file` | Move a file to another folder of its skill (`scripts/test`) | |
|
|
259
|
-
| `rename_file` | Rename a reference | |
|
|
260
|
-
| `remove_file` | Delete a file | asks |
|
|
261
|
-
| `connect` | Link an agent to a skill, or point a reference or Resource link block | |
|
|
262
|
-
| `disconnect` | Remove such a link | |
|
|
263
|
-
| `add_from_library` | Add a library skill or agent to the project | |
|
|
264
|
-
| `update_evaluation` | Save tests for a skill or agent, or the results of running them (`/evaluate-skill`) | |
|
|
265
|
-
| `apply_fix` | Apply a fix from `validate` | |
|
|
266
|
-
| `save_version` | Save a version (bump suggested from the changes) | |
|
|
267
|
-
| `restore_version` | Replace the working copy with a version | asks |
|
|
268
|
-
| `download_export` | Download the zip in the browser, for the AI tools you choose, or the project report | |
|
|
269
|
-
| `download_backup` | Download a backup in the browser | |
|
|
270
|
-
| `tidy_canvas` | Tidy the canvas layout | |
|
|
271
|
-
| `undo_ai_changes` | Same as **Undo AI changes** | if you edited |
|
|
272
|
-
| `save_block_type` | Create or edit a custom block type | |
|
|
273
|
-
| `delete_block_type` | Delete a custom block type | asks |
|
|
274
|
-
| `add_library_item` | Add your own skill or agent to the library from markdown | if warnings |
|
|
275
|
-
| `update_library_item` | Edit a library item (saved as a new version) | |
|
|
276
|
-
| `restore_library_version` | Bring back an older version of a library item | |
|
|
277
|
-
| `copy_builtin_to_library` | Make an editable copy of a built-in skill | |
|
|
278
|
-
| `set_library_hidden` | Hide or show a built-in skill | |
|
|
279
|
-
| `remove_library_item` | Delete a library item | asks |
|
|
280
|
-
| `import_from_github` | List and import skills and agents from a public GitHub repo | if warnings |
|
|
281
|
-
| `set_preferences` | Default author, Blocks or Canvas view, block matching on import | |
|
|
216
|
+
| Tool | What it does | Asks |
|
|
217
|
+
| ---------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------- |
|
|
218
|
+
| `get_status` | What is open: project, skill or agent, file, unsaved changes | |
|
|
219
|
+
| `list_sessions` | Search, filter, sort and page projects | |
|
|
220
|
+
| `get_session` | A project's skills and agents, files and links; with `canvas`, the canvas graph | |
|
|
221
|
+
| `get_document` | A skill or agent with every block (uids, types, values); with `fileId`, the markdown a file produces or a script's text | |
|
|
222
|
+
| `list_block_types` | Block types and their fields | |
|
|
223
|
+
| `list_templates` | Templates for new skills, agents and rules, with best practice for writing them | |
|
|
224
|
+
| `list_library` | Built-in skills, agents and rules, and your library items | |
|
|
225
|
+
| `get_library_item` | One library item with its files, scan result and versions | |
|
|
226
|
+
| `validate` | The checks, with one-click fixes, each with why it matters and its source; with `files`, checks skill or agent files from your repository (nothing is stored); `documentId` checks one item and `since` returns only what changed since your last result | |
|
|
227
|
+
| `analyze_project` | The project report's analysis: scorecard, findings with evidence, context cost per AI tool, competition, portability, tests; returns a baseline id | |
|
|
228
|
+
| `compare_analysis` | Before and after a baseline, computed by Skill Builder (characters, findings, tests) | |
|
|
229
|
+
| `get_standards` | Best practice per topic and per AI tool, with sources and the date each was checked; topic `improve` is the `/improve-until` routine | |
|
|
230
|
+
| `use_skill` | Use a skill, agent, rule or instructions you shared: main file, then files on demand | first use |
|
|
231
|
+
| `preview_export` | The files the zip would contain (ready for a project, or plain folders) | |
|
|
232
|
+
| `versions` | Saved versions (`list`), or line changes between versions or against the working copy (`diff`) | |
|
|
233
|
+
| `create_session` | New project | |
|
|
234
|
+
| `open_session` | Show a project, skill or agent, or file in the app | |
|
|
235
|
+
| `update_session` | Rename, change author or description, star | |
|
|
236
|
+
| `duplicate` | Copy a project (`session`) or a skill or agent (`document`) | |
|
|
237
|
+
| `delete` | Delete a project and its versions, a skill or agent, a file, a custom block type or a library item | asks |
|
|
238
|
+
| `add_document` | Add a skill, agent or tool file, optionally from a template or a whole workflow (a workflow id from `list_templates`), or a copy of a library item (`fromLibrary`) | |
|
|
239
|
+
| `update_document` | Set name, description, licence, allowed tools, model… | |
|
|
240
|
+
| `write_project_instructions` | Create or update AGENTS.md and CLAUDE.md from your repository (`/init-agents-md`) | |
|
|
241
|
+
| `repository_import` | Import your repository's AI files into a new project: `start`, `add_files` (up to 50 per call), `finish` (`/import-project`) | |
|
|
242
|
+
| `add_block` | Add a block with values at a position | |
|
|
243
|
+
| `update_block` | Change block values, collapse or expand | |
|
|
244
|
+
| `block_action` | `move` (up, down or to another file), `duplicate`, `remove`, `convert` to Custom markdown, `break_down` into built-in blocks, `extract` to a new reference file | |
|
|
245
|
+
| `add_files` | Add several supporting files by path (scanned like uploads) | |
|
|
246
|
+
| `file_action` | `add` a reference, script or asset, `write` a script or data file (scanned, never run), `move` it to another folder (`scripts/test`), `rename` a reference | |
|
|
247
|
+
| `link` | `connect` an agent to a skill, or point a reference or Resource link block; `disconnect` removes the link | |
|
|
248
|
+
| `update_evaluation` | Save tests for a skill or agent, or the results of running them (`/evaluate-skill`) | |
|
|
249
|
+
| `apply_fix` | Apply a fix from `validate`, such as adding or limiting a Completion goal | |
|
|
250
|
+
| `save_version` | Save a version, only when you ask (bump suggested from the changes) | asks |
|
|
251
|
+
| `restore_version` | Replace the working copy with a version | asks |
|
|
252
|
+
| `download` | Download the zip (refused if the scan finds a secret) or the project report as HTML or Markdown (`project`), or a backup (`backup`) | asks |
|
|
253
|
+
| `tidy_canvas` | Tidy the canvas layout | |
|
|
254
|
+
| `undo_ai_changes` | Same as **Undo AI changes** | if you edited |
|
|
255
|
+
| `save_block_type` | Create or edit a custom block type | |
|
|
256
|
+
| `library_item` | Your library: `add` a skill, agent or rule from markdown, `update` it (a new version), `restore_version`, `copy_builtin` (an editable copy of a built-in skill), `set_hidden` | if warnings |
|
|
257
|
+
| `import_from_github` | List and import skills and agents from a public GitHub repo | if warnings |
|
|
258
|
+
| `set_preferences` | Default author, Blocks or Canvas view, block matching on import | |
|
|
282
259
|
|
|
283
260
|
Edits carry the project's revision. If you changed the project since the AI last read it,
|
|
284
261
|
the edit is refused and the AI reads it again, so it never overwrites your work by accident.
|
|
@@ -375,7 +352,7 @@ runtime code generation.
|
|
|
375
352
|
- **Inputs are checked** against schemas, and text the AI writes goes through Skill
|
|
376
353
|
Builder's security scanner (prompt-injection phrases, hidden characters, secrets,
|
|
377
354
|
download-and-run commands). Scripts are stored as text and never run.
|
|
378
|
-
- **Major version, not `latest`:** the install line is `@
|
|
355
|
+
- **Major version, not `latest`:** the install line is `@3`, so you get new 3.x releases but
|
|
379
356
|
never a breaking major unasked. Published npm versions can never be changed or replaced, and
|
|
380
357
|
only the approved GitHub Actions workflow can publish. To review every release first, put
|
|
381
358
|
an exact version after the `@` instead; Skill Builder still tells you when it is out of
|
|
@@ -404,7 +381,7 @@ Details, the threat model, how to check a release yourself and how to report a p
|
|
|
404
381
|
| _"AI tools are connected in another tab"_ | Click **Use this tab** in Skill Builder, or close the other tab or window. |
|
|
405
382
|
| _"…connector x.y.z is out of date…"_ in the app | See [Updating](#updating). |
|
|
406
383
|
| _"Not saved: the security check refused it"_ | The text contains something the scanner does not allow (for example an API key or a `curl … \| sh` command). Remove it and try again. |
|
|
407
|
-
| Company network blocks `npx` | Ask for `registry.npmjs.org` to be allowed, or install once with `npm install -g @pascalcouturier/skill-builder-mcp@
|
|
384
|
+
| Company network blocks `npx` | Ask for `registry.npmjs.org` to be allowed, or install once with `npm install -g @pascalcouturier/skill-builder-mcp@3` and use `skill-builder-mcp` as the command (run it again to update; a global install does not update itself). |
|
|
408
385
|
| Safari | Not supported: Safari blocks websites from connecting to programs on your computer. Use Chrome, Edge or Firefox. |
|
|
409
386
|
|
|
410
387
|
The connector logs connection events (never your content) to your AI tool's MCP log (VS
|
|
@@ -412,8 +389,8 @@ Code: **MCP: List Servers → skill-builder → Show Output**).
|
|
|
412
389
|
|
|
413
390
|
## Updating
|
|
414
391
|
|
|
415
|
-
The install line names the major version (`@
|
|
416
|
-
your AI tool starts it, `npx` fetches the newest
|
|
392
|
+
The install line names the major version (`@3`), so the connector updates itself: each time
|
|
393
|
+
your AI tool starts it, `npx` fetches the newest 3.x release. You only have to restart.
|
|
417
394
|
|
|
418
395
|
Skill Builder tells you when a connected tool's connector is older than the one it was built
|
|
419
396
|
for: a notice when the tool connects, an amber dot on the **AI** menu in the header, and a
|
|
@@ -425,12 +402,14 @@ note under the tool in **Settings → Connect AI**. What to do:
|
|
|
425
402
|
the window or quit the tool) or `npx` served a cached copy: delete the `_npx` folder inside
|
|
426
403
|
your npm cache (`npm config get cache` prints where it is).
|
|
427
404
|
- **"Replace its install line…"**: the tool has a line from an earlier major (for example
|
|
428
|
-
`@
|
|
405
|
+
`@2`), which a restart keeps running. Copy the current line from **Settings → Connect AI →
|
|
429
406
|
Set up an AI tool** (Claude Code: `claude mcp remove skill-builder`, then the new
|
|
430
407
|
`claude mcp add` line).
|
|
431
408
|
|
|
432
409
|
Read what changed in [CHANGELOG.md](./CHANGELOG.md). An older connector that still speaks a
|
|
433
|
-
protocol the app supports keeps working; it only misses what is new.
|
|
410
|
+
protocol the app supports keeps working; it only misses what is new. A `2.x` connector can not
|
|
411
|
+
connect to the current Skill Builder (3.0 grouped the tools): Skill Builder says so, and the
|
|
412
|
+
fix is to replace the install line with the `@3` one.
|
|
434
413
|
|
|
435
414
|
## Removing it
|
|
436
415
|
|
|
@@ -458,7 +437,8 @@ Nothing else is installed, and the connector leaves no files behind.
|
|
|
458
437
|
- **ChatGPT** (web and desktop) only supports remote MCP servers, so it can not use this
|
|
459
438
|
connector.
|
|
460
439
|
- **Safari** is not supported.
|
|
461
|
-
- **Pair on each start:** pairing is not remembered
|
|
440
|
+
- **Pair on each start:** pairing is not remembered after the AI tool restarts, or in a new
|
|
441
|
+
window or tab. A refresh keeps it.
|
|
462
442
|
- **Cloud features** (sign-in, sync, the AI check, the community library) are not available
|
|
463
443
|
to AI tools.
|
|
464
444
|
|
package/SECURITY.md
CHANGED
|
@@ -23,7 +23,11 @@ it does and does not do, how that is enforced, and how to check it yourself.
|
|
|
23
23
|
- **No code from outside.** It never evaluates code it receives, and it does not generate
|
|
24
24
|
code at runtime (`eval` and `new Function` are never called).
|
|
25
25
|
- **No telemetry, no analytics, no accounts, no cloud.**
|
|
26
|
-
- **No secrets stored.** Keys are made fresh for each connection and kept in memory only.
|
|
26
|
+
- **No secrets stored.** Keys are made fresh for each connection and kept in memory only. The
|
|
27
|
+
one exception is the resume secret that lets a refreshed Skill Builder tab reconnect without a
|
|
28
|
+
new code: it is random, used once, kept in the connector's memory only (never written
|
|
29
|
+
anywhere), accepted for two minutes after the tab left, and gone when the connector exits or when you
|
|
30
|
+
disconnect or turn Connect AI off in Skill Builder.
|
|
27
31
|
|
|
28
32
|
These are checked by an automated test (`src/sandbox.test.ts`) that runs the exact file
|
|
29
33
|
published to npm under Node's permission model (`--permission`, with read access to the
|
|
@@ -54,7 +58,8 @@ name, program start, file write or runtime code generation.
|
|
|
54
58
|
`use_skill`): only items marked **Available to AI tools** in the project open in the tab, only
|
|
55
59
|
after the person allows the first use in each connection, scanned each time (blocked content
|
|
56
60
|
is never sent), script code only when allowed per item, and framed as guidance that never
|
|
57
|
-
overrides the person.
|
|
61
|
+
overrides the person. An approval holds only for the text that was shown: a changed item asks
|
|
62
|
+
again.
|
|
58
63
|
|
|
59
64
|
## Secrets
|
|
60
65
|
|
|
@@ -65,8 +70,9 @@ name, program start, file write or runtime code generation.
|
|
|
65
70
|
records every file and variable it touches; another checks the file loads nothing beyond
|
|
66
71
|
networking, crypto and streams.
|
|
67
72
|
- **Skill Builder refuses secrets in what the AI writes:** credentials by format (AWS, GitHub,
|
|
68
|
-
Anthropic, OpenAI, Stripe, Google, npm, Slack tokens, JWTs, private keys),
|
|
69
|
-
with a random-looking value
|
|
73
|
+
Anthropic, OpenAI, Stripe, Google, GitLab, npm, Slack tokens, JWTs, private keys), `Bearer`
|
|
74
|
+
tokens, `.env`-style lines with a random-looking value (also when the value is on the next
|
|
75
|
+
line), passwords in connection strings, and files named like secrets
|
|
70
76
|
(`.env`, `*.pem`, `id_rsa`, `credentials.json`). Placeholders such as `YOUR_API_KEY` are fine.
|
|
71
77
|
The AI is told never to look for, repeat or store a secret.
|
|
72
78
|
- **Your AI tool is what reads your project**, and only its own settings can limit that. For
|
|
@@ -122,9 +128,9 @@ commands, edit files). Treat any tool's output as untrusted, including this one'
|
|
|
122
128
|
|
|
123
129
|
```bash
|
|
124
130
|
# What it contains, and its checksum
|
|
125
|
-
npm pack @pascalcouturier/skill-builder-mcp@
|
|
126
|
-
tar -tzf pascalcouturier-skill-builder-mcp-
|
|
127
|
-
npm view @pascalcouturier/skill-builder-mcp@
|
|
131
|
+
npm pack @pascalcouturier/skill-builder-mcp@3.1.0
|
|
132
|
+
tar -tzf pascalcouturier-skill-builder-mcp-3.1.0.tgz
|
|
133
|
+
npm view @pascalcouturier/skill-builder-mcp@3.1.0 dist.integrity
|
|
128
134
|
|
|
129
135
|
# That the registry signed it (in a project that installs it)
|
|
130
136
|
npm audit signatures
|
|
@@ -138,15 +144,15 @@ On Node.js 25 and later the permission model also covers the network. `--help` n
|
|
|
138
144
|
but to run the connector itself this way add `--allow-net`: it only listens on 127.0.0.1,
|
|
139
145
|
and the sandbox test still checks that it never connects anywhere.
|
|
140
146
|
|
|
141
|
-
Install instructions name the major version (`@
|
|
142
|
-
`npx` resolves it each time your AI tool starts the connector, so you get new
|
|
147
|
+
Install instructions name the major version (`@3`), not `@latest` and not an exact release.
|
|
148
|
+
`npx` resolves it each time your AI tool starts the connector, so you get new 3.x releases after
|
|
143
149
|
a restart, while a release that breaks the protocol needs a new major and never arrives on its
|
|
144
150
|
own. Published npm versions can never be changed or replaced, and releases are published only by
|
|
145
151
|
the approved GitHub Actions workflow (no npm token exists).
|
|
146
152
|
|
|
147
153
|
This means a release reaches you without you reviewing it first. If you want to review each one
|
|
148
154
|
(for example in a company), put an exact version after the `@` in your AI tool's settings, such as
|
|
149
|
-
`@
|
|
155
|
+
`@3.1.0`, and update it yourself; Skill Builder still shows when your connector is out of date.
|
|
150
156
|
Use the commands above to look at any release before you run it.
|
|
151
157
|
|
|
152
158
|
## Reporting a problem
|