@fruggr/zendesk-mcp-server 3.5.2 → 3.6.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/article-sections-CzTODYsS.js +78089 -0
- package/dist/{http-CWM14zJp.js → http-DkjvhtQj.js} +11 -7
- package/dist/index.js +1939 -79906
- package/dist/rolldown-runtime-BbXq-jo1.js +36 -0
- package/dist/sbom.cdx.json +4 -4
- package/dist/{token-store-CQx_KFe2.js → token-store-BqwB-30K.js} +14 -14
- package/package.json +5 -4
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { createRequire } from "node:module";
|
|
3
|
+
//#region \0rolldown/runtime.js
|
|
4
|
+
var __create = Object.create;
|
|
5
|
+
var __defProp = Object.defineProperty;
|
|
6
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
7
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
8
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
9
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
10
|
+
var __commonJSMin = (cb, mod) => () => (mod || (cb((mod = { exports: {} }).exports, mod, mod.exports), cb = null), mod.exports);
|
|
11
|
+
var __exportAll = (all, no_symbols) => {
|
|
12
|
+
let target = {};
|
|
13
|
+
for (var name in all) __defProp(target, name, {
|
|
14
|
+
get: all[name],
|
|
15
|
+
enumerable: true
|
|
16
|
+
});
|
|
17
|
+
if (!no_symbols) __defProp(target, Symbol.toStringTag, { value: "Module" });
|
|
18
|
+
return target;
|
|
19
|
+
};
|
|
20
|
+
var __copyProps = (to, from, except, desc) => {
|
|
21
|
+
if (from && typeof from === "object" || typeof from === "function") for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
|
|
22
|
+
key = keys[i];
|
|
23
|
+
if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
24
|
+
get: ((k) => from[k]).bind(null, key),
|
|
25
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
return to;
|
|
29
|
+
};
|
|
30
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule || !__hasOwnProp.call(mod, "default") ? __defProp(target, "default", {
|
|
31
|
+
value: mod,
|
|
32
|
+
enumerable: true
|
|
33
|
+
}) : target, mod));
|
|
34
|
+
var __require = /* #__PURE__ */ (() => createRequire(import.meta.url))();
|
|
35
|
+
//#endregion
|
|
36
|
+
export { __toESM as i, __exportAll as n, __require as r, __commonJSMin as t };
|
package/dist/sbom.cdx.json
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"bomFormat": "CycloneDX",
|
|
3
3
|
"specVersion": "1.6",
|
|
4
|
-
"serialNumber": "urn:uuid:
|
|
4
|
+
"serialNumber": "urn:uuid:dbd14c1f-e90e-5bea-b648-7853fb8ee967",
|
|
5
5
|
"version": 1,
|
|
6
6
|
"metadata": {
|
|
7
7
|
"component": {
|
|
8
8
|
"type": "application",
|
|
9
|
-
"bom-ref": "pkg:npm/%40fruggr/zendesk-mcp-server@3.
|
|
9
|
+
"bom-ref": "pkg:npm/%40fruggr/zendesk-mcp-server@3.6.0",
|
|
10
10
|
"name": "@fruggr/zendesk-mcp-server",
|
|
11
|
-
"version": "3.
|
|
12
|
-
"purl": "pkg:npm/%40fruggr/zendesk-mcp-server@3.
|
|
11
|
+
"version": "3.6.0",
|
|
12
|
+
"purl": "pkg:npm/%40fruggr/zendesk-mcp-server@3.6.0"
|
|
13
13
|
}
|
|
14
14
|
},
|
|
15
15
|
"components": [
|
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import {
|
|
2
|
+
import { c as clearToken, d as resolveTokenPath, f as saveToken, h as silentLogger, p as signInRequiredError, u as loadToken, x as getOAuthUrls } from "./index.js";
|
|
3
3
|
import { i as requestedScope, n as generateCodeVerifier, o as escapeHtml, r as grantCovers, t as generateCodeChallenge } from "./pkce-DE_v9NQy.js";
|
|
4
4
|
import { promisify } from "node:util";
|
|
5
5
|
import path from "node:path";
|
|
6
6
|
import { fileURLToPath } from "node:url";
|
|
7
7
|
import process$1 from "node:process";
|
|
8
|
-
import {
|
|
9
|
-
import { Buffer } from "node:buffer";
|
|
10
|
-
import fs, { constants } from "node:fs/promises";
|
|
11
|
-
import fs$1, { readFileSync } from "node:fs";
|
|
8
|
+
import fs, { readFileSync } from "node:fs";
|
|
12
9
|
import os, { release } from "node:os";
|
|
10
|
+
import fs$1, { constants as constants$1 } from "node:fs/promises";
|
|
11
|
+
import { createServer } from "node:http";
|
|
13
12
|
import childProcess, { execFile } from "node:child_process";
|
|
13
|
+
import { Buffer } from "node:buffer";
|
|
14
14
|
//#region node_modules/.pnpm/is-docker@3.0.0/node_modules/is-docker/index.js
|
|
15
15
|
let isDockerCached;
|
|
16
16
|
function hasDockerEnv() {
|
|
17
17
|
try {
|
|
18
|
-
fs
|
|
18
|
+
fs.statSync("/.dockerenv");
|
|
19
19
|
return true;
|
|
20
20
|
} catch {
|
|
21
21
|
return false;
|
|
@@ -23,7 +23,7 @@ function hasDockerEnv() {
|
|
|
23
23
|
}
|
|
24
24
|
function hasDockerCGroup() {
|
|
25
25
|
try {
|
|
26
|
-
return fs
|
|
26
|
+
return fs.readFileSync("/proc/self/cgroup", "utf8").includes("docker");
|
|
27
27
|
} catch {
|
|
28
28
|
return false;
|
|
29
29
|
}
|
|
@@ -37,7 +37,7 @@ function isDocker() {
|
|
|
37
37
|
let cachedResult;
|
|
38
38
|
const hasContainerEnv = () => {
|
|
39
39
|
try {
|
|
40
|
-
fs
|
|
40
|
+
fs.statSync("/run/.containerenv");
|
|
41
41
|
return true;
|
|
42
42
|
} catch {
|
|
43
43
|
return false;
|
|
@@ -56,9 +56,9 @@ const isWsl = () => {
|
|
|
56
56
|
return true;
|
|
57
57
|
}
|
|
58
58
|
try {
|
|
59
|
-
if (fs
|
|
59
|
+
if (fs.readFileSync("/proc/version", "utf8").toLowerCase().includes("microsoft")) return !isInsideContainer();
|
|
60
60
|
} catch {}
|
|
61
|
-
if (fs
|
|
61
|
+
if (fs.existsSync("/proc/sys/fs/binfmt_misc/WSLInterop") || fs.existsSync("/run/WSL")) return !isInsideContainer();
|
|
62
62
|
return false;
|
|
63
63
|
};
|
|
64
64
|
var is_wsl_default = process$1.env.__IS_WSL_TEST__ ? isWsl : isWsl();
|
|
@@ -110,11 +110,11 @@ const wslDrivesMountPoint = (() => {
|
|
|
110
110
|
const configFilePath = "/etc/wsl.conf";
|
|
111
111
|
let isConfigFileExists = false;
|
|
112
112
|
try {
|
|
113
|
-
await fs.access(configFilePath, constants.F_OK);
|
|
113
|
+
await fs$1.access(configFilePath, constants$1.F_OK);
|
|
114
114
|
isConfigFileExists = true;
|
|
115
115
|
} catch {}
|
|
116
116
|
if (!isConfigFileExists) return defaultMountPoint;
|
|
117
|
-
const parsedMountPoint = parseMountPointFromConfig(await fs.readFile(configFilePath, { encoding: "utf8" }));
|
|
117
|
+
const parsedMountPoint = parseMountPointFromConfig(await fs$1.readFile(configFilePath, { encoding: "utf8" }));
|
|
118
118
|
if (parsedMountPoint === void 0) return defaultMountPoint;
|
|
119
119
|
mountPoint = parsedMountPoint;
|
|
120
120
|
mountPoint = mountPoint.endsWith("/") ? mountPoint : `${mountPoint}/`;
|
|
@@ -130,7 +130,7 @@ const canAccessPowerShell = async () => {
|
|
|
130
130
|
canAccessPowerShellPromise ??= (async () => {
|
|
131
131
|
try {
|
|
132
132
|
const psPath = await powerShellPath();
|
|
133
|
-
await fs.access(psPath, constants.X_OK);
|
|
133
|
+
await fs$1.access(psPath, constants$1.X_OK);
|
|
134
134
|
return true;
|
|
135
135
|
} catch {
|
|
136
136
|
return false;
|
|
@@ -463,7 +463,7 @@ const baseOpen = async (options) => {
|
|
|
463
463
|
const isBundled = !__dirname || __dirname === "/";
|
|
464
464
|
let exeLocalXdgOpen = false;
|
|
465
465
|
try {
|
|
466
|
-
await fs.access(localXdgOpenPath, constants.X_OK);
|
|
466
|
+
await fs$1.access(localXdgOpenPath, constants$1.X_OK);
|
|
467
467
|
exeLocalXdgOpen = true;
|
|
468
468
|
} catch {}
|
|
469
469
|
command = process$1.versions.electron ?? (platform === "android" || isBundled || !exeLocalXdgOpen) ? "xdg-open" : localXdgOpenPath;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fruggr/zendesk-mcp-server",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.6.0",
|
|
4
4
|
"mcpName": "io.github.fruggr/zendesk-mcp-server",
|
|
5
5
|
"description": "Deep Zendesk MCP server for your AI assistant: search, draft, update and translate Help Center articles and manage Support tickets end to end — comments, triage and image attachments.",
|
|
6
6
|
"type": "module",
|
|
@@ -21,8 +21,8 @@
|
|
|
21
21
|
"dev:http": "tsx src/index.ts --transport http --host 127.0.0.1 --port 3000 --public-url http://localhost:3000 --mode all --namespace tickets --namespace help_center --namespace users --namespace requests",
|
|
22
22
|
"prepare": "npm run build && (lefthook install || true)",
|
|
23
23
|
"prepublishOnly": "npm run build",
|
|
24
|
-
"check": "
|
|
25
|
-
"check:fix": "
|
|
24
|
+
"check": "biome check --error-on-warnings .",
|
|
25
|
+
"check:fix": "biome check --write .",
|
|
26
26
|
"test": "vitest run",
|
|
27
27
|
"test:watch": "vitest watch",
|
|
28
28
|
"test:coverage": "vitest run --coverage",
|
|
@@ -32,6 +32,7 @@
|
|
|
32
32
|
"test:mutation:summary": "node scripts/mutation-scope.mjs summary",
|
|
33
33
|
"test:smoke": "pnpm build && node scripts/smoke-test.mjs",
|
|
34
34
|
"test:bundle": "pnpm build && vitest run --config vitest.bundle.config.ts",
|
|
35
|
+
"bundle:size": "pnpm build && node scripts/bundle-size.mjs",
|
|
35
36
|
"mcp:live": "tsx scripts/mcp-live.ts"
|
|
36
37
|
},
|
|
37
38
|
"keywords": [
|
|
@@ -74,7 +75,7 @@
|
|
|
74
75
|
},
|
|
75
76
|
"packageManager": "pnpm@12.15.0+sha512.b3951d6d6ff4a9f13dc7cf56cd28d2b8eb37dbcc9c68e52e1e1191873ea9f82a017287ab50baadc5ccc494f036c67c0e47eb13608c2fa36f47711b61ea128e61",
|
|
76
77
|
"devDependencies": {
|
|
77
|
-
"@biomejs/biome": "2.
|
|
78
|
+
"@biomejs/biome": "2.6.2",
|
|
78
79
|
"@modelcontextprotocol/client": "2.3.1",
|
|
79
80
|
"@modelcontextprotocol/node": "2.1.1",
|
|
80
81
|
"@modelcontextprotocol/server": "2.3.1",
|