@skillsmith/mcp-server 0.4.12 → 0.4.13

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 (65) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/README.md +44 -0
  3. package/dist/.tsbuildinfo +1 -1
  4. package/dist/src/__tests__/search.test.js +8 -0
  5. package/dist/src/__tests__/search.test.js.map +1 -1
  6. package/dist/src/__tests__/utils/validation.test.js +7 -0
  7. package/dist/src/__tests__/utils/validation.test.js.map +1 -1
  8. package/dist/src/context.async.d.ts.map +1 -1
  9. package/dist/src/context.async.js +22 -1
  10. package/dist/src/context.async.js.map +1 -1
  11. package/dist/src/index.js +1 -1
  12. package/dist/src/middleware/__tests__/license.gate.test.d.ts +2 -0
  13. package/dist/src/middleware/__tests__/license.gate.test.d.ts.map +1 -0
  14. package/dist/src/middleware/__tests__/license.gate.test.js +74 -0
  15. package/dist/src/middleware/__tests__/license.gate.test.js.map +1 -0
  16. package/dist/src/middleware/license.d.ts +1 -23
  17. package/dist/src/middleware/license.d.ts.map +1 -1
  18. package/dist/src/middleware/license.gate.d.ts +23 -0
  19. package/dist/src/middleware/license.gate.d.ts.map +1 -0
  20. package/dist/src/middleware/license.gate.js +59 -0
  21. package/dist/src/middleware/license.gate.js.map +1 -0
  22. package/dist/src/middleware/license.js +2 -31
  23. package/dist/src/middleware/license.js.map +1 -1
  24. package/dist/src/tools/analytics.d.ts +8 -8
  25. package/dist/src/tools/audit-tools.d.ts +6 -6
  26. package/dist/src/tools/compare.types.d.ts +1 -0
  27. package/dist/src/tools/compare.types.d.ts.map +1 -1
  28. package/dist/src/tools/compare.types.js +2 -0
  29. package/dist/src/tools/compare.types.js.map +1 -1
  30. package/dist/src/tools/compliance-tools.d.ts +3 -3
  31. package/dist/src/tools/compliance-tools.d.ts.map +1 -1
  32. package/dist/src/tools/get-skill.js +3 -0
  33. package/dist/src/tools/get-skill.js.map +1 -1
  34. package/dist/src/tools/integration-tools.d.ts +8 -8
  35. package/dist/src/tools/integration-tools.service.d.ts.map +1 -1
  36. package/dist/src/tools/integration-tools.service.hash.test.d.ts +10 -0
  37. package/dist/src/tools/integration-tools.service.hash.test.d.ts.map +1 -0
  38. package/dist/src/tools/integration-tools.service.hash.test.js +48 -0
  39. package/dist/src/tools/integration-tools.service.hash.test.js.map +1 -0
  40. package/dist/src/tools/integration-tools.service.js +22 -2
  41. package/dist/src/tools/integration-tools.service.js.map +1 -1
  42. package/dist/src/tools/integration-tools.service.test.js +17 -14
  43. package/dist/src/tools/integration-tools.service.test.js.map +1 -1
  44. package/dist/src/tools/integration-tools.stub.d.ts.map +1 -1
  45. package/dist/src/tools/integration-tools.stub.js +3 -5
  46. package/dist/src/tools/integration-tools.stub.js.map +1 -1
  47. package/dist/src/tools/publish.types.d.ts +2 -2
  48. package/dist/src/tools/rbac-tools.d.ts +4 -4
  49. package/dist/src/tools/recommend.types.d.ts +3 -3
  50. package/dist/src/tools/registry-tools.d.ts +6 -6
  51. package/dist/src/tools/search.d.ts +1 -1
  52. package/dist/src/tools/search.d.ts.map +1 -1
  53. package/dist/src/tools/search.js +4 -4
  54. package/dist/src/tools/search.js.map +1 -1
  55. package/dist/src/tools/skill-diff.d.ts +2 -2
  56. package/dist/src/tools/sso-tools.d.ts +2 -2
  57. package/dist/src/tools/suggest.d.ts +4 -4
  58. package/dist/src/tools/team-workspace.d.ts +4 -4
  59. package/dist/src/tools/uninstall.d.ts +1 -1
  60. package/dist/src/utils/validation.d.ts +4 -2
  61. package/dist/src/utils/validation.d.ts.map +1 -1
  62. package/dist/src/utils/validation.js +9 -2
  63. package/dist/src/utils/validation.js.map +1 -1
  64. package/package.json +3 -3
  65. package/server.json +2 -2
package/CHANGELOG.md CHANGED
@@ -2,6 +2,12 @@
2
2
 
3
3
  All notable changes to `@skillsmith/mcp-server` are documented here.
4
4
 
5
+ ## v0.4.13
6
+
7
+ - **Fix**: map curated trust tier through MCP surface (SMI-4520) (#822)
8
+ - **Fix**: batch close 4 GitHub security alerts (SMI-4499/4501/4502/4504) (#805)
9
+ - **Fix**: rotate KEY_HMAC_SECRET to env var (SMI-4503, CodeQL #81) (#807)
10
+
5
11
  ## v0.4.12
6
12
 
7
13
  - **Fix**: team-workspace uses service-role client post-license-resolution (SMI-4312) (#650)
package/README.md CHANGED
@@ -352,6 +352,50 @@ Index local skills from `~/.claude/skills/` directory.
352
352
  | `SKILLSMITH_TELEMETRY_ENABLED` | Enable anonymous telemetry | `false` |
353
353
  | `SKILLSMITH_USE_WASM` | Force WASM SQLite driver (sql.js) | `false` |
354
354
  | `POSTHOG_API_KEY` | PostHog API key (required if telemetry enabled) | - |
355
+ | `SKILLSMITH_API_KEY_HMAC_SECRET` | HMAC secret for hashing Custom Integration API keys before DB storage. Required if you invoke `webhook_configure` or `api_key_manage`. See setup below. | - |
356
+
357
+ ### Custom Integration Setup (Team+ admins)
358
+
359
+ The `webhook_configure` and `api_key_manage` tools hash secrets server-side via HMAC-SHA-256 before persisting to the shared `api_keys` table. The HMAC key lives in `SKILLSMITH_API_KEY_HMAC_SECRET` rather than as a hardcoded constant — defense-in-depth so a leaked DB cannot be reverse-cracked offline.
360
+
361
+ **Distribution model**: identical to `SUPABASE_SERVICE_ROLE_KEY`. The same secret value must be set on every MCP host that creates or verifies Custom Integration API keys, otherwise hashes computed on host A won't match hashes verified on host B.
362
+
363
+ If the variable is missing or shorter than 32 characters when these tools are invoked, the call fails fast with:
364
+
365
+ ```
366
+ SKILLSMITH_API_KEY_HMAC_SECRET must be set to a 32+ character random secret
367
+ before integration tools can be used. Generate one via: openssl rand -base64 48
368
+ ```
369
+
370
+ **First-time provisioning** (Skillsmith admin, once per organization):
371
+
372
+ ```bash
373
+ openssl rand -base64 48
374
+ ```
375
+
376
+ Distribute that value through the same secure channel used for `SUPABASE_SERVICE_ROLE_KEY` (e.g., 1Password vault, encrypted onboarding email). Each Team-tier admin sets it on their own MCP host alongside their other secrets:
377
+
378
+ ```jsonc
379
+ // ~/.claude/settings.json
380
+ {
381
+ "mcpServers": {
382
+ "skillsmith": {
383
+ "command": "npx",
384
+ "args": ["-y", "@skillsmith/mcp-server"],
385
+ "env": {
386
+ "SKILLSMITH_API_KEY": "sk_live_your_personal_key",
387
+ "SKILLSMITH_LICENSE_KEY": "sklic_your_team_license",
388
+ "SUPABASE_SERVICE_ROLE_KEY": "eyJ...your_service_role_jwt",
389
+ "SKILLSMITH_API_KEY_HMAC_SECRET": "<the shared 32+ char secret>"
390
+ }
391
+ }
392
+ }
393
+ }
394
+ ```
395
+
396
+ **Rotation**: replace the secret on every host in lockstep. Existing rows in the `api_keys` table become unverifiable after rotation, so coordinate with affected admins or invalidate keys explicitly. As of 2026-04-26 the table has zero rows, so the first rotation post-launch is free.
397
+
398
+ If you only use Community/Individual tools (search, install, recommend, etc.), this variable is not needed.
355
399
 
356
400
  ### WASM Fallback (v0.3.18+)
357
401