@get-technology-inc/jamf-docs-mcp-server 1.5.0 → 2.0.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.
Files changed (229) hide show
  1. package/dist/{completions.d.ts → core/completions.d.ts} +3 -1
  2. package/dist/core/completions.d.ts.map +1 -0
  3. package/dist/{completions.js → core/completions.js} +5 -4
  4. package/dist/core/completions.js.map +1 -0
  5. package/dist/core/config.d.ts +56 -0
  6. package/dist/core/config.d.ts.map +1 -0
  7. package/dist/core/config.js +59 -0
  8. package/dist/core/config.js.map +1 -0
  9. package/dist/{constants.d.ts → core/constants.d.ts} +3 -19
  10. package/dist/core/constants.d.ts.map +1 -0
  11. package/dist/{constants.js → core/constants.js} +6 -86
  12. package/dist/core/constants.js.map +1 -0
  13. package/dist/core/create-server.d.ts +17 -0
  14. package/dist/core/create-server.d.ts.map +1 -0
  15. package/dist/core/create-server.js +70 -0
  16. package/dist/core/create-server.js.map +1 -0
  17. package/dist/core/http-client.d.ts +19 -0
  18. package/dist/core/http-client.d.ts.map +1 -0
  19. package/dist/core/http-client.js +62 -0
  20. package/dist/core/http-client.js.map +1 -0
  21. package/dist/core/index.d.ts +25 -0
  22. package/dist/core/index.d.ts.map +1 -0
  23. package/dist/core/index.js +29 -0
  24. package/dist/core/index.js.map +1 -0
  25. package/dist/core/prompts/compare-versions.d.ts.map +1 -0
  26. package/dist/core/prompts/compare-versions.js.map +1 -0
  27. package/dist/core/prompts/index.d.ts.map +1 -0
  28. package/dist/core/prompts/index.js.map +1 -0
  29. package/dist/core/prompts/setup-guide.d.ts.map +1 -0
  30. package/dist/core/prompts/setup-guide.js.map +1 -0
  31. package/dist/core/prompts/troubleshoot.d.ts.map +1 -0
  32. package/dist/core/prompts/troubleshoot.js.map +1 -0
  33. package/dist/{resources → core/resources}/index.d.ts +2 -1
  34. package/dist/core/resources/index.d.ts.map +1 -0
  35. package/dist/{resources → core/resources}/index.js +6 -7
  36. package/dist/core/resources/index.js.map +1 -0
  37. package/dist/core/schemas/index.d.ts.map +1 -0
  38. package/dist/core/schemas/index.js.map +1 -0
  39. package/dist/core/schemas/output.d.ts.map +1 -0
  40. package/dist/core/schemas/output.js.map +1 -0
  41. package/dist/core/services/cache.d.ts +16 -0
  42. package/dist/core/services/cache.d.ts.map +1 -0
  43. package/dist/core/services/cache.js +16 -0
  44. package/dist/core/services/cache.js.map +1 -0
  45. package/dist/{services → core/services}/glossary.d.ts +2 -1
  46. package/dist/core/services/glossary.d.ts.map +1 -0
  47. package/dist/{services → core/services}/glossary.js +10 -11
  48. package/dist/core/services/glossary.js.map +1 -0
  49. package/dist/core/services/interfaces.d.ts +94 -0
  50. package/dist/core/services/interfaces.d.ts.map +1 -0
  51. package/dist/core/services/interfaces.js +8 -0
  52. package/dist/core/services/interfaces.js.map +1 -0
  53. package/dist/core/services/logging.d.ts.map +1 -0
  54. package/dist/core/services/logging.js.map +1 -0
  55. package/dist/{services → core/services}/metadata.d.ts +8 -7
  56. package/dist/core/services/metadata.d.ts.map +1 -0
  57. package/dist/{services → core/services}/metadata.js +43 -39
  58. package/dist/core/services/metadata.js.map +1 -0
  59. package/dist/{services → core/services}/scraper.d.ts +14 -4
  60. package/dist/core/services/scraper.d.ts.map +1 -0
  61. package/dist/{services → core/services}/scraper.js +163 -65
  62. package/dist/core/services/scraper.js.map +1 -0
  63. package/dist/core/services/search-suggestions.d.ts.map +1 -0
  64. package/dist/core/services/search-suggestions.js.map +1 -0
  65. package/dist/{services → core/services}/tokenizer.d.ts +5 -0
  66. package/dist/core/services/tokenizer.d.ts.map +1 -0
  67. package/dist/{services → core/services}/tokenizer.js +30 -14
  68. package/dist/core/services/tokenizer.js.map +1 -0
  69. package/dist/{tools → core/tools}/batch-get-articles.d.ts +2 -1
  70. package/dist/core/tools/batch-get-articles.d.ts.map +1 -0
  71. package/dist/{tools → core/tools}/batch-get-articles.js +2 -2
  72. package/dist/core/tools/batch-get-articles.js.map +1 -0
  73. package/dist/{tools → core/tools}/get-article.d.ts +2 -1
  74. package/dist/core/tools/get-article.d.ts.map +1 -0
  75. package/dist/{tools → core/tools}/get-article.js +2 -2
  76. package/dist/core/tools/get-article.js.map +1 -0
  77. package/dist/core/tools/get-toc.d.ts +8 -0
  78. package/dist/core/tools/get-toc.d.ts.map +1 -0
  79. package/dist/{tools → core/tools}/get-toc.js +3 -3
  80. package/dist/core/tools/get-toc.js.map +1 -0
  81. package/dist/{tools → core/tools}/glossary-lookup.d.ts +2 -1
  82. package/dist/core/tools/glossary-lookup.d.ts.map +1 -0
  83. package/dist/{tools → core/tools}/glossary-lookup.js +2 -2
  84. package/dist/core/tools/glossary-lookup.js.map +1 -0
  85. package/dist/{tools → core/tools}/list-products.d.ts +2 -1
  86. package/dist/core/tools/list-products.d.ts.map +1 -0
  87. package/dist/{tools → core/tools}/list-products.js +2 -2
  88. package/dist/core/tools/list-products.js.map +1 -0
  89. package/dist/core/tools/search.d.ts +8 -0
  90. package/dist/core/tools/search.d.ts.map +1 -0
  91. package/dist/{tools → core/tools}/search.js +2 -2
  92. package/dist/core/tools/search.js.map +1 -0
  93. package/dist/core/types/context.d.ts +15 -0
  94. package/dist/core/types/context.d.ts.map +1 -0
  95. package/dist/core/types/context.js +8 -0
  96. package/dist/core/types/context.js.map +1 -0
  97. package/dist/core/types.d.ts.map +1 -0
  98. package/dist/core/types.js.map +1 -0
  99. package/dist/{utils → core/utils}/bundle.d.ts +5 -0
  100. package/dist/core/utils/bundle.d.ts.map +1 -0
  101. package/dist/{utils → core/utils}/bundle.js +29 -0
  102. package/dist/core/utils/bundle.js.map +1 -0
  103. package/dist/core/utils/concurrency.d.ts.map +1 -0
  104. package/dist/core/utils/concurrency.js.map +1 -0
  105. package/dist/core/utils/doc-type.d.ts.map +1 -0
  106. package/dist/core/utils/doc-type.js.map +1 -0
  107. package/dist/core/utils/progress.d.ts.map +1 -0
  108. package/dist/core/utils/progress.js.map +1 -0
  109. package/dist/core/utils/sanitize.d.ts.map +1 -0
  110. package/dist/core/utils/sanitize.js.map +1 -0
  111. package/dist/core/utils/url.d.ts.map +1 -0
  112. package/dist/core/utils/url.js.map +1 -0
  113. package/dist/index.d.ts +3 -3
  114. package/dist/index.js +26 -58
  115. package/dist/index.js.map +1 -1
  116. package/dist/{services → platforms/node}/cache.d.ts +17 -13
  117. package/dist/platforms/node/cache.d.ts.map +1 -0
  118. package/dist/{services → platforms/node}/cache.js +20 -18
  119. package/dist/platforms/node/cache.js.map +1 -0
  120. package/dist/platforms/node/config.d.ts +14 -0
  121. package/dist/platforms/node/config.d.ts.map +1 -0
  122. package/dist/platforms/node/config.js +99 -0
  123. package/dist/platforms/node/config.js.map +1 -0
  124. package/dist/platforms/node/index.d.ts +8 -0
  125. package/dist/platforms/node/index.d.ts.map +1 -0
  126. package/dist/platforms/node/index.js +8 -0
  127. package/dist/platforms/node/index.js.map +1 -0
  128. package/dist/platforms/node/logger.d.ts +12 -0
  129. package/dist/platforms/node/logger.d.ts.map +1 -0
  130. package/dist/platforms/node/logger.js +15 -0
  131. package/dist/platforms/node/logger.js.map +1 -0
  132. package/dist/platforms/node/metadata.d.ts +18 -0
  133. package/dist/platforms/node/metadata.d.ts.map +1 -0
  134. package/dist/platforms/node/metadata.js +35 -0
  135. package/dist/platforms/node/metadata.js.map +1 -0
  136. package/dist/transport/http.d.ts.map +1 -1
  137. package/dist/transport/http.js +3 -2
  138. package/dist/transport/http.js.map +1 -1
  139. package/dist/transport/index.js +1 -1
  140. package/dist/transport/index.js.map +1 -1
  141. package/package.json +22 -4
  142. package/dist/completions.d.ts.map +0 -1
  143. package/dist/completions.js.map +0 -1
  144. package/dist/constants.d.ts.map +0 -1
  145. package/dist/constants.js.map +0 -1
  146. package/dist/prompts/compare-versions.d.ts.map +0 -1
  147. package/dist/prompts/compare-versions.js.map +0 -1
  148. package/dist/prompts/index.d.ts.map +0 -1
  149. package/dist/prompts/index.js.map +0 -1
  150. package/dist/prompts/setup-guide.d.ts.map +0 -1
  151. package/dist/prompts/setup-guide.js.map +0 -1
  152. package/dist/prompts/troubleshoot.d.ts.map +0 -1
  153. package/dist/prompts/troubleshoot.js.map +0 -1
  154. package/dist/resources/index.d.ts.map +0 -1
  155. package/dist/resources/index.js.map +0 -1
  156. package/dist/schemas/index.d.ts.map +0 -1
  157. package/dist/schemas/index.js.map +0 -1
  158. package/dist/schemas/output.d.ts.map +0 -1
  159. package/dist/schemas/output.js.map +0 -1
  160. package/dist/services/cache.d.ts.map +0 -1
  161. package/dist/services/cache.js.map +0 -1
  162. package/dist/services/glossary.d.ts.map +0 -1
  163. package/dist/services/glossary.js.map +0 -1
  164. package/dist/services/logging.d.ts.map +0 -1
  165. package/dist/services/logging.js.map +0 -1
  166. package/dist/services/metadata.d.ts.map +0 -1
  167. package/dist/services/metadata.js.map +0 -1
  168. package/dist/services/scraper.d.ts.map +0 -1
  169. package/dist/services/scraper.js.map +0 -1
  170. package/dist/services/search-suggestions.d.ts.map +0 -1
  171. package/dist/services/search-suggestions.js.map +0 -1
  172. package/dist/services/tokenizer.d.ts.map +0 -1
  173. package/dist/services/tokenizer.js.map +0 -1
  174. package/dist/tools/batch-get-articles.d.ts.map +0 -1
  175. package/dist/tools/batch-get-articles.js.map +0 -1
  176. package/dist/tools/get-article.d.ts.map +0 -1
  177. package/dist/tools/get-article.js.map +0 -1
  178. package/dist/tools/get-toc.d.ts +0 -7
  179. package/dist/tools/get-toc.d.ts.map +0 -1
  180. package/dist/tools/get-toc.js.map +0 -1
  181. package/dist/tools/glossary-lookup.d.ts.map +0 -1
  182. package/dist/tools/glossary-lookup.js.map +0 -1
  183. package/dist/tools/list-products.d.ts.map +0 -1
  184. package/dist/tools/list-products.js.map +0 -1
  185. package/dist/tools/search.d.ts +0 -7
  186. package/dist/tools/search.d.ts.map +0 -1
  187. package/dist/tools/search.js.map +0 -1
  188. package/dist/types.d.ts.map +0 -1
  189. package/dist/types.js.map +0 -1
  190. package/dist/utils/bundle.d.ts.map +0 -1
  191. package/dist/utils/bundle.js.map +0 -1
  192. package/dist/utils/concurrency.d.ts.map +0 -1
  193. package/dist/utils/concurrency.js.map +0 -1
  194. package/dist/utils/doc-type.d.ts.map +0 -1
  195. package/dist/utils/doc-type.js.map +0 -1
  196. package/dist/utils/progress.d.ts.map +0 -1
  197. package/dist/utils/progress.js.map +0 -1
  198. package/dist/utils/sanitize.d.ts.map +0 -1
  199. package/dist/utils/sanitize.js.map +0 -1
  200. package/dist/utils/url.d.ts.map +0 -1
  201. package/dist/utils/url.js.map +0 -1
  202. /package/dist/{prompts → core/prompts}/compare-versions.d.ts +0 -0
  203. /package/dist/{prompts → core/prompts}/compare-versions.js +0 -0
  204. /package/dist/{prompts → core/prompts}/index.d.ts +0 -0
  205. /package/dist/{prompts → core/prompts}/index.js +0 -0
  206. /package/dist/{prompts → core/prompts}/setup-guide.d.ts +0 -0
  207. /package/dist/{prompts → core/prompts}/setup-guide.js +0 -0
  208. /package/dist/{prompts → core/prompts}/troubleshoot.d.ts +0 -0
  209. /package/dist/{prompts → core/prompts}/troubleshoot.js +0 -0
  210. /package/dist/{schemas → core/schemas}/index.d.ts +0 -0
  211. /package/dist/{schemas → core/schemas}/index.js +0 -0
  212. /package/dist/{schemas → core/schemas}/output.d.ts +0 -0
  213. /package/dist/{schemas → core/schemas}/output.js +0 -0
  214. /package/dist/{services → core/services}/logging.d.ts +0 -0
  215. /package/dist/{services → core/services}/logging.js +0 -0
  216. /package/dist/{services → core/services}/search-suggestions.d.ts +0 -0
  217. /package/dist/{services → core/services}/search-suggestions.js +0 -0
  218. /package/dist/{types.d.ts → core/types.d.ts} +0 -0
  219. /package/dist/{types.js → core/types.js} +0 -0
  220. /package/dist/{utils → core/utils}/concurrency.d.ts +0 -0
  221. /package/dist/{utils → core/utils}/concurrency.js +0 -0
  222. /package/dist/{utils → core/utils}/doc-type.d.ts +0 -0
  223. /package/dist/{utils → core/utils}/doc-type.js +0 -0
  224. /package/dist/{utils → core/utils}/progress.d.ts +0 -0
  225. /package/dist/{utils → core/utils}/progress.js +0 -0
  226. /package/dist/{utils → core/utils}/sanitize.d.ts +0 -0
  227. /package/dist/{utils → core/utils}/sanitize.js +0 -0
  228. /package/dist/{utils → core/utils}/url.d.ts +0 -0
  229. /package/dist/{utils → core/utils}/url.js +0 -0
@@ -1,5 +1,7 @@
1
1
  /**
2
2
  * Completion utilities for argument autocompletion
3
+ *
4
+ * Uses only static data from constants — no runtime context needed.
3
5
  */
4
6
  /**
5
7
  * Two-tier matching: prefix matches first, then substring matches.
@@ -10,5 +12,5 @@ export declare function completeTopic(value: string | undefined): string[];
10
12
  export declare function completeLanguage(value: string | undefined): string[];
11
13
  export declare function completeVersion(value: string | undefined, context?: {
12
14
  arguments?: Record<string, string>;
13
- }): Promise<string[]>;
15
+ }): string[];
14
16
  //# sourceMappingURL=completions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"completions.d.ts","sourceRoot":"","sources":["../../src/core/completions.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAOvE;AAED,wBAAgB,eAAe,CAC7B,KAAK,EAAE,MAAM,GAAG,SAAS,GACxB,MAAM,EAAE,CAEV;AAED,wBAAgB,aAAa,CAC3B,KAAK,EAAE,MAAM,GAAG,SAAS,GACxB,MAAM,EAAE,CAEV;AAED,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,MAAM,GAAG,SAAS,GACxB,MAAM,EAAE,CAEV;AAED,wBAAgB,eAAe,CAC7B,KAAK,EAAE,MAAM,GAAG,SAAS,EACzB,OAAO,CAAC,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,GAC/C,MAAM,EAAE,CAOV"}
@@ -1,8 +1,9 @@
1
1
  /**
2
2
  * Completion utilities for argument autocompletion
3
+ *
4
+ * Uses only static data from constants — no runtime context needed.
3
5
  */
4
6
  import { JAMF_PRODUCTS, PRODUCT_IDS, TOPIC_IDS, SUPPORTED_LOCALE_IDS } from './constants.js';
5
- import { getAvailableVersions } from './services/metadata.js';
6
7
  /**
7
8
  * Two-tier matching: prefix matches first, then substring matches.
8
9
  */
@@ -23,12 +24,12 @@ export function completeTopic(value) {
23
24
  export function completeLanguage(value) {
24
25
  return filterMatches(SUPPORTED_LOCALE_IDS, value ?? '');
25
26
  }
26
- export async function completeVersion(value, context) {
27
+ export function completeVersion(value, context) {
27
28
  const product = context?.arguments?.product;
28
29
  if (product === undefined || !(product in JAMF_PRODUCTS)) {
29
30
  return [];
30
31
  }
31
- const versions = await getAvailableVersions(product);
32
- return filterMatches(versions, value ?? '');
32
+ const { versions } = JAMF_PRODUCTS[product];
33
+ return filterMatches([...versions], value ?? '');
33
34
  }
34
35
  //# sourceMappingURL=completions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"completions.js","sourceRoot":"","sources":["../../src/core/completions.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,SAAS,EAAE,oBAAoB,EAAkB,MAAM,gBAAgB,CAAC;AAE7G;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,MAAgB,EAAE,KAAa;IAC3D,IAAI,KAAK,KAAK,EAAE,EAAE,CAAC;QACjB,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;IACvD,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;IAChF,OAAO,CAAC,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC;AACnC,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,KAAyB;IAEzB,OAAO,aAAa,CAAC,WAAW,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,aAAa,CAC3B,KAAyB;IAEzB,OAAO,aAAa,CAAC,SAAS,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,KAAyB;IAEzB,OAAO,aAAa,CAAC,oBAAoB,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;AAC1D,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,KAAyB,EACzB,OAAgD;IAEhD,MAAM,OAAO,GAAG,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC;IAC5C,IAAI,OAAO,KAAK,SAAS,IAAI,CAAC,CAAC,OAAO,IAAI,aAAa,CAAC,EAAE,CAAC;QACzD,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,EAAE,QAAQ,EAAE,GAAG,aAAa,CAAC,OAAoB,CAAC,CAAC;IACzD,OAAO,aAAa,CAAC,CAAC,GAAG,QAAQ,CAAC,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;AACnD,CAAC"}
@@ -0,0 +1,56 @@
1
+ /**
2
+ * Core configuration types and defaults
3
+ *
4
+ * Platform-agnostic configuration that can be used across
5
+ * different runtimes without Node.js-specific dependencies.
6
+ */
7
+ /**
8
+ * Cache TTL configuration (in milliseconds)
9
+ */
10
+ export interface CacheTtlConfig {
11
+ search: number;
12
+ article: number;
13
+ products: number;
14
+ toc: number;
15
+ }
16
+ /**
17
+ * HTTP request configuration
18
+ */
19
+ export interface RequestConfig {
20
+ timeout: number;
21
+ maxRetries: number;
22
+ retryDelay: number;
23
+ rateLimitDelay: number;
24
+ userAgent: string;
25
+ }
26
+ /**
27
+ * Cache storage configuration
28
+ */
29
+ export interface CacheConfig {
30
+ maxEntries: number;
31
+ dir?: string;
32
+ }
33
+ /**
34
+ * CORS configuration for HTTP transport
35
+ */
36
+ export interface CorsConfig {
37
+ allowedOrigins: string[];
38
+ }
39
+ /**
40
+ * Combined server configuration
41
+ */
42
+ export interface ServerConfig {
43
+ version: string;
44
+ cacheTtl: CacheTtlConfig;
45
+ request: RequestConfig;
46
+ cache: CacheConfig;
47
+ cors?: CorsConfig;
48
+ }
49
+ /**
50
+ * Create a ServerConfig with sensible defaults, allowing partial overrides.
51
+ *
52
+ * @param overrides - Partial config to merge over defaults
53
+ * @returns Complete ServerConfig
54
+ */
55
+ export declare function createDefaultConfig(overrides?: Partial<ServerConfig>): ServerConfig;
56
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,cAAc,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,cAAc,CAAC;IACzB,OAAO,EAAE,aAAa,CAAC;IACvB,KAAK,EAAE,WAAW,CAAC;IACnB,IAAI,CAAC,EAAE,UAAU,CAAC;CACnB;AAMD;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,YAAY,CA8CnF"}
@@ -0,0 +1,59 @@
1
+ /**
2
+ * Core configuration types and defaults
3
+ *
4
+ * Platform-agnostic configuration that can be used across
5
+ * different runtimes without Node.js-specific dependencies.
6
+ */
7
+ // ============================================================================
8
+ // Default Configuration
9
+ // ============================================================================
10
+ /**
11
+ * Create a ServerConfig with sensible defaults, allowing partial overrides.
12
+ *
13
+ * @param overrides - Partial config to merge over defaults
14
+ * @returns Complete ServerConfig
15
+ */
16
+ export function createDefaultConfig(overrides) {
17
+ const defaults = {
18
+ version: '1.0.0',
19
+ cacheTtl: {
20
+ search: 30 * 60 * 1000, // 30 minutes
21
+ article: 24 * 60 * 60 * 1000, // 24 hours
22
+ products: 7 * 24 * 60 * 60 * 1000, // 7 days
23
+ toc: 24 * 60 * 60 * 1000, // 24 hours
24
+ },
25
+ request: {
26
+ timeout: 15000,
27
+ maxRetries: 3,
28
+ retryDelay: 1000,
29
+ rateLimitDelay: 500,
30
+ userAgent: 'JamfDocsMCP/1.0 (https://github.com/GET-Technology-Inc/jamf-docs-mcp-server)',
31
+ },
32
+ cache: {
33
+ maxEntries: 500,
34
+ },
35
+ };
36
+ if (overrides === undefined) {
37
+ return defaults;
38
+ }
39
+ const merged = {
40
+ version: overrides.version ?? defaults.version,
41
+ cacheTtl: {
42
+ ...defaults.cacheTtl,
43
+ ...overrides.cacheTtl,
44
+ },
45
+ request: {
46
+ ...defaults.request,
47
+ ...overrides.request,
48
+ },
49
+ cache: {
50
+ ...defaults.cache,
51
+ ...overrides.cache,
52
+ },
53
+ };
54
+ if (overrides.cors !== undefined) {
55
+ merged.cors = overrides.cors;
56
+ }
57
+ return merged;
58
+ }
59
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAqDH,+EAA+E;AAC/E,wBAAwB;AACxB,+EAA+E;AAE/E;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,SAAiC;IACnE,MAAM,QAAQ,GAAiB;QAC7B,OAAO,EAAE,OAAO;QAChB,QAAQ,EAAE;YACR,MAAM,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,EAAW,aAAa;YAC9C,OAAO,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,EAAK,WAAW;YAC5C,QAAQ,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,SAAS;YAC5C,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,EAAS,WAAW;SAC7C;QACD,OAAO,EAAE;YACP,OAAO,EAAE,KAAK;YACd,UAAU,EAAE,CAAC;YACb,UAAU,EAAE,IAAI;YAChB,cAAc,EAAE,GAAG;YACnB,SAAS,EAAE,8EAA8E;SAC1F;QACD,KAAK,EAAE;YACL,UAAU,EAAE,GAAG;SAChB;KACF,CAAC;IAEF,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,MAAM,MAAM,GAAiB;QAC3B,OAAO,EAAE,SAAS,CAAC,OAAO,IAAI,QAAQ,CAAC,OAAO;QAC9C,QAAQ,EAAE;YACR,GAAG,QAAQ,CAAC,QAAQ;YACpB,GAAG,SAAS,CAAC,QAAQ;SACtB;QACD,OAAO,EAAE;YACP,GAAG,QAAQ,CAAC,OAAO;YACnB,GAAG,SAAS,CAAC,OAAO;SACrB;QACD,KAAK,EAAE;YACL,GAAG,QAAQ,CAAC,KAAK;YACjB,GAAG,SAAS,CAAC,KAAK;SACnB;KACF,CAAC;IAEF,IAAI,SAAS,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QACjC,MAAM,CAAC,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC;IAC/B,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -1,12 +1,11 @@
1
1
  /**
2
2
  * Constants for Jamf Docs MCP Server
3
3
  *
4
- * Note: Jamf documentation has moved from docs.jamf.com to learn.jamf.com
5
- * The new URL structure is: learn.jamf.com/{locale}/bundle/{product}-documentation/page/{page}.html
4
+ * Platform-agnostic static constants. No Node.js built-in imports,
5
+ * no process.env access. Runtime configuration is handled by
6
+ * src/core/config.ts and src/platforms/node/config.ts.
6
7
  */
7
- export declare function getEnvNumber(key: string, defaultValue: number, min?: number, max?: number): number;
8
8
  export declare const SERVER_ICON = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAiUlEQVR4nGNgGAU4QEpKxX9qYpItpwSA9N+58wyOSXYENR0AYw+IA9AdQr4DehgQmEgHYIsGujuA7IRIqQNwOYp8B1ABUOQAOat4svDwcQA1wNB2ACVBPzwcQA0wtB0w4NlwwB1ADTC0HUBu1hs+DqAGGNoOAAbxCVLx8HIANQBZvaMB65qNKAAA5fafYXNsHh0AAAAASUVORK5CYII=";
9
- export declare const SERVER_VERSION: string;
10
9
  export declare const DOCS_BASE_URL = "https://learn.jamf.com";
11
10
  export declare const DOCS_API_URL = "https://learn-be.jamf.com";
12
11
  export declare const DEFAULT_LOCALE = "en-US";
@@ -177,21 +176,6 @@ export declare enum OutputMode {
177
176
  FULL = "full",
178
177
  COMPACT = "compact"
179
178
  }
180
- export declare const CACHE_TTL: {
181
- readonly SEARCH_RESULTS: number;
182
- readonly ARTICLE_CONTENT: number;
183
- readonly PRODUCT_LIST: number;
184
- readonly TOC: number;
185
- };
186
- export declare const CACHE_MAX_ENTRIES: number;
187
- export declare const CACHE_DIR: string;
188
- export declare const REQUEST_CONFIG: {
189
- readonly TIMEOUT: number;
190
- readonly MAX_RETRIES: number;
191
- readonly RETRY_DELAY: number;
192
- readonly RATE_LIMIT_DELAY: number;
193
- readonly USER_AGENT: string;
194
- };
195
179
  export declare const CONTENT_LIMITS: {
196
180
  readonly MAX_SEARCH_RESULTS: 50;
197
181
  readonly DEFAULT_SEARCH_RESULTS: 10;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/core/constants.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,eAAO,MAAM,WAAW,+RAA+R,CAAC;AAGxT,eAAO,MAAM,aAAa,2BAA2B,CAAC;AACtD,eAAO,MAAM,YAAY,8BAA8B,CAAC;AAGxD,eAAO,MAAM,cAAc,UAAU,CAAC;AAEtC,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;CASpB,CAAC;AAEX,MAAM,MAAM,QAAQ,GAAG,MAAM,OAAO,iBAAiB,CAAC;AACtD,eAAO,MAAM,oBAAoB,EAAqC,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;AAE5F;;GAEG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAElF;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAExE;AAGD,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyHhB,CAAC;AAEX,MAAM,MAAM,SAAS,GAAG,MAAM,OAAO,aAAa,CAAC;AAGnD,oBAAY,cAAc;IACxB,QAAQ,aAAa;IACrB,IAAI,SAAS;CACd;AAGD,oBAAY,UAAU;IACpB,IAAI,SAAS;IACb,OAAO,YAAY;CACpB;AAGD,eAAO,MAAM,cAAc;;;;;;;CAOjB,CAAC;AAGX,eAAO,MAAM,YAAY;;;;;;CAMf,CAAC;AAGX,eAAO,MAAM,iBAAiB;;;;CAIpB,CAAC;AAGX,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkMd,CAAC;AAEX,MAAM,MAAM,OAAO,GAAG,MAAM,OAAO,WAAW,CAAC;AAI/C,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+BZ,CAAC;AAGX,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAE3B,CAAC;AAG/B,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAE1B,CAAC;AAE/B,MAAM,MAAM,SAAS,GAAG,MAAM,OAAO,SAAS,CAAC;AAG/C,eAAO,MAAM,WAAW,EAAiC,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;AAC/E,eAAO,MAAM,SAAS,EAA+B,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;AAC3E,eAAO,MAAM,YAAY,EAA6B,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;AAG5E,eAAO,MAAM,SAAS;;;;;;;CAcZ,CAAC"}
@@ -1,44 +1,12 @@
1
1
  /**
2
2
  * Constants for Jamf Docs MCP Server
3
3
  *
4
- * Note: Jamf documentation has moved from docs.jamf.com to learn.jamf.com
5
- * The new URL structure is: learn.jamf.com/{locale}/bundle/{product}-documentation/page/{page}.html
4
+ * Platform-agnostic static constants. No Node.js built-in imports,
5
+ * no process.env access. Runtime configuration is handled by
6
+ * src/core/config.ts and src/platforms/node/config.ts.
6
7
  */
7
- import * as path from 'path';
8
- import { createRequire } from 'module';
9
- import { createLogger } from './services/logging.js';
10
- const log = createLogger('config');
11
- // Environment variable helpers
12
- export function getEnvNumber(key, defaultValue, min, max) {
13
- const value = process.env[key];
14
- if (value === undefined) {
15
- return defaultValue;
16
- }
17
- const parsed = parseInt(value, 10);
18
- if (isNaN(parsed)) {
19
- return defaultValue;
20
- }
21
- if (min !== undefined && parsed < min) {
22
- log.warning(`${key}=${parsed} is below minimum ${min}. Using default ${defaultValue}.`);
23
- return defaultValue;
24
- }
25
- if (max !== undefined && parsed > max) {
26
- log.warning(`${key}=${parsed} exceeds maximum ${max}. Using default ${defaultValue}.`);
27
- return defaultValue;
28
- }
29
- return parsed;
30
- }
31
- function getEnvString(key, defaultValue) {
32
- const value = process.env[key] ?? defaultValue;
33
- // Strip CRLF characters to prevent HTTP header injection
34
- return value.replace(/[\r\n]/g, '');
35
- }
36
8
  // Server icon (32x32 PNG, document theme, base64 data URI)
37
9
  export const SERVER_ICON = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAiUlEQVR4nGNgGAU4QEpKxX9qYpItpwSA9N+58wyOSXYENR0AYw+IA9AdQr4DehgQmEgHYIsGujuA7IRIqQNwOYp8B1ABUOQAOat4svDwcQA1wNB2ACVBPzwcQA0wtB0w4NlwwB1ADTC0HUBu1hs+DqAGGNoOAAbxCVLx8HIANQBZvaMB65qNKAAA5fafYXNsHh0AAAAASUVORK5CYII=';
38
- // Server metadata (auto-read from package.json)
39
- const require = createRequire(import.meta.url);
40
- const pkg = require('../package.json');
41
- export const SERVER_VERSION = pkg.version;
42
10
  // Base URLs
43
11
  export const DOCS_BASE_URL = 'https://learn.jamf.com';
44
12
  export const DOCS_API_URL = 'https://learn-be.jamf.com';
@@ -202,59 +170,11 @@ export var OutputMode;
202
170
  OutputMode["FULL"] = "full";
203
171
  OutputMode["COMPACT"] = "compact";
204
172
  })(OutputMode || (OutputMode = {}));
205
- // Cache settings (in milliseconds) - configurable via environment variables
206
- // Range: 1 minute to 30 days
207
- const CACHE_TTL_MIN = 60_000;
208
- const CACHE_TTL_MAX = 30 * 24 * 60 * 60 * 1000;
209
- export const CACHE_TTL = {
210
- SEARCH_RESULTS: getEnvNumber('CACHE_TTL_SEARCH', 30 * 60 * 1000, CACHE_TTL_MIN, CACHE_TTL_MAX),
211
- ARTICLE_CONTENT: getEnvNumber('CACHE_TTL_ARTICLE', 24 * 60 * 60 * 1000, CACHE_TTL_MIN, CACHE_TTL_MAX),
212
- PRODUCT_LIST: getEnvNumber('CACHE_TTL_PRODUCTS', 7 * 24 * 60 * 60 * 1000, CACHE_TTL_MIN, CACHE_TTL_MAX),
213
- TOC: getEnvNumber('CACHE_TTL_TOC', 24 * 60 * 60 * 1000, CACHE_TTL_MIN, CACHE_TTL_MAX)
214
- };
215
- // Cache memory limits
216
- export const CACHE_MAX_ENTRIES = getEnvNumber('CACHE_MAX_ENTRIES', 500, 10, 10000);
217
- // Cache directory - configurable via environment variable with path traversal protection
218
- const DEFAULT_CACHE_DIR = '.cache';
219
- // System-sensitive directory prefixes that should not be used as cache directories
220
- const SENSITIVE_DIR_PREFIXES = ['/etc', '/usr', '/var', '/sys', '/proc', '/dev', '/sbin', '/bin'];
221
- function getValidatedCacheDir() {
222
- const raw = getEnvString('CACHE_DIR', DEFAULT_CACHE_DIR);
223
- const resolved = path.resolve(raw);
224
- const cwd = process.cwd();
225
- if (path.isAbsolute(raw)) {
226
- // Reject absolute paths pointing to system-sensitive directories
227
- const normalizedResolved = resolved.toLowerCase();
228
- for (const prefix of SENSITIVE_DIR_PREFIXES) {
229
- if (normalizedResolved === prefix || normalizedResolved.startsWith(`${prefix}/`)) {
230
- log.warning(`CACHE_DIR "${raw}" points to a sensitive system directory. Using default "${DEFAULT_CACHE_DIR}".`);
231
- return DEFAULT_CACHE_DIR;
232
- }
233
- }
234
- }
235
- else {
236
- // Relative paths must resolve within cwd
237
- if (!resolved.startsWith(cwd)) {
238
- log.warning(`CACHE_DIR "${raw}" resolves outside project directory. Using default "${DEFAULT_CACHE_DIR}".`);
239
- return DEFAULT_CACHE_DIR;
240
- }
241
- }
242
- return raw;
243
- }
244
- export const CACHE_DIR = getValidatedCacheDir();
245
- // Request settings - configurable via environment variables
246
- export const REQUEST_CONFIG = {
247
- TIMEOUT: getEnvNumber('REQUEST_TIMEOUT', 15000, 1000, 60000), // 15s (1s-60s)
248
- MAX_RETRIES: getEnvNumber('MAX_RETRIES', 3, 0, 10), // 3 (0-10)
249
- RETRY_DELAY: getEnvNumber('RETRY_DELAY', 1000, 100, 30000), // 1s (100ms-30s)
250
- RATE_LIMIT_DELAY: getEnvNumber('RATE_LIMIT_DELAY', 500, 0, 10000), // 500ms (0-10s)
251
- USER_AGENT: getEnvString('USER_AGENT', 'JamfDocsMCP/1.0 (https://github.com/GET-Technology-Inc/jamf-docs-mcp-server)')
252
- };
253
173
  // Content limits
254
174
  export const CONTENT_LIMITS = {
255
175
  MAX_SEARCH_RESULTS: 50,
256
176
  DEFAULT_SEARCH_RESULTS: 10,
257
- FILTER_OVERFETCH_MULTIPLIER: 3, // fetch when client-side filters need post-filtering
177
+ FILTER_OVERFETCH_MULTIPLIER: 3, // fetch 3x when client-side filters need post-filtering
258
178
  FILTER_OVERFETCH_CAP: 150, // absolute cap on over-fetched results
259
179
  MAX_CONTENT_LENGTH: 100000, // 100KB
260
180
  MAX_SNIPPET_LENGTH: 500
@@ -487,9 +407,9 @@ export const DOC_TYPES = {
487
407
  labelKey: 'content-gettingstarted',
488
408
  },
489
409
  };
490
- // Forward mapping: docType enum value API label key
410
+ // Forward mapping: docType enum value -> API label key
491
411
  export const DOC_TYPE_LABEL_MAP = Object.fromEntries(Object.entries(DOC_TYPES).map(([id, dt]) => [id, dt.labelKey]));
492
- // Reverse mapping: API label key docType enum value
412
+ // Reverse mapping: API label key -> docType enum value
493
413
  export const LABEL_TO_DOC_TYPE = Object.fromEntries(Object.entries(DOC_TYPES).map(([id, dt]) => [dt.labelKey, id]));
494
414
  // Derived ID arrays (shared by schemas, completions, etc.)
495
415
  export const PRODUCT_IDS = Object.keys(JAMF_PRODUCTS);
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/core/constants.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Factory function to create and configure a fully-registered MCP server.
3
+ *
4
+ * This is runtime-agnostic: it accepts a ServerContext (already wired to
5
+ * platform-specific cache, logger, and metadata implementations) and
6
+ * returns a ready-to-connect McpServer.
7
+ */
8
+ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
9
+ import type { ServerContext } from './types/context.js';
10
+ /**
11
+ * Create a fully-configured MCP server with all tools, resources, and prompts.
12
+ *
13
+ * @param ctx - Platform-specific server context (cache, metadata, logger, config)
14
+ * @returns An McpServer ready to be connected to a transport
15
+ */
16
+ export declare function createMcpServer(ctx: ServerContext): McpServer;
17
+ //# sourceMappingURL=create-server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-server.d.ts","sourceRoot":"","sources":["../../src/core/create-server.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAkCxD;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,aAAa,GAAG,SAAS,CAgC7D"}
@@ -0,0 +1,70 @@
1
+ /**
2
+ * Factory function to create and configure a fully-registered MCP server.
3
+ *
4
+ * This is runtime-agnostic: it accepts a ServerContext (already wired to
5
+ * platform-specific cache, logger, and metadata implementations) and
6
+ * returns a ready-to-connect McpServer.
7
+ */
8
+ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
9
+ import { SERVER_ICON } from './constants.js';
10
+ import { registerListProductsTool } from './tools/list-products.js';
11
+ import { registerSearchTool } from './tools/search.js';
12
+ import { registerGetArticleTool } from './tools/get-article.js';
13
+ import { registerGetTocTool } from './tools/get-toc.js';
14
+ import { registerGlossaryLookupTool } from './tools/glossary-lookup.js';
15
+ import { registerBatchGetArticlesTool } from './tools/batch-get-articles.js';
16
+ import { registerResources } from './resources/index.js';
17
+ import { registerPrompts } from './prompts/index.js';
18
+ const SERVER_INSTRUCTIONS = `This server provides access to Jamf official documentation (learn.jamf.com) for Jamf Pro, Jamf School, Jamf Connect, and Jamf Protect.
19
+
20
+ ## Tool Usage Order
21
+ 1. Use jamf_docs_list_products to discover available products and versions.
22
+ 2. Use jamf_docs_search to find relevant articles by keyword. Always search before fetching a full article.
23
+ 3. Use jamf_docs_get_article to retrieve full content of a specific article found via search.
24
+ 4. Use jamf_docs_get_toc to browse the table of contents for a product.
25
+ 5. Use jamf_docs_glossary_lookup to quickly look up Jamf terminology and definitions.
26
+
27
+ ## Output Modes
28
+ - Use outputMode: "compact" when browsing or listing results to save tokens.
29
+ - Use outputMode: "full" when reading a specific article in detail.
30
+
31
+ ## Token Management
32
+ - Use the maxTokens parameter to control response size (default: 5000, max: 20000).
33
+ - Start with a lower maxTokens value and increase only when more detail is needed.
34
+ - Use summaryOnly: true on jamf_docs_get_article to get an article outline before fetching full content.
35
+
36
+ ## Product Filtering
37
+ - When the target Jamf product is known, filter by product ID to narrow results: jamf-pro, jamf-school, jamf-connect, jamf-protect.
38
+ - Combine product and topic filters on jamf_docs_search for the most relevant results.`;
39
+ /**
40
+ * Create a fully-configured MCP server with all tools, resources, and prompts.
41
+ *
42
+ * @param ctx - Platform-specific server context (cache, metadata, logger, config)
43
+ * @returns An McpServer ready to be connected to a transport
44
+ */
45
+ export function createMcpServer(ctx) {
46
+ const server = new McpServer({
47
+ name: 'jamf-docs-mcp-server',
48
+ version: ctx.config.version,
49
+ icons: [{ src: SERVER_ICON, mimeType: 'image/png', sizes: ['32x32'] }],
50
+ }, {
51
+ instructions: SERVER_INSTRUCTIONS,
52
+ capabilities: {
53
+ logging: {},
54
+ },
55
+ });
56
+ ctx.logger.setServer(server);
57
+ // Register all tools
58
+ registerListProductsTool(server, ctx);
59
+ registerSearchTool(server, ctx);
60
+ registerGetArticleTool(server, ctx);
61
+ registerGetTocTool(server, ctx);
62
+ registerGlossaryLookupTool(server, ctx);
63
+ registerBatchGetArticlesTool(server, ctx);
64
+ // Register resources
65
+ registerResources(server, ctx);
66
+ // Register prompts
67
+ registerPrompts(server);
68
+ return server;
69
+ }
70
+ //# sourceMappingURL=create-server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-server.js","sourceRoot":"","sources":["../../src/core/create-server.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,EAAE,4BAA4B,EAAE,MAAM,+BAA+B,CAAC;AAC7E,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,MAAM,mBAAmB,GAAG;;;;;;;;;;;;;;;;;;;;uFAoB2D,CAAC;AAExF;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,GAAkB;IAChD,MAAM,MAAM,GAAG,IAAI,SAAS,CAC1B;QACE,IAAI,EAAE,sBAAsB;QAC5B,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,OAAO;QAC3B,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;KACvE,EACD;QACE,YAAY,EAAE,mBAAmB;QACjC,YAAY,EAAE;YACZ,OAAO,EAAE,EAAE;SACZ;KACF,CACF,CAAC;IAEF,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAE7B,qBAAqB;IACrB,wBAAwB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACtC,kBAAkB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAChC,sBAAsB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACpC,kBAAkB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAChC,0BAA0B,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACxC,4BAA4B,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAE1C,qBAAqB;IACrB,iBAAiB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAE/B,mBAAmB;IACnB,eAAe,CAAC,MAAM,CAAC,CAAC;IAExB,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Runtime-agnostic HTTP client using the global fetch API.
3
+ * No Node.js built-in imports — works in any environment with global fetch.
4
+ */
5
+ export declare class HttpError extends Error {
6
+ readonly status: number;
7
+ readonly statusText: string;
8
+ readonly url: string;
9
+ constructor(status: number, statusText: string, url: string);
10
+ get isRetryable(): boolean;
11
+ }
12
+ export interface HttpGetOptions {
13
+ headers?: Record<string, string>;
14
+ timeout?: number;
15
+ params?: Record<string, string>;
16
+ }
17
+ export declare function httpGetText(url: string, options?: HttpGetOptions): Promise<string>;
18
+ export declare function httpGetJson<T>(url: string, options?: HttpGetOptions): Promise<T>;
19
+ //# sourceMappingURL=http-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http-client.d.ts","sourceRoot":"","sources":["../../src/core/http-client.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,qBAAa,SAAU,SAAQ,KAAK;IAClC,SAAgB,MAAM,EAAE,MAAM,CAAC;IAC/B,SAAgB,UAAU,EAAE,MAAM,CAAC;IACnC,SAAgB,GAAG,EAAE,MAAM,CAAC;gBAEhB,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM;IAQ3D,IAAI,WAAW,IAAI,OAAO,CAEzB;CACF;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC;AAYD,wBAAsB,WAAW,CAC/B,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,MAAM,CAAC,CAiBjB;AAED,wBAAsB,WAAW,CAAC,CAAC,EACjC,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,CAAC,CAAC,CAsBZ"}
@@ -0,0 +1,62 @@
1
+ /**
2
+ * Runtime-agnostic HTTP client using the global fetch API.
3
+ * No Node.js built-in imports — works in any environment with global fetch.
4
+ */
5
+ export class HttpError extends Error {
6
+ status;
7
+ statusText;
8
+ url;
9
+ constructor(status, statusText, url) {
10
+ super(`HTTP ${status} ${statusText}: ${url}`);
11
+ this.name = 'HttpError';
12
+ this.status = status;
13
+ this.statusText = statusText;
14
+ this.url = url;
15
+ }
16
+ get isRetryable() {
17
+ return this.status === 429 || this.status >= 500;
18
+ }
19
+ }
20
+ const DEFAULT_TIMEOUT = 15000;
21
+ function appendQueryParams(url, params) {
22
+ const parsed = new URL(url);
23
+ for (const [key, value] of Object.entries(params)) {
24
+ parsed.searchParams.set(key, value);
25
+ }
26
+ return parsed.toString();
27
+ }
28
+ export async function httpGetText(url, options) {
29
+ const timeout = options?.timeout ?? DEFAULT_TIMEOUT;
30
+ const targetUrl = options?.params !== undefined
31
+ ? appendQueryParams(url, options.params)
32
+ : url;
33
+ const response = await fetch(targetUrl, {
34
+ method: 'GET',
35
+ ...(options?.headers !== undefined ? { headers: options.headers } : {}),
36
+ signal: AbortSignal.timeout(timeout),
37
+ });
38
+ if (!response.ok) {
39
+ throw new HttpError(response.status, response.statusText, targetUrl);
40
+ }
41
+ return await response.text();
42
+ }
43
+ export async function httpGetJson(url, options) {
44
+ const timeout = options?.timeout ?? DEFAULT_TIMEOUT;
45
+ const targetUrl = options?.params !== undefined
46
+ ? appendQueryParams(url, options.params)
47
+ : url;
48
+ const headers = {
49
+ Accept: 'application/json',
50
+ ...options?.headers,
51
+ };
52
+ const response = await fetch(targetUrl, {
53
+ method: 'GET',
54
+ headers,
55
+ signal: AbortSignal.timeout(timeout),
56
+ });
57
+ if (!response.ok) {
58
+ throw new HttpError(response.status, response.statusText, targetUrl);
59
+ }
60
+ return await response.json();
61
+ }
62
+ //# sourceMappingURL=http-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http-client.js","sourceRoot":"","sources":["../../src/core/http-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Core barrel file — public API for the runtime-agnostic core.
3
+ *
4
+ * Platform adapters (e.g. src/platforms/node/) and the entry-point
5
+ * (src/index.ts) should import from here rather than reaching into
6
+ * internal modules.
7
+ */
8
+ export { createMcpServer } from './create-server.js';
9
+ export type { CacheProvider, CacheStats, MetadataStore, ProductMetadata, TopicMetadata, TocEntry as TocEntryInterface, TocData, Logger, LoggerFactory, } from './services/interfaces.js';
10
+ export type { ServerConfig, CacheTtlConfig, RequestConfig, CacheConfig, CorsConfig, } from './config.js';
11
+ export { createDefaultConfig } from './config.js';
12
+ export type { ServerContext } from './types/context.js';
13
+ export { httpGetText, httpGetJson, HttpError } from './http-client.js';
14
+ export type { HttpGetOptions } from './http-client.js';
15
+ export { DOCS_BASE_URL, DOCS_API_URL, JAMF_PRODUCTS, JAMF_TOPICS, DOC_TYPES, DOC_TYPE_LABEL_MAP, LABEL_TO_DOC_TYPE, PRODUCT_IDS, TOPIC_IDS, DOC_TYPE_IDS, SELECTORS, SERVER_ICON, SUPPORTED_LOCALES, SUPPORTED_LOCALE_IDS, DEFAULT_LOCALE, ResponseFormat, OutputMode, CONTENT_LIMITS, TOKEN_CONFIG, PAGINATION_CONFIG, buildDocUrl, buildUrlPattern, } from './constants.js';
16
+ export type { ProductId, TopicId, DocTypeId, LocaleId, } from './constants.js';
17
+ export { registerSearchTool } from './tools/search.js';
18
+ export { registerGetArticleTool } from './tools/get-article.js';
19
+ export { registerListProductsTool } from './tools/list-products.js';
20
+ export { registerGetTocTool } from './tools/get-toc.js';
21
+ export { registerGlossaryLookupTool } from './tools/glossary-lookup.js';
22
+ export { registerBatchGetArticlesTool } from './tools/batch-get-articles.js';
23
+ export type { TokenInfo, PaginationInfo, ArticleSection, JamfProduct, ProductInfo, ProductListResponse, SearchParams, SearchResult, SearchResponse, FilterRelaxation, TruncatedContentInfo, GetArticleParams, ParsedArticle, ArticleResponse, GlossaryEntry, GlossaryLookupResult, GetTocParams, TocEntry, TocResponse, CacheEntry, CacheOptions, ToolResult, } from './types.js';
24
+ export { JamfDocsError, JamfDocsErrorCode, } from './types.js';
25
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAMrD,YAAY,EACV,aAAa,EACb,UAAU,EACV,aAAa,EACb,eAAe,EACf,aAAa,EACb,QAAQ,IAAI,iBAAiB,EAC7B,OAAO,EACP,MAAM,EACN,aAAa,GACd,MAAM,0BAA0B,CAAC;AAMlC,YAAY,EACV,YAAY,EACZ,cAAc,EACd,aAAa,EACb,WAAW,EACX,UAAU,GACX,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAGlD,YAAY,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAMxD,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACvE,YAAY,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAMvD,OAAO,EACL,aAAa,EACb,YAAY,EACZ,aAAa,EACb,WAAW,EACX,SAAS,EACT,kBAAkB,EAClB,iBAAiB,EACjB,WAAW,EACX,SAAS,EACT,YAAY,EACZ,SAAS,EACT,WAAW,EACX,iBAAiB,EACjB,oBAAoB,EACpB,cAAc,EACd,cAAc,EACd,UAAU,EACV,cAAc,EACd,YAAY,EACZ,iBAAiB,EACjB,WAAW,EACX,eAAe,GAChB,MAAM,gBAAgB,CAAC;AAExB,YAAY,EACV,SAAS,EACT,OAAO,EACP,SAAS,EACT,QAAQ,GACT,MAAM,gBAAgB,CAAC;AAMxB,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,EAAE,4BAA4B,EAAE,MAAM,+BAA+B,CAAC;AAM7E,YAAY,EACV,SAAS,EACT,cAAc,EACd,cAAc,EACd,WAAW,EACX,WAAW,EACX,mBAAmB,EACnB,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,gBAAgB,EAChB,oBAAoB,EACpB,gBAAgB,EAChB,aAAa,EACb,eAAe,EACf,aAAa,EACb,oBAAoB,EACpB,YAAY,EACZ,QAAQ,EACR,WAAW,EACX,UAAU,EACV,YAAY,EACZ,UAAU,GACX,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,aAAa,EACb,iBAAiB,GAClB,MAAM,YAAY,CAAC"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Core barrel file — public API for the runtime-agnostic core.
3
+ *
4
+ * Platform adapters (e.g. src/platforms/node/) and the entry-point
5
+ * (src/index.ts) should import from here rather than reaching into
6
+ * internal modules.
7
+ */
8
+ // Factory
9
+ export { createMcpServer } from './create-server.js';
10
+ export { createDefaultConfig } from './config.js';
11
+ // ============================================================================
12
+ // HTTP Client (runtime-agnostic, uses global fetch)
13
+ // ============================================================================
14
+ export { httpGetText, httpGetJson, HttpError } from './http-client.js';
15
+ // ============================================================================
16
+ // Constants (static, no runtime dependencies)
17
+ // ============================================================================
18
+ export { DOCS_BASE_URL, DOCS_API_URL, JAMF_PRODUCTS, JAMF_TOPICS, DOC_TYPES, DOC_TYPE_LABEL_MAP, LABEL_TO_DOC_TYPE, PRODUCT_IDS, TOPIC_IDS, DOC_TYPE_IDS, SELECTORS, SERVER_ICON, SUPPORTED_LOCALES, SUPPORTED_LOCALE_IDS, DEFAULT_LOCALE, ResponseFormat, OutputMode, CONTENT_LIMITS, TOKEN_CONFIG, PAGINATION_CONFIG, buildDocUrl, buildUrlPattern, } from './constants.js';
19
+ // ============================================================================
20
+ // Tool registration (for selective registration by platform adapters)
21
+ // ============================================================================
22
+ export { registerSearchTool } from './tools/search.js';
23
+ export { registerGetArticleTool } from './tools/get-article.js';
24
+ export { registerListProductsTool } from './tools/list-products.js';
25
+ export { registerGetTocTool } from './tools/get-toc.js';
26
+ export { registerGlossaryLookupTool } from './tools/glossary-lookup.js';
27
+ export { registerBatchGetArticlesTool } from './tools/batch-get-articles.js';
28
+ export { JamfDocsError, JamfDocsErrorCode, } from './types.js';
29
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,UAAU;AACV,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AA6BrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAKlD,+EAA+E;AAC/E,oDAAoD;AACpD,+EAA+E;AAE/E,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAGvE,+EAA+E;AAC/E,8CAA8C;AAC9C,+EAA+E;AAE/E,OAAO,EACL,aAAa,EACb,YAAY,EACZ,aAAa,EACb,WAAW,EACX,SAAS,EACT,kBAAkB,EAClB,iBAAiB,EACjB,WAAW,EACX,SAAS,EACT,YAAY,EACZ,SAAS,EACT,WAAW,EACX,iBAAiB,EACjB,oBAAoB,EACpB,cAAc,EACd,cAAc,EACd,UAAU,EACV,cAAc,EACd,YAAY,EACZ,iBAAiB,EACjB,WAAW,EACX,eAAe,GAChB,MAAM,gBAAgB,CAAC;AASxB,+EAA+E;AAC/E,sEAAsE;AACtE,+EAA+E;AAE/E,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,EAAE,4BAA4B,EAAE,MAAM,+BAA+B,CAAC;AA+B7E,OAAO,EACL,aAAa,EACb,iBAAiB,GAClB,MAAM,YAAY,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compare-versions.d.ts","sourceRoot":"","sources":["../../../src/core/prompts/compare-versions.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAKzE,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAyDrE"}