@get-technology-inc/jamf-docs-mcp-server 4.0.0 → 4.0.2

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 (84) hide show
  1. package/README.md +73 -0
  2. package/dist/core/apps/generated/app-html.d.ts +3 -1
  3. package/dist/core/apps/generated/app-html.d.ts.map +1 -1
  4. package/dist/core/apps/generated/app-html.js +3 -1
  5. package/dist/core/apps/generated/app-html.js.map +1 -1
  6. package/dist/core/apps/index.d.ts +18 -2
  7. package/dist/core/apps/index.d.ts.map +1 -1
  8. package/dist/core/apps/index.js +23 -4
  9. package/dist/core/apps/index.js.map +1 -1
  10. package/dist/core/create-server.d.ts +10 -2
  11. package/dist/core/create-server.d.ts.map +1 -1
  12. package/dist/core/create-server.js +17 -4
  13. package/dist/core/create-server.js.map +1 -1
  14. package/dist/core/resources/index.d.ts.map +1 -1
  15. package/dist/core/resources/index.js +29 -4
  16. package/dist/core/resources/index.js.map +1 -1
  17. package/dist/core/schemas/index.js +2 -2
  18. package/dist/core/schemas/index.js.map +1 -1
  19. package/dist/core/schemas/output.d.ts +9 -0
  20. package/dist/core/schemas/output.d.ts.map +1 -1
  21. package/dist/core/schemas/output.js +29 -0
  22. package/dist/core/schemas/output.js.map +1 -1
  23. package/dist/core/services/article-service.d.ts +9 -1
  24. package/dist/core/services/article-service.d.ts.map +1 -1
  25. package/dist/core/services/article-service.js +4 -5
  26. package/dist/core/services/article-service.js.map +1 -1
  27. package/dist/core/services/ft-client.d.ts.map +1 -1
  28. package/dist/core/services/ft-client.js +2 -1
  29. package/dist/core/services/ft-client.js.map +1 -1
  30. package/dist/core/services/glossary.d.ts.map +1 -1
  31. package/dist/core/services/glossary.js +18 -10
  32. package/dist/core/services/glossary.js.map +1 -1
  33. package/dist/core/services/interfaces/cache.d.ts +1 -1
  34. package/dist/core/services/interfaces/cache.d.ts.map +1 -1
  35. package/dist/core/services/maps-registry.d.ts +0 -1
  36. package/dist/core/services/maps-registry.d.ts.map +1 -1
  37. package/dist/core/services/maps-registry.js +20 -15
  38. package/dist/core/services/maps-registry.js.map +1 -1
  39. package/dist/core/services/metadata.d.ts +27 -3
  40. package/dist/core/services/metadata.d.ts.map +1 -1
  41. package/dist/core/services/metadata.js +66 -26
  42. package/dist/core/services/metadata.js.map +1 -1
  43. package/dist/core/services/search-service.d.ts.map +1 -1
  44. package/dist/core/services/search-service.js +6 -1
  45. package/dist/core/services/search-service.js.map +1 -1
  46. package/dist/core/services/toc-service.d.ts.map +1 -1
  47. package/dist/core/services/toc-service.js +7 -3
  48. package/dist/core/services/toc-service.js.map +1 -1
  49. package/dist/core/services/topic-resolver.d.ts.map +1 -1
  50. package/dist/core/services/topic-resolver.js +62 -19
  51. package/dist/core/services/topic-resolver.js.map +1 -1
  52. package/dist/core/tools/get-article.d.ts.map +1 -1
  53. package/dist/core/tools/get-article.js +30 -18
  54. package/dist/core/tools/get-article.js.map +1 -1
  55. package/dist/core/tools/get-toc.d.ts.map +1 -1
  56. package/dist/core/tools/get-toc.js +4 -0
  57. package/dist/core/tools/get-toc.js.map +1 -1
  58. package/dist/core/tools/glossary-lookup.d.ts.map +1 -1
  59. package/dist/core/tools/glossary-lookup.js +2 -1
  60. package/dist/core/tools/glossary-lookup.js.map +1 -1
  61. package/dist/core/tools/search.d.ts.map +1 -1
  62. package/dist/core/tools/search.js +24 -7
  63. package/dist/core/tools/search.js.map +1 -1
  64. package/dist/core/types.d.ts +42 -10
  65. package/dist/core/types.d.ts.map +1 -1
  66. package/dist/core/types.js.map +1 -1
  67. package/dist/core/utils/ft-metadata.d.ts +10 -2
  68. package/dist/core/utils/ft-metadata.d.ts.map +1 -1
  69. package/dist/core/utils/ft-metadata.js +10 -2
  70. package/dist/core/utils/ft-metadata.js.map +1 -1
  71. package/dist/platforms/node/cache.d.ts +1 -1
  72. package/dist/platforms/node/cache.d.ts.map +1 -1
  73. package/dist/platforms/node/cache.js.map +1 -1
  74. package/dist/platforms/node/config.d.ts.map +1 -1
  75. package/dist/platforms/node/config.js +3 -5
  76. package/dist/platforms/node/config.js.map +1 -1
  77. package/dist/platforms/node/http-server.d.ts.map +1 -1
  78. package/dist/platforms/node/http-server.js +21 -7
  79. package/dist/platforms/node/http-server.js.map +1 -1
  80. package/dist/transport/http-handler.d.ts +37 -7
  81. package/dist/transport/http-handler.d.ts.map +1 -1
  82. package/dist/transport/http-handler.js +180 -21
  83. package/dist/transport/http-handler.js.map +1 -1
  84. package/package.json +5 -4
package/README.md CHANGED
@@ -10,6 +10,44 @@ An MCP server that gives AI assistants (Claude, Cursor, etc.) direct access to J
10
10
 
11
11
  [中文文件](docs/README.zh-TW.md)
12
12
 
13
+ ## Installation
14
+
15
+ `@modelcontextprotocol/server` is a **peer dependency**, and the CLI imports it
16
+ at startup (`dist/index.js` → `@modelcontextprotocol/server/stdio`). If it is
17
+ missing from the install tree the process exits immediately with
18
+ `ERR_MODULE_NOT_FOUND` — the install itself succeeds, so the failure only
19
+ shows up when you run the server.
20
+
21
+ Most install paths bring it in automatically:
22
+
23
+ | Install method | Peer installed |
24
+ | --- | --- |
25
+ | `npx -y @get-technology-inc/jamf-docs-mcp-server` | Yes |
26
+ | `npm install` (npm 7+, default settings) | Yes |
27
+ | `pnpm add` (pnpm 10) | Yes |
28
+ | `npm install --legacy-peer-deps` | **No** |
29
+ | Yarn 1 (classic) | **No** |
30
+
31
+ If you use one of the last two — or if you are vendoring the package — install
32
+ the SDK alongside it:
33
+
34
+ ```bash
35
+ npm install @get-technology-inc/jamf-docs-mcp-server @modelcontextprotocol/server@^2
36
+ ```
37
+
38
+ **Why it is a peer dependency, not a regular one.** This package hands
39
+ `McpServer` instances to its consumers, and those consumers pass them to
40
+ `createMcpHandler` from their own SDK copy. If the two resolve to *different*
41
+ copies of the SDK, an instance built by one module's `Protocol` is inspected by
42
+ another's, and every 2026-07-28 request fails with
43
+ `Cannot read properties of undefined (reading 'includes')` — an HTTP 500 with
44
+ no useful diagnostic. Declaring the SDK as a peer states the single-copy
45
+ requirement instead of relying on the consumer's tree happening to hoist it;
46
+ listing it under `dependencies` as well would reintroduce exactly the duplicate
47
+ it exists to prevent.
48
+
49
+ Node.js 20 or newer is required.
50
+
13
51
  ## Quick Start
14
52
 
15
53
  ### Claude Desktop
@@ -243,6 +281,41 @@ Instructs the AI to compare table-of-contents structures and key articles betwee
243
281
  - **Search Suggestions**: Receive helpful suggestions when a search returns no results
244
282
  - **Token Management**: All tools accept a `maxTokens` parameter (100–20000, default 5000) to control response size
245
283
 
284
+ ## MCP Apps (interactive viewer)
285
+
286
+ Hosts that negotiate the MCP Apps extension (`io.modelcontextprotocol/ui`) render
287
+ `jamf_docs_search`, `jamf_docs_get_toc` and `jamf_docs_get_article` results as an
288
+ interactive viewer instead of plain markdown: search hits are clickable through to
289
+ the article, TOC entries open in place, and articles carry section navigation and a
290
+ back stack. All three tools reference one self-contained `ui://` resource, whose
291
+ URI carries a hash of the bundle it names (`ui://jamf-docs/app-<hash>.html`).
292
+ Hosts that do not negotiate the extension ignore the metadata and get exactly the
293
+ markdown they always did.
294
+
295
+ The resource is served with a 24-hour public cache hint, which is safe precisely
296
+ because the URI is content-addressed: a given URI names one exact bundle forever,
297
+ and a new bundle arrives under a new URI rather than replacing an old one. Hosts
298
+ pick up a changed viewer on their next `tools/list` refresh.
299
+
300
+ > [!WARNING]
301
+ > **The MCP Apps viewer is broken in 4.0.0 — upgrade past it.** The build step that
302
+ > inlines the UI bundle into the HTML document used a replacement string, so every
303
+ > `$` pattern in the minified JavaScript was expanded instead of copied. The
304
+ > document that shipped is not parseable JavaScript, and a host that renders it gets
305
+ > `SyntaxError: missing ) after argument list` and a blank panel. Nothing else in
306
+ > 4.0.0 is affected — tools, resources and prompts return the same results either
307
+ > way, since a host that cannot render the app falls back to the markdown. Fixed in
308
+ > 4.0.1.
309
+ >
310
+ > **4.0.1 alone did not reach every host.** Up to and including 4.0.1 the resource
311
+ > lived at a fixed `ui://jamf-docs/app.html` with a 24-hour public cache hint, so a
312
+ > host that had read the broken 4.0.0 bundle kept serving it from cache for up to a
313
+ > day after the server was upgraded — the corrected bundle was published under the
314
+ > same URI and never fetched. Upgrading past 4.0.1 fixes the distribution as well as
315
+ > the bundle: the URI now changes with the content, so a host holding the 4.0.0 copy
316
+ > simply stops asking for it. No manual cache clearing is needed, and the remaining
317
+ > delay is the one-hour `tools/list` hint rather than 24 hours.
318
+
246
319
  ## HTTP/SSE Transport Mode
247
320
 
248
321
  In addition to the default `stdio` transport, the server supports an HTTP transport for use as a remote or shared MCP endpoint.