@get-technology-inc/jamf-docs-mcp-server 1.1.0 → 1.2.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/dist/completions.d.ts +13 -0
- package/dist/completions.d.ts.map +1 -0
- package/dist/completions.js +31 -0
- package/dist/completions.js.map +1 -0
- package/dist/constants.d.ts +119 -0
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +178 -13
- package/dist/constants.js.map +1 -1
- package/dist/index.js +43 -7
- package/dist/index.js.map +1 -1
- package/dist/prompts/compare-versions.d.ts +7 -0
- package/dist/prompts/compare-versions.d.ts.map +1 -0
- package/dist/prompts/compare-versions.js +56 -0
- package/dist/prompts/compare-versions.js.map +1 -0
- package/dist/prompts/index.d.ts +6 -0
- package/dist/prompts/index.d.ts.map +1 -0
- package/dist/prompts/index.js +12 -0
- package/dist/prompts/index.js.map +1 -0
- package/dist/prompts/setup-guide.d.ts +7 -0
- package/dist/prompts/setup-guide.d.ts.map +1 -0
- package/dist/prompts/setup-guide.js +53 -0
- package/dist/prompts/setup-guide.js.map +1 -0
- package/dist/prompts/troubleshoot.d.ts +7 -0
- package/dist/prompts/troubleshoot.d.ts.map +1 -0
- package/dist/prompts/troubleshoot.js +52 -0
- package/dist/prompts/troubleshoot.js.map +1 -0
- package/dist/resources/index.d.ts.map +1 -1
- package/dist/resources/index.js +78 -2
- package/dist/resources/index.js.map +1 -1
- package/dist/schemas/index.d.ts +10 -7
- package/dist/schemas/index.d.ts.map +1 -1
- package/dist/schemas/index.js +18 -16
- package/dist/schemas/index.js.map +1 -1
- package/dist/schemas/output.d.ts +63 -0
- package/dist/schemas/output.d.ts.map +1 -0
- package/dist/schemas/output.js +63 -0
- package/dist/schemas/output.js.map +1 -0
- package/dist/services/cache.d.ts +37 -3
- package/dist/services/cache.d.ts.map +1 -1
- package/dist/services/cache.js +139 -15
- package/dist/services/cache.js.map +1 -1
- package/dist/services/metadata.d.ts.map +1 -1
- package/dist/services/metadata.js +22 -9
- package/dist/services/metadata.js.map +1 -1
- package/dist/services/scraper.d.ts +1 -0
- package/dist/services/scraper.d.ts.map +1 -1
- package/dist/services/scraper.js +59 -10
- package/dist/services/scraper.js.map +1 -1
- package/dist/tools/get-article.d.ts.map +1 -1
- package/dist/tools/get-article.js +36 -10
- package/dist/tools/get-article.js.map +1 -1
- package/dist/tools/get-toc.d.ts.map +1 -1
- package/dist/tools/get-toc.js +37 -7
- package/dist/tools/get-toc.js.map +1 -1
- package/dist/tools/list-products.d.ts.map +1 -1
- package/dist/tools/list-products.js +23 -12
- package/dist/tools/list-products.js.map +1 -1
- package/dist/tools/search.d.ts.map +1 -1
- package/dist/tools/search.js +50 -17
- package/dist/tools/search.js.map +1 -1
- package/dist/transport/http.d.ts +12 -0
- package/dist/transport/http.d.ts.map +1 -0
- package/dist/transport/http.js +297 -0
- package/dist/transport/http.js.map +1 -0
- package/dist/transport/index.d.ts +13 -0
- package/dist/transport/index.d.ts.map +1 -0
- package/dist/transport/index.js +40 -0
- package/dist/transport/index.js.map +1 -0
- package/dist/types.d.ts +5 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist/utils/doc-type.d.ts +9 -0
- package/dist/utils/doc-type.d.ts.map +1 -0
- package/dist/utils/doc-type.js +16 -0
- package/dist/utils/doc-type.js.map +1 -0
- package/dist/utils/progress.d.ts +13 -0
- package/dist/utils/progress.d.ts.map +1 -0
- package/dist/utils/progress.js +18 -0
- package/dist/utils/progress.js.map +1 -0
- package/dist/utils/sanitize.d.ts +30 -0
- package/dist/utils/sanitize.d.ts.map +1 -0
- package/dist/utils/sanitize.js +57 -0
- package/dist/utils/sanitize.js.map +1 -0
- package/dist/utils/url.d.ts +11 -0
- package/dist/utils/url.d.ts.map +1 -0
- package/dist/utils/url.js +23 -0
- package/dist/utils/url.js.map +1 -0
- package/package.json +7 -4
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAgKH,cAAc;AACd,MAAM,OAAO,aAAc,SAAQ,KAAK;IAGpB;IACA;IACA;IAJlB,YACE,OAAe,EACC,IAAuB,EACvB,GAAY,EACZ,UAAmB;QAEnC,KAAK,CAAC,OAAO,CAAC,CAAC;QAJC,SAAI,GAAJ,IAAI,CAAmB;QACvB,QAAG,GAAH,GAAG,CAAS;QACZ,eAAU,GAAV,UAAU,CAAS;QAGnC,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;IAC9B,CAAC;CACF;AAED,MAAM,CAAN,IAAY,iBASX;AATD,WAAY,iBAAiB;IAC3B,4CAAuB,CAAA;IACvB,kDAA6B,CAAA;IAC7B,gDAA2B,CAAA;IAC3B,oDAA+B,CAAA;IAC/B,gDAA2B,CAAA;IAC3B,wDAAmC,CAAA;IACnC,gDAA2B,CAAA;IAC3B,wCAAmB,CAAA;AACrB,CAAC,EATW,iBAAiB,KAAjB,iBAAiB,QAS5B"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Document type inference utility
|
|
3
|
+
*/
|
|
4
|
+
import { type DocTypeId } from '../constants.js';
|
|
5
|
+
/**
|
|
6
|
+
* Infer document type from bundle ID using pattern matching
|
|
7
|
+
*/
|
|
8
|
+
export declare function inferDocType(bundleId: string): DocTypeId;
|
|
9
|
+
//# sourceMappingURL=doc-type.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doc-type.d.ts","sourceRoot":"","sources":["../../src/utils/doc-type.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAa,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5D;;GAEG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAOxD"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Document type inference utility
|
|
3
|
+
*/
|
|
4
|
+
import { DOC_TYPES } from '../constants.js';
|
|
5
|
+
/**
|
|
6
|
+
* Infer document type from bundle ID using pattern matching
|
|
7
|
+
*/
|
|
8
|
+
export function inferDocType(bundleId) {
|
|
9
|
+
for (const [id, docType] of Object.entries(DOC_TYPES)) {
|
|
10
|
+
if ('bundlePattern' in docType && docType.bundlePattern.test(bundleId)) {
|
|
11
|
+
return id;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
return 'documentation';
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=doc-type.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doc-type.js","sourceRoot":"","sources":["../../src/utils/doc-type.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAkB,MAAM,iBAAiB,CAAC;AAE5D;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,QAAgB;IAC3C,KAAK,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QACtD,IAAI,eAAe,IAAI,OAAO,IAAI,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YACvE,OAAO,EAAe,CAAC;QACzB,CAAC;IACH,CAAC;IACD,OAAO,eAAe,CAAC;AACzB,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Progress notification utility
|
|
3
|
+
*/
|
|
4
|
+
import type { ServerNotification, ServerRequest } from '@modelcontextprotocol/sdk/types.js';
|
|
5
|
+
import type { RequestHandlerExtra } from '@modelcontextprotocol/sdk/shared/protocol.js';
|
|
6
|
+
type Extra = RequestHandlerExtra<ServerRequest, ServerNotification>;
|
|
7
|
+
/**
|
|
8
|
+
* Report progress to the client if a progressToken was provided.
|
|
9
|
+
* No-op if the client didn't request progress notifications.
|
|
10
|
+
*/
|
|
11
|
+
export declare function reportProgress(extra: Extra, progress: number, total: number): Promise<void>;
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=progress.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"progress.d.ts","sourceRoot":"","sources":["../../src/utils/progress.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AAC5F,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,8CAA8C,CAAC;AAExF,KAAK,KAAK,GAAG,mBAAmB,CAAC,aAAa,EAAE,kBAAkB,CAAC,CAAC;AAEpE;;;GAGG;AACH,wBAAsB,cAAc,CAClC,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,IAAI,CAAC,CAUf"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Progress notification utility
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Report progress to the client if a progressToken was provided.
|
|
6
|
+
* No-op if the client didn't request progress notifications.
|
|
7
|
+
*/
|
|
8
|
+
export async function reportProgress(extra, progress, total) {
|
|
9
|
+
const progressToken = extra._meta?.progressToken;
|
|
10
|
+
if (progressToken === undefined) {
|
|
11
|
+
return;
|
|
12
|
+
}
|
|
13
|
+
await extra.sendNotification({
|
|
14
|
+
method: 'notifications/progress',
|
|
15
|
+
params: { progressToken, progress, total },
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=progress.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"progress.js","sourceRoot":"","sources":["../../src/utils/progress.ts"],"names":[],"mappings":"AAAA;;GAEG;AAOH;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,KAAY,EACZ,QAAgB,EAChB,KAAa;IAEb,MAAM,aAAa,GAAG,KAAK,CAAC,KAAK,EAAE,aAAa,CAAC;IACjD,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;QAChC,OAAO;IACT,CAAC;IAED,MAAM,KAAK,CAAC,gBAAgB,CAAC;QAC3B,MAAM,EAAE,wBAAwB;QAChC,MAAM,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE;KAC3C,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Security sanitization utilities
|
|
3
|
+
*
|
|
4
|
+
* Functions for sanitizing user-controlled or externally-sourced content
|
|
5
|
+
* before interpolation into Markdown output or client-facing error messages.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Escape Markdown special characters in text to prevent Markdown injection.
|
|
9
|
+
* Use this for titles, snippets, and other text interpolated into Markdown.
|
|
10
|
+
*/
|
|
11
|
+
export declare function sanitizeMarkdownText(text: string): string;
|
|
12
|
+
/**
|
|
13
|
+
* Sanitize a URL for use in Markdown link syntax.
|
|
14
|
+
* - Only allows https: protocol
|
|
15
|
+
* - Percent-encodes parentheses to prevent breaking Markdown links
|
|
16
|
+
* - Returns '#' for invalid or non-https URLs
|
|
17
|
+
*/
|
|
18
|
+
export declare function sanitizeMarkdownUrl(url: string): string;
|
|
19
|
+
/**
|
|
20
|
+
* Extract and sanitize an error message from an unknown thrown value.
|
|
21
|
+
*/
|
|
22
|
+
export declare function getSafeErrorMessage(error: unknown): string;
|
|
23
|
+
/**
|
|
24
|
+
* Sanitize error messages before returning to clients.
|
|
25
|
+
* - Replaces backend hostnames with frontend equivalents
|
|
26
|
+
* - Removes absolute file paths
|
|
27
|
+
* - Removes stack traces
|
|
28
|
+
*/
|
|
29
|
+
export declare function sanitizeErrorMessage(message: string): string;
|
|
30
|
+
//# sourceMappingURL=sanitize.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sanitize.d.ts","sourceRoot":"","sources":["../../src/utils/sanitize.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEzD;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAWvD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAG1D;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAc5D"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Security sanitization utilities
|
|
3
|
+
*
|
|
4
|
+
* Functions for sanitizing user-controlled or externally-sourced content
|
|
5
|
+
* before interpolation into Markdown output or client-facing error messages.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Escape Markdown special characters in text to prevent Markdown injection.
|
|
9
|
+
* Use this for titles, snippets, and other text interpolated into Markdown.
|
|
10
|
+
*/
|
|
11
|
+
export function sanitizeMarkdownText(text) {
|
|
12
|
+
return text.replace(/[[\]()#*_`~>!|\\]/g, '\\$&');
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Sanitize a URL for use in Markdown link syntax.
|
|
16
|
+
* - Only allows https: protocol
|
|
17
|
+
* - Percent-encodes parentheses to prevent breaking Markdown links
|
|
18
|
+
* - Returns '#' for invalid or non-https URLs
|
|
19
|
+
*/
|
|
20
|
+
export function sanitizeMarkdownUrl(url) {
|
|
21
|
+
try {
|
|
22
|
+
const parsed = new URL(url);
|
|
23
|
+
if (parsed.protocol !== 'https:') {
|
|
24
|
+
return '#';
|
|
25
|
+
}
|
|
26
|
+
// Percent-encode parentheses in the URL to prevent breaking Markdown link syntax
|
|
27
|
+
return url.replace(/\(/g, '%28').replace(/\)/g, '%29');
|
|
28
|
+
}
|
|
29
|
+
catch {
|
|
30
|
+
return '#';
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Extract and sanitize an error message from an unknown thrown value.
|
|
35
|
+
*/
|
|
36
|
+
export function getSafeErrorMessage(error) {
|
|
37
|
+
const raw = error instanceof Error ? error.message : 'Unknown error occurred';
|
|
38
|
+
return sanitizeErrorMessage(raw);
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Sanitize error messages before returning to clients.
|
|
42
|
+
* - Replaces backend hostnames with frontend equivalents
|
|
43
|
+
* - Removes absolute file paths
|
|
44
|
+
* - Removes stack traces
|
|
45
|
+
*/
|
|
46
|
+
export function sanitizeErrorMessage(message) {
|
|
47
|
+
let sanitized = message;
|
|
48
|
+
// Replace backend hostname with frontend (hostnames extracted from DOCS_API_URL / DOCS_BASE_URL)
|
|
49
|
+
sanitized = sanitized.replaceAll('learn-be.jamf.com', 'learn.jamf.com');
|
|
50
|
+
// Remove absolute file paths (Unix and Windows)
|
|
51
|
+
sanitized = sanitized.replace(/\/[\w./-]+\.\w{1,4}/g, '<path>');
|
|
52
|
+
sanitized = sanitized.replace(/[A-Z]:\\[\w.\\-]+\.\w{1,4}/g, '<path>');
|
|
53
|
+
// Remove stack traces (lines starting with "at ")
|
|
54
|
+
sanitized = sanitized.replace(/\n\s*at\s+.+/g, '');
|
|
55
|
+
return sanitized;
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=sanitize.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sanitize.js","sourceRoot":"","sources":["../../src/utils/sanitize.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,IAAY;IAC/C,OAAO,IAAI,CAAC,OAAO,CAAC,oBAAoB,EAAE,MAAM,CAAC,CAAC;AACpD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,GAAW;IAC7C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,MAAM,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACjC,OAAO,GAAG,CAAC;QACb,CAAC;QACD,iFAAiF;QACjF,OAAO,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACzD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,GAAG,CAAC;IACb,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAc;IAChD,MAAM,GAAG,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,wBAAwB,CAAC;IAC9E,OAAO,oBAAoB,CAAC,GAAG,CAAC,CAAC;AACnC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAAe;IAClD,IAAI,SAAS,GAAG,OAAO,CAAC;IAExB,iGAAiG;IACjG,SAAS,GAAG,SAAS,CAAC,UAAU,CAAC,mBAAmB,EAAE,gBAAgB,CAAC,CAAC;IAExE,gDAAgD;IAChD,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,sBAAsB,EAAE,QAAQ,CAAC,CAAC;IAChE,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,6BAA6B,EAAE,QAAQ,CAAC,CAAC;IAEvE,kDAAkD;IAClD,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;IAEnD,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* URL validation utilities
|
|
3
|
+
*
|
|
4
|
+
* Hostname allowlist and validation for Jamf documentation URLs.
|
|
5
|
+
* Shared by both the schema layer and the scraper service.
|
|
6
|
+
*/
|
|
7
|
+
/** Allowed hostnames for URL validation. */
|
|
8
|
+
export declare const ALLOWED_HOSTNAMES: Set<string>;
|
|
9
|
+
/** Check whether a URL string points to an allowed Jamf documentation hostname. */
|
|
10
|
+
export declare function isAllowedHostname(urlStr: string): boolean;
|
|
11
|
+
//# sourceMappingURL=url.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"url.d.ts","sourceRoot":"","sources":["../../src/utils/url.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,4CAA4C;AAC5C,eAAO,MAAM,iBAAiB,aAI5B,CAAC;AAEH,mFAAmF;AACnF,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAOzD"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* URL validation utilities
|
|
3
|
+
*
|
|
4
|
+
* Hostname allowlist and validation for Jamf documentation URLs.
|
|
5
|
+
* Shared by both the schema layer and the scraper service.
|
|
6
|
+
*/
|
|
7
|
+
/** Allowed hostnames for URL validation. */
|
|
8
|
+
export const ALLOWED_HOSTNAMES = new Set([
|
|
9
|
+
'learn.jamf.com',
|
|
10
|
+
'learn-be.jamf.com',
|
|
11
|
+
'docs.jamf.com',
|
|
12
|
+
]);
|
|
13
|
+
/** Check whether a URL string points to an allowed Jamf documentation hostname. */
|
|
14
|
+
export function isAllowedHostname(urlStr) {
|
|
15
|
+
try {
|
|
16
|
+
const url = new URL(urlStr);
|
|
17
|
+
return ALLOWED_HOSTNAMES.has(url.hostname);
|
|
18
|
+
}
|
|
19
|
+
catch {
|
|
20
|
+
return false;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=url.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"url.js","sourceRoot":"","sources":["../../src/utils/url.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,4CAA4C;AAC5C,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC;IACvC,gBAAgB;IAChB,mBAAmB;IACnB,eAAe;CAChB,CAAC,CAAC;AAEH,mFAAmF;AACnF,MAAM,UAAU,iBAAiB,CAAC,MAAc;IAC9C,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;QAC5B,OAAO,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC7C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@get-technology-inc/jamf-docs-mcp-server",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.2.0",
|
|
4
4
|
"description": "MCP Server for accessing Jamf Documentation (learn.jamf.com)",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"type": "module",
|
|
@@ -11,10 +11,13 @@
|
|
|
11
11
|
"build": "tsc",
|
|
12
12
|
"dev": "tsx watch src/index.ts",
|
|
13
13
|
"start": "node dist/index.js",
|
|
14
|
+
"start:http": "node dist/index.js --transport http",
|
|
14
15
|
"test": "vitest run",
|
|
15
16
|
"test:watch": "vitest",
|
|
16
17
|
"test:unit": "vitest run test/unit",
|
|
17
18
|
"test:integration": "vitest run test/integration",
|
|
19
|
+
"test:e2e": "vitest run test/e2e",
|
|
20
|
+
"test:all": "vitest run test/unit && vitest run test/integration && vitest run test/e2e",
|
|
18
21
|
"test:coverage": "vitest run --coverage",
|
|
19
22
|
"test:inspector": "npx @modelcontextprotocol/inspector node dist/index.js",
|
|
20
23
|
"lint": "eslint src/**/*.ts",
|
|
@@ -37,8 +40,8 @@
|
|
|
37
40
|
"author": "GET Technology Inc.",
|
|
38
41
|
"license": "MIT",
|
|
39
42
|
"dependencies": {
|
|
40
|
-
"@modelcontextprotocol/sdk": "^1.
|
|
41
|
-
"axios": "^1.
|
|
43
|
+
"@modelcontextprotocol/sdk": "^1.27.1",
|
|
44
|
+
"axios": "^1.13.6",
|
|
42
45
|
"cheerio": "^1.0.0",
|
|
43
46
|
"turndown": "^7.2.0",
|
|
44
47
|
"zod": "^4.3.6"
|
|
@@ -48,7 +51,7 @@
|
|
|
48
51
|
"@types/node": "^25.0.9",
|
|
49
52
|
"@types/turndown": "^5.0.5",
|
|
50
53
|
"@vitest/coverage-v8": "^4.0.17",
|
|
51
|
-
"eslint": "^9.
|
|
54
|
+
"eslint": "^9.39.4",
|
|
52
55
|
"tsx": "^4.19.0",
|
|
53
56
|
"typescript": "^5.6.0",
|
|
54
57
|
"typescript-eslint": "^8.18.0",
|