@kryptosai/mcp-observatory 0.20.3 → 0.21.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/COMMERCIAL.md +67 -0
- package/PRIVACY.md +52 -0
- package/README.md +100 -4
- package/TERMS.md +30 -0
- package/dist/src/checks/resources.js +9 -19
- package/dist/src/checks/resources.js.map +1 -1
- package/dist/src/checks/security-rules.js.map +1 -1
- package/dist/src/checks/security.js +33 -14
- package/dist/src/checks/security.js.map +1 -1
- package/dist/src/checks/tools-invoke.js.map +1 -1
- package/dist/src/checks/tools.js.map +1 -1
- package/dist/src/ci-issue.js +3 -1
- package/dist/src/ci-issue.js.map +1 -1
- package/dist/src/cli.js +48 -1
- package/dist/src/cli.js.map +1 -1
- package/dist/src/commands/ci-report.js +4 -0
- package/dist/src/commands/ci-report.js.map +1 -1
- package/dist/src/commands/enterprise-report.d.ts +12 -0
- package/dist/src/commands/enterprise-report.js +192 -0
- package/dist/src/commands/enterprise-report.js.map +1 -0
- package/dist/src/commands/init-ci.d.ts +17 -0
- package/dist/src/commands/init-ci.js +106 -0
- package/dist/src/commands/init-ci.js.map +1 -0
- package/dist/src/commands/scan.js +4 -0
- package/dist/src/commands/scan.js.map +1 -1
- package/dist/src/commands/score.js +2 -0
- package/dist/src/commands/score.js.map +1 -1
- package/dist/src/commands/telemetry.js +47 -2
- package/dist/src/commands/telemetry.js.map +1 -1
- package/dist/src/commands/test.js +11 -5
- package/dist/src/commands/test.js.map +1 -1
- package/dist/src/commercial.d.ts +5 -0
- package/dist/src/commercial.js +46 -0
- package/dist/src/commercial.js.map +1 -0
- package/dist/src/runner.js +1 -1
- package/dist/src/runner.js.map +1 -1
- package/dist/src/telemetry.d.ts +27 -0
- package/dist/src/telemetry.js +57 -3
- package/dist/src/telemetry.js.map +1 -1
- package/dist/src/types.d.ts +5 -0
- package/dist/src/validate.js +48 -5
- package/dist/src/validate.js.map +1 -1
- package/docs/architecture.md +32 -0
- package/docs/certification-campaign-template.md +167 -0
- package/docs/certification-distribution.md +125 -0
- package/docs/compatibility.md +164 -0
- package/docs/decisions.md +23 -0
- package/docs/demo.svg +59 -0
- package/docs/directory-listing-copy.md +78 -0
- package/docs/distribution-launch.md +76 -0
- package/docs/enterprise-outreach-playbook.md +83 -0
- package/docs/feishu-lark-mcp.md +65 -0
- package/docs/known-issues.md +27 -0
- package/docs/mcp-safety-report-latest.md +85 -0
- package/docs/project-case-study.md +106 -0
- package/docs/proof.md +68 -0
- package/docs/publish-readiness.md +73 -0
- package/package.json +31 -18
- package/schemas/diff-artifact.schema.json +62 -66
- package/schemas/run-artifact.schema.json +107 -142
|
@@ -4,6 +4,7 @@ import { generateBadgeSvg } from "../badge.js";
|
|
|
4
4
|
import { runTarget, writeRunArtifact, } from "../index.js";
|
|
5
5
|
import { defaultRunsDirectory } from "../storage.js";
|
|
6
6
|
import { buildEvent, recordEvent } from "../telemetry.js";
|
|
7
|
+
import { maybePrintCloudCta } from "../commercial.js";
|
|
7
8
|
import { ANSI, c, formatOutput, targetFromCommand, writeOutput } from "./helpers.js";
|
|
8
9
|
export function registerScoreCommands(program) {
|
|
9
10
|
// ── score ────────────────────────────────────────────────────────────
|
|
@@ -86,6 +87,7 @@ export function registerScoreCommands(program) {
|
|
|
86
87
|
}
|
|
87
88
|
}
|
|
88
89
|
process.stdout.write("\n");
|
|
90
|
+
maybePrintCloudCta("security");
|
|
89
91
|
if (artifact.gate === "fail") {
|
|
90
92
|
process.exitCode = 1;
|
|
91
93
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"score.js","sourceRoot":"","sources":["../../../src/commands/score.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"score.js","sourceRoot":"","sources":["../../../src/commands/score.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,48 @@
|
|
|
1
1
|
import { loadTelemetryConfig, saveTelemetryConfig, isTelemetryEnabled } from "../telemetry.js";
|
|
2
|
+
const TELEMETRY_FIELDS = [
|
|
3
|
+
"sessionId",
|
|
4
|
+
"timestamp",
|
|
5
|
+
"version",
|
|
6
|
+
"command",
|
|
7
|
+
"transport",
|
|
8
|
+
"os",
|
|
9
|
+
"arch",
|
|
10
|
+
"nodeVersion",
|
|
11
|
+
"isCI",
|
|
12
|
+
"ciName",
|
|
13
|
+
"ciProvider",
|
|
14
|
+
"org",
|
|
15
|
+
"contact",
|
|
16
|
+
"gitEmail",
|
|
17
|
+
"gitRemoteUrl",
|
|
18
|
+
"hostname",
|
|
19
|
+
"serversScanned",
|
|
20
|
+
"toolsFound",
|
|
21
|
+
"promptsFound",
|
|
22
|
+
"resourcesFound",
|
|
23
|
+
"gateResult",
|
|
24
|
+
"executionMs",
|
|
25
|
+
"securityFlag",
|
|
26
|
+
"targetIds",
|
|
27
|
+
"installedServers",
|
|
28
|
+
"serverCommands",
|
|
29
|
+
"healthScore",
|
|
30
|
+
"healthGrade",
|
|
31
|
+
"securityFindingCount",
|
|
32
|
+
"connectMs",
|
|
33
|
+
"fatalError",
|
|
34
|
+
"checkStatuses",
|
|
35
|
+
"suggestedServers",
|
|
36
|
+
"detectedLanguages",
|
|
37
|
+
"detectedFrameworks",
|
|
38
|
+
];
|
|
2
39
|
export function registerTelemetryCommands(program) {
|
|
3
40
|
program
|
|
4
41
|
.command("telemetry")
|
|
5
|
-
.description("Manage
|
|
42
|
+
.description("Manage product usage telemetry.")
|
|
6
43
|
.argument("[action]", "enable, disable, stats, or status (default: status)")
|
|
7
|
-
.
|
|
44
|
+
.option("--verbose", "Show the telemetry fields that may be collected.", false)
|
|
45
|
+
.action(async (action, options) => {
|
|
8
46
|
const config = await loadTelemetryConfig();
|
|
9
47
|
const envDisabled = process.env["DO_NOT_TRACK"] === "1" ||
|
|
10
48
|
process.env["MCP_OBSERVATORY_TELEMETRY_DISABLED"] === "1";
|
|
@@ -59,6 +97,13 @@ export function registerTelemetryCommands(program) {
|
|
|
59
97
|
process.stdout.write(` Override: disabled via environment variable\n`);
|
|
60
98
|
}
|
|
61
99
|
process.stdout.write(` Session: ${config.sessionId}\n\n`);
|
|
100
|
+
if (options?.verbose) {
|
|
101
|
+
process.stdout.write(" Fields that may be sent when available:\n");
|
|
102
|
+
for (const field of TELEMETRY_FIELDS) {
|
|
103
|
+
process.stdout.write(` - ${field}\n`);
|
|
104
|
+
}
|
|
105
|
+
process.stdout.write("\n See PRIVACY.md for details and opt-out options.\n\n");
|
|
106
|
+
}
|
|
62
107
|
}
|
|
63
108
|
});
|
|
64
109
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../../../src/commands/telemetry.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAE/F,MAAM,UAAU,yBAAyB,CAAC,OAAgB;IACxD,OAAO;SACJ,OAAO,CAAC,WAAW,CAAC;SACpB,WAAW,CAAC,
|
|
1
|
+
{"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../../../src/commands/telemetry.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,20 +2,24 @@ import { runTarget, writeRunArtifact, } from "../index.js";
|
|
|
2
2
|
import { defaultRunsDirectory } from "../storage.js";
|
|
3
3
|
import { appendHistory, buildHistoryEntry, getTrend, readHistory } from "../history.js";
|
|
4
4
|
import { buildEvent, recordEvent } from "../telemetry.js";
|
|
5
|
-
import {
|
|
5
|
+
import { maybePrintCloudCta } from "../commercial.js";
|
|
6
|
+
import { ANSI, c, resolveTarget, targetFromCommand } from "./helpers.js";
|
|
6
7
|
export function registerTestCommands(program) {
|
|
7
8
|
program
|
|
8
9
|
.command("test")
|
|
9
10
|
.passThroughOptions()
|
|
10
11
|
.description("Test a specific server by command.")
|
|
11
|
-
.argument("
|
|
12
|
+
.argument("[command...]", "Server command and arguments to run.")
|
|
13
|
+
.option("--target <config>", "Path to a target config JSON file.")
|
|
14
|
+
.option("--deep", "Also invoke safe tools to verify they execute.")
|
|
15
|
+
.option("--invoke-tools", "Alias for --deep.")
|
|
12
16
|
.option("--security", "Run deep security scan (credential patterns, response analysis). Lightweight security is always included.")
|
|
13
17
|
.option("--no-color", "Disable colored output.")
|
|
14
18
|
.action(async (commandArgs, options) => {
|
|
15
19
|
const t0 = Date.now();
|
|
16
|
-
const target = targetFromCommand(commandArgs);
|
|
20
|
+
const target = options.target ? await resolveTarget({ target: options.target }) : targetFromCommand(commandArgs);
|
|
17
21
|
process.stdout.write(` ${c(ANSI.dim, "⟳")} Checking ${c(ANSI.bold, target.targetId)}...`);
|
|
18
|
-
const artifact = await runTarget(target, { securityCheck: options.security });
|
|
22
|
+
const artifact = await runTarget(target, { invokeTools: options.deep || options.invokeTools, securityCheck: options.security });
|
|
19
23
|
const outPath = await writeRunArtifact(artifact, defaultRunsDirectory(process.cwd()));
|
|
20
24
|
const toolsEvidence = artifact.checks.find(ch => ch.id === "tools");
|
|
21
25
|
const promptsEvidence = artifact.checks.find(ch => ch.id === "prompts");
|
|
@@ -50,9 +54,10 @@ export function registerTestCommands(program) {
|
|
|
50
54
|
resourcesFound: resourceCount,
|
|
51
55
|
gateResult: artifact.gate,
|
|
52
56
|
executionMs: Date.now() - t0,
|
|
57
|
+
deepFlag: options.deep || options.invokeTools,
|
|
53
58
|
securityFlag: options.security,
|
|
54
59
|
targetIds: [target.targetId],
|
|
55
|
-
serverCommands: [
|
|
60
|
+
serverCommands: [target.adapter === "http" ? target.url : `${target.command} ${target.args.join(" ")}`],
|
|
56
61
|
healthScore: artifact.healthScore?.overall,
|
|
57
62
|
healthGrade: artifact.healthScore?.grade,
|
|
58
63
|
connectMs: artifact.performanceMetrics?.connectMs,
|
|
@@ -62,6 +67,7 @@ export function registerTestCommands(program) {
|
|
|
62
67
|
if (artifact.gate === "fail") {
|
|
63
68
|
process.exitCode = 1;
|
|
64
69
|
}
|
|
70
|
+
maybePrintCloudCta(options.security ? "security" : "general");
|
|
65
71
|
});
|
|
66
72
|
}
|
|
67
73
|
//# sourceMappingURL=test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test.js","sourceRoot":"","sources":["../../../src/commands/test.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,SAAS,EACT,gBAAgB,GACjB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACxF,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"test.js","sourceRoot":"","sources":["../../../src/commands/test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export declare const DEFAULT_CLOUD_UPLOAD_ENDPOINT = "https://mcp-observatory-api.kryptosai.workers.dev/api/v1/artifacts";
|
|
2
|
+
export declare function hasCloudToken(): boolean;
|
|
3
|
+
export declare function cloudUpgradeLine(context?: "ci" | "security" | "fleet" | "general"): string;
|
|
4
|
+
export declare function maybePrintCloudCta(context?: "ci" | "security" | "fleet" | "general"): void;
|
|
5
|
+
export declare function printCloudInfo(): void;
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { ANSI, c, getBinName } from "./commands/helpers.js";
|
|
2
|
+
const CONTACT = "william@banksey.com";
|
|
3
|
+
export const DEFAULT_CLOUD_UPLOAD_ENDPOINT = "https://mcp-observatory-api.kryptosai.workers.dev/api/v1/artifacts";
|
|
4
|
+
export function hasCloudToken() {
|
|
5
|
+
return Boolean(process.env["MCP_OBSERVATORY_CLOUD_TOKEN"]);
|
|
6
|
+
}
|
|
7
|
+
export function cloudUpgradeLine(context = "general") {
|
|
8
|
+
const bin = getBinName();
|
|
9
|
+
const value = context === "ci"
|
|
10
|
+
? "hosted CI history, private-repo reporting, and production badges"
|
|
11
|
+
: context === "security"
|
|
12
|
+
? "hosted security reports, certification, and production monitoring"
|
|
13
|
+
: context === "fleet"
|
|
14
|
+
? "MCP fleet visibility, drift reports, and production support"
|
|
15
|
+
: "hosted reporting, production monitoring, and enterprise support";
|
|
16
|
+
return [
|
|
17
|
+
c(ANSI.dim, ` Production MCP teams: ${value}.`),
|
|
18
|
+
c(ANSI.dim, ` Run ${c(ANSI.cyan, `${bin} cloud`)} or contact ${CONTACT}.`),
|
|
19
|
+
].join("\n");
|
|
20
|
+
}
|
|
21
|
+
export function maybePrintCloudCta(context = "general") {
|
|
22
|
+
if (hasCloudToken())
|
|
23
|
+
return;
|
|
24
|
+
process.stdout.write(`${cloudUpgradeLine(context)}\n\n`);
|
|
25
|
+
}
|
|
26
|
+
export function printCloudInfo() {
|
|
27
|
+
process.stdout.write([
|
|
28
|
+
"",
|
|
29
|
+
c(ANSI.bold, "MCP Observatory Cloud"),
|
|
30
|
+
"",
|
|
31
|
+
"Free local OSS use remains available. Production teams can add hosted reporting,",
|
|
32
|
+
"private-repo CI, security reports, certification, support, and MCP fleet visibility.",
|
|
33
|
+
"",
|
|
34
|
+
"Pilot pricing:",
|
|
35
|
+
" Team Pilot: starts at $299/month",
|
|
36
|
+
" Business Pilot: starts at $999/month",
|
|
37
|
+
" Enterprise Pilot: starts at $3k/month",
|
|
38
|
+
" Strategic: custom, $250k+/year",
|
|
39
|
+
"",
|
|
40
|
+
"To enable hosted uploads, set MCP_OBSERVATORY_CLOUD_TOKEN after receiving a pilot token.",
|
|
41
|
+
`Upload an artifact: ${getBinName()} cloud upload .mcp-observatory/runs/<run>.json`,
|
|
42
|
+
`Contact: ${CONTACT}`,
|
|
43
|
+
"",
|
|
44
|
+
].join("\n"));
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=commercial.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commercial.js","sourceRoot":"","sources":["../../src/commercial.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAE5D,MAAM,OAAO,GAAG,qBAAqB,CAAC;AACtC,MAAM,CAAC,MAAM,6BAA6B,GAAG,oEAAoE,CAAC;AAElH,MAAM,UAAU,aAAa;IAC3B,OAAO,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC,CAAC;AAC7D,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,UAAmD,SAAS;IAC3F,MAAM,GAAG,GAAG,UAAU,EAAE,CAAC;IACzB,MAAM,KAAK,GACT,OAAO,KAAK,IAAI;QACd,CAAC,CAAC,kEAAkE;QACpE,CAAC,CAAC,OAAO,KAAK,UAAU;YACtB,CAAC,CAAC,mEAAmE;YACrE,CAAC,CAAC,OAAO,KAAK,OAAO;gBACnB,CAAC,CAAC,6DAA6D;gBAC/D,CAAC,CAAC,iEAAiE,CAAC;IAE5E,OAAO;QACL,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,2BAA2B,KAAK,GAAG,CAAC;QAChD,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,GAAG,QAAQ,CAAC,eAAe,OAAO,GAAG,CAAC;KAC5E,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,UAAmD,SAAS;IAC7F,IAAI,aAAa,EAAE;QAAE,OAAO;IAC5B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,gBAAgB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AAC3D,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB;QACE,EAAE;QACF,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,uBAAuB,CAAC;QACrC,EAAE;QACF,kFAAkF;QAClF,sFAAsF;QACtF,EAAE;QACF,gBAAgB;QAChB,0CAA0C;QAC1C,0CAA0C;QAC1C,yCAAyC;QACzC,yCAAyC;QACzC,EAAE;QACF,0FAA0F;QAC1F,uBAAuB,UAAU,EAAE,gDAAgD;QACnF,YAAY,OAAO,EAAE;QACrB,EAAE;KACH,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CAAC;AACJ,CAAC"}
|
package/dist/src/runner.js
CHANGED
|
@@ -65,7 +65,7 @@ export async function runTargetRecording(target, options) {
|
|
|
65
65
|
async function runTargetWithRecording(target, options) {
|
|
66
66
|
const runId = buildRunId();
|
|
67
67
|
const createdAt = new Date().toISOString();
|
|
68
|
-
let checks
|
|
68
|
+
let checks;
|
|
69
69
|
let fatalError;
|
|
70
70
|
let serverName;
|
|
71
71
|
let serverVersion;
|
package/dist/src/runner.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/runner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAGvF,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,2BAA2B,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACrF,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAExE,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,SAAS,iBAAiB;IACxB,OAAO;QACL,KAAK,EAAE,CAAC;QACR,IAAI,EAAE,CAAC;QACP,IAAI,EAAE,CAAC;QACP,OAAO,EAAE,CAAC;QACV,WAAW,EAAE,CAAC;QACd,KAAK,EAAE,CAAC;QACR,OAAO,EAAE,CAAC;KACX,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,MAAqB,EAAE,UAAmB;IAC9D,MAAM,MAAM,GAAG,iBAAiB,EAAE,CAAC;IACnC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC;QAClB,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IACD,MAAM,IAAI,GACR,UAAU,KAAK,SAAS,IAAI,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;IAChE,OAAO;QACL,GAAG,MAAM;QACT,IAAI;KACL,CAAC;AACJ,CAAC;AAaD,KAAK,UAAU,aAAa,CAAC,MAAoB,EAAE,cAAsC;IACvF,IAAI,MAAM,CAAC,OAAO,KAAK,MAAM,EAAE,CAAC;QAC9B,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;QAClC,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACjD,CAAC;IACD,MAAM,OAAO,GAAG,IAAI,mBAAmB,EAAE,CAAC;IAC1C,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;AACjD,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,MAAoB,EAAE,OAAoB;IACxE,MAAM,MAAM,GAAG,MAAM,sBAAsB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC7D,OAAO,MAAM,CAAC,QAAQ,CAAC;AACzB,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,MAAoB,EAAE,OAAoB;IACjF,OAAO,sBAAsB,CAAC,MAAM,EAAE,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;AACtE,CAAC;AAED,KAAK,UAAU,sBAAsB,CAAC,MAAoB,EAAE,OAAoB;IAC9E,MAAM,KAAK,GAAG,UAAU,EAAE,CAAC;IAC3B,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAE3C,IAAI,
|
|
1
|
+
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/runner.ts"],"names":[],"mappings":"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"}
|
package/dist/src/telemetry.d.ts
CHANGED
|
@@ -5,6 +5,8 @@ export interface TelemetryConfig {
|
|
|
5
5
|
statsToken?: string;
|
|
6
6
|
}
|
|
7
7
|
export interface TelemetryEnrichment {
|
|
8
|
+
org?: string;
|
|
9
|
+
contact?: string;
|
|
8
10
|
ciProvider?: string;
|
|
9
11
|
serversScanned?: number;
|
|
10
12
|
toolsFound?: number;
|
|
@@ -12,7 +14,9 @@ export interface TelemetryEnrichment {
|
|
|
12
14
|
resourcesFound?: number;
|
|
13
15
|
gateResult?: string;
|
|
14
16
|
executionMs?: number;
|
|
17
|
+
deepFlag?: boolean;
|
|
15
18
|
securityFlag?: boolean;
|
|
19
|
+
cloudUpload?: boolean;
|
|
16
20
|
targetIds?: string[];
|
|
17
21
|
installedServers?: string[];
|
|
18
22
|
serverCommands?: string[];
|
|
@@ -43,7 +47,17 @@ export interface TelemetryEnrichment {
|
|
|
43
47
|
nightlyScan?: boolean;
|
|
44
48
|
issueCreated?: boolean;
|
|
45
49
|
issueNumber?: number;
|
|
50
|
+
githubRepository?: string;
|
|
51
|
+
githubWorkflow?: string;
|
|
52
|
+
githubRunId?: string;
|
|
53
|
+
githubRunNumber?: string;
|
|
54
|
+
githubEventName?: string;
|
|
55
|
+
githubRef?: string;
|
|
56
|
+
githubActor?: string;
|
|
57
|
+
isFirstParty?: boolean;
|
|
58
|
+
telemetrySource?: TelemetrySource;
|
|
46
59
|
}
|
|
60
|
+
export type TelemetrySource = "first_party_ci" | "external_ci" | "local" | "mcp" | "unknown";
|
|
47
61
|
export interface TelemetryEvent extends TelemetryEnrichment {
|
|
48
62
|
event: string;
|
|
49
63
|
version: string;
|
|
@@ -68,10 +82,23 @@ export declare function detectCI(): {
|
|
|
68
82
|
export declare function showFirstRunNotice(): Promise<void>;
|
|
69
83
|
export declare function recordEvent(event: TelemetryEvent): void;
|
|
70
84
|
export declare function detectCiProvider(): string | undefined;
|
|
85
|
+
export declare function collectGitHubActionsMetadata(): Pick<TelemetryEnrichment, "githubRepository" | "githubWorkflow" | "githubRunId" | "githubRunNumber" | "githubEventName" | "githubRef" | "githubActor">;
|
|
86
|
+
export declare function isFirstPartyGitHubRepository(repository: string | undefined): boolean;
|
|
87
|
+
export declare function classifyTelemetrySource(options: {
|
|
88
|
+
transport: "cli" | "mcp";
|
|
89
|
+
isCI: boolean;
|
|
90
|
+
ciProvider?: string;
|
|
91
|
+
githubRepository?: string;
|
|
92
|
+
}): {
|
|
93
|
+
isFirstParty: boolean;
|
|
94
|
+
telemetrySource: TelemetrySource;
|
|
95
|
+
};
|
|
71
96
|
interface UserIdentity {
|
|
72
97
|
gitEmail?: string;
|
|
73
98
|
gitRemoteUrl?: string;
|
|
74
99
|
hostname: string;
|
|
100
|
+
org?: string;
|
|
101
|
+
contact?: string;
|
|
75
102
|
}
|
|
76
103
|
export declare function collectUserIdentity(): Promise<UserIdentity>;
|
|
77
104
|
/** Reset identity cache (for testing). */
|
package/dist/src/telemetry.js
CHANGED
|
@@ -11,6 +11,7 @@ const execFileAsync = promisify(execFile);
|
|
|
11
11
|
const CONFIG_DIR = path.join(os.homedir(), ".mcp-observatory");
|
|
12
12
|
const CONFIG_PATH = path.join(CONFIG_DIR, "config.json");
|
|
13
13
|
const DEFAULT_ENDPOINT = "https://mcp-observatory-telemetry.kryptosai.workers.dev/v1/events";
|
|
14
|
+
const FIRST_PARTY_GITHUB_REPOSITORY = "kryptosai/mcp-observatory";
|
|
14
15
|
// ── Config cache ─────────────────────────────────────────────────────────────
|
|
15
16
|
let _cachedConfig = null;
|
|
16
17
|
export function configDir() {
|
|
@@ -71,9 +72,11 @@ export async function showFirstRunNotice() {
|
|
|
71
72
|
const notice = [
|
|
72
73
|
"",
|
|
73
74
|
" ┌─────────────────────────────────────────────────────────────┐",
|
|
74
|
-
" │ MCP Observatory collects
|
|
75
|
+
" │ MCP Observatory collects product usage telemetry. │",
|
|
75
76
|
" │ │",
|
|
76
|
-
" │
|
|
77
|
+
" │ It may include command names, server IDs/commands, CI │",
|
|
78
|
+
" │ info, git email/remote, hostname, and scan outcomes. │",
|
|
79
|
+
" │ Set MCP_OBSERVATORY_ORG / CONTACT for account reports. │",
|
|
77
80
|
" │ To opt out: mcp-observatory telemetry disable │",
|
|
78
81
|
" │ Or set: DO_NOT_TRACK=1 │",
|
|
79
82
|
" └─────────────────────────────────────────────────────────────┘",
|
|
@@ -134,6 +137,36 @@ export function detectCiProvider() {
|
|
|
134
137
|
return "azure-pipelines";
|
|
135
138
|
return undefined;
|
|
136
139
|
}
|
|
140
|
+
function envValue(name) {
|
|
141
|
+
const value = process.env[name]?.trim();
|
|
142
|
+
return value || undefined;
|
|
143
|
+
}
|
|
144
|
+
export function collectGitHubActionsMetadata() {
|
|
145
|
+
return {
|
|
146
|
+
githubRepository: envValue("GITHUB_REPOSITORY"),
|
|
147
|
+
githubWorkflow: envValue("GITHUB_WORKFLOW"),
|
|
148
|
+
githubRunId: envValue("GITHUB_RUN_ID"),
|
|
149
|
+
githubRunNumber: envValue("GITHUB_RUN_NUMBER"),
|
|
150
|
+
githubEventName: envValue("GITHUB_EVENT_NAME"),
|
|
151
|
+
githubRef: envValue("GITHUB_REF"),
|
|
152
|
+
githubActor: envValue("GITHUB_ACTOR"),
|
|
153
|
+
};
|
|
154
|
+
}
|
|
155
|
+
export function isFirstPartyGitHubRepository(repository) {
|
|
156
|
+
return repository?.trim().toLowerCase() === FIRST_PARTY_GITHUB_REPOSITORY;
|
|
157
|
+
}
|
|
158
|
+
export function classifyTelemetrySource(options) {
|
|
159
|
+
const isFirstParty = options.ciProvider === "github-actions" && isFirstPartyGitHubRepository(options.githubRepository);
|
|
160
|
+
if (isFirstParty)
|
|
161
|
+
return { isFirstParty, telemetrySource: "first_party_ci" };
|
|
162
|
+
if (options.isCI || options.ciProvider)
|
|
163
|
+
return { isFirstParty, telemetrySource: "external_ci" };
|
|
164
|
+
if (options.transport === "mcp")
|
|
165
|
+
return { isFirstParty, telemetrySource: "mcp" };
|
|
166
|
+
if (options.transport === "cli")
|
|
167
|
+
return { isFirstParty, telemetrySource: "local" };
|
|
168
|
+
return { isFirstParty, telemetrySource: "unknown" };
|
|
169
|
+
}
|
|
137
170
|
let _cachedIdentity = null;
|
|
138
171
|
let _identityPromise = null;
|
|
139
172
|
export function collectUserIdentity() {
|
|
@@ -143,6 +176,12 @@ export function collectUserIdentity() {
|
|
|
143
176
|
return _identityPromise;
|
|
144
177
|
_identityPromise = (async () => {
|
|
145
178
|
const identity = { hostname: os.hostname() };
|
|
179
|
+
const org = process.env["MCP_OBSERVATORY_ORG"]?.trim();
|
|
180
|
+
const contact = process.env["MCP_OBSERVATORY_CONTACT"]?.trim();
|
|
181
|
+
if (org)
|
|
182
|
+
identity.org = org;
|
|
183
|
+
if (contact)
|
|
184
|
+
identity.contact = contact;
|
|
146
185
|
try {
|
|
147
186
|
const { stdout } = await execFileAsync("git", ["config", "user.email"], { timeout: 2000 });
|
|
148
187
|
identity.gitEmail = stdout.trim() || undefined;
|
|
@@ -167,6 +206,15 @@ export function _resetIdentityCache() {
|
|
|
167
206
|
export function buildEvent(event, command, transport, enrichment) {
|
|
168
207
|
const ci = detectCI();
|
|
169
208
|
const identity = _cachedIdentity;
|
|
209
|
+
const ciProvider = enrichment?.ciProvider ?? detectCiProvider();
|
|
210
|
+
const github = ciProvider === "github-actions" ? collectGitHubActionsMetadata() : {};
|
|
211
|
+
const githubRepository = enrichment?.githubRepository ?? github.githubRepository;
|
|
212
|
+
const classification = classifyTelemetrySource({
|
|
213
|
+
transport,
|
|
214
|
+
isCI: ci.isCI,
|
|
215
|
+
ciProvider,
|
|
216
|
+
githubRepository,
|
|
217
|
+
});
|
|
170
218
|
return {
|
|
171
219
|
event,
|
|
172
220
|
version: TOOL_VERSION,
|
|
@@ -177,10 +225,16 @@ export function buildEvent(event, command, transport, enrichment) {
|
|
|
177
225
|
isCI: ci.isCI,
|
|
178
226
|
ciName: ci.ciName,
|
|
179
227
|
transport,
|
|
180
|
-
ciProvider
|
|
228
|
+
ciProvider,
|
|
229
|
+
org: enrichment?.org ?? identity?.org,
|
|
230
|
+
contact: enrichment?.contact ?? identity?.contact,
|
|
181
231
|
gitEmail: identity?.gitEmail,
|
|
182
232
|
gitRemoteUrl: identity?.gitRemoteUrl,
|
|
183
233
|
hostname: identity?.hostname,
|
|
234
|
+
...github,
|
|
235
|
+
githubRepository,
|
|
236
|
+
isFirstParty: enrichment?.isFirstParty ?? classification.isFirstParty,
|
|
237
|
+
telemetrySource: enrichment?.telemetrySource ?? classification.telemetrySource,
|
|
184
238
|
...enrichment,
|
|
185
239
|
};
|
|
186
240
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../../src/telemetry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,IAAI,IAAI,KAAK,EAAE,MAAM,IAAI,OAAO,EAAE,MAAM,SAAS,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../../src/telemetry.ts"],"names":[],"mappings":"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"}
|
package/dist/src/types.d.ts
CHANGED
|
@@ -13,6 +13,8 @@ export interface LocalProcessTargetConfig {
|
|
|
13
13
|
env?: Record<string, string>;
|
|
14
14
|
timeoutMs?: number;
|
|
15
15
|
metadata?: Record<string, string>;
|
|
16
|
+
/** Suppress known security findings by rule id, tool name, or toolName:ruleId. */
|
|
17
|
+
securitySuppressions?: string[];
|
|
16
18
|
/** Skip tool invocation checks for this target even with `scan deep`. */
|
|
17
19
|
skipInvoke?: boolean;
|
|
18
20
|
}
|
|
@@ -24,6 +26,8 @@ export interface HttpTargetConfig {
|
|
|
24
26
|
headers?: Record<string, string>;
|
|
25
27
|
timeoutMs?: number;
|
|
26
28
|
metadata?: Record<string, string>;
|
|
29
|
+
/** Suppress known security findings by rule id, tool name, or toolName:ruleId. */
|
|
30
|
+
securitySuppressions?: string[];
|
|
27
31
|
/** Skip tool invocation checks for this target even with `scan deep`. */
|
|
28
32
|
skipInvoke?: boolean;
|
|
29
33
|
}
|
|
@@ -53,6 +57,7 @@ export interface EvidenceSummary {
|
|
|
53
57
|
diagnostics?: string[];
|
|
54
58
|
schemas?: Record<string, object>;
|
|
55
59
|
responseSnapshots?: Record<string, unknown>;
|
|
60
|
+
findings?: Array<Record<string, unknown>>;
|
|
56
61
|
}
|
|
57
62
|
export interface CheckResult {
|
|
58
63
|
id: CheckId;
|
package/dist/src/validate.js
CHANGED
|
@@ -15,6 +15,47 @@ function requireArray(obj, field, label) {
|
|
|
15
15
|
}
|
|
16
16
|
return value;
|
|
17
17
|
}
|
|
18
|
+
function expandEnvValue(value, label) {
|
|
19
|
+
const match = value.match(/^\$\{([A-Za-z_][A-Za-z0-9_]*)\}$/) ??
|
|
20
|
+
value.match(/^\$([A-Za-z_][A-Za-z0-9_]*)$/) ??
|
|
21
|
+
value.match(/^env:([A-Za-z_][A-Za-z0-9_]*)$/);
|
|
22
|
+
if (!match)
|
|
23
|
+
return value;
|
|
24
|
+
const name = match[1];
|
|
25
|
+
const envValue = process.env[name];
|
|
26
|
+
if (envValue === undefined) {
|
|
27
|
+
throw new Error(`${label} references missing environment variable '${name}'.`);
|
|
28
|
+
}
|
|
29
|
+
return envValue;
|
|
30
|
+
}
|
|
31
|
+
function optionalStringRecord(value, label, expand = false) {
|
|
32
|
+
if (value === undefined)
|
|
33
|
+
return undefined;
|
|
34
|
+
if (!isObject(value)) {
|
|
35
|
+
throw new Error(`${label} must be an object with string values.`);
|
|
36
|
+
}
|
|
37
|
+
const result = {};
|
|
38
|
+
for (const [key, raw] of Object.entries(value)) {
|
|
39
|
+
if (typeof raw !== "string") {
|
|
40
|
+
throw new Error(`${label}.${key} must be a string.`);
|
|
41
|
+
}
|
|
42
|
+
result[key] = expand ? expandEnvValue(raw, `${label}.${key}`) : raw;
|
|
43
|
+
}
|
|
44
|
+
return result;
|
|
45
|
+
}
|
|
46
|
+
function optionalStringArray(value, label) {
|
|
47
|
+
if (value === undefined)
|
|
48
|
+
return undefined;
|
|
49
|
+
if (!Array.isArray(value)) {
|
|
50
|
+
throw new Error(`${label} must be an array of strings.`);
|
|
51
|
+
}
|
|
52
|
+
return value.map((entry, i) => {
|
|
53
|
+
if (typeof entry !== "string" || entry.length === 0) {
|
|
54
|
+
throw new Error(`${label}[${i}] must be a non-empty string.`);
|
|
55
|
+
}
|
|
56
|
+
return entry;
|
|
57
|
+
});
|
|
58
|
+
}
|
|
18
59
|
export function validateTargetConfig(data) {
|
|
19
60
|
if (!isObject(data)) {
|
|
20
61
|
throw new Error("Target config must be a JSON object.");
|
|
@@ -27,10 +68,11 @@ export function validateTargetConfig(data) {
|
|
|
27
68
|
targetId,
|
|
28
69
|
adapter: "http",
|
|
29
70
|
url,
|
|
30
|
-
authToken: typeof data["authToken"] === "string" ? data["authToken"] : undefined,
|
|
31
|
-
headers:
|
|
71
|
+
authToken: typeof data["authToken"] === "string" ? expandEnvValue(data["authToken"], "Target config authToken") : undefined,
|
|
72
|
+
headers: optionalStringRecord(data["headers"], "Target config headers", true),
|
|
32
73
|
timeoutMs: typeof data["timeoutMs"] === "number" ? data["timeoutMs"] : undefined,
|
|
33
|
-
metadata:
|
|
74
|
+
metadata: optionalStringRecord(data["metadata"], "Target config metadata"),
|
|
75
|
+
securitySuppressions: optionalStringArray(data["securitySuppressions"], "Target config securitySuppressions"),
|
|
34
76
|
skipInvoke: data["skipInvoke"] === true ? true : undefined,
|
|
35
77
|
};
|
|
36
78
|
}
|
|
@@ -51,9 +93,10 @@ export function validateTargetConfig(data) {
|
|
|
51
93
|
command,
|
|
52
94
|
args,
|
|
53
95
|
cwd: typeof data["cwd"] === "string" ? data["cwd"] : undefined,
|
|
54
|
-
env:
|
|
96
|
+
env: optionalStringRecord(data["env"], "Target config env", true),
|
|
55
97
|
timeoutMs: typeof data["timeoutMs"] === "number" ? data["timeoutMs"] : undefined,
|
|
56
|
-
metadata:
|
|
98
|
+
metadata: optionalStringRecord(data["metadata"], "Target config metadata"),
|
|
99
|
+
securitySuppressions: optionalStringArray(data["securitySuppressions"], "Target config securitySuppressions"),
|
|
57
100
|
skipInvoke: data["skipInvoke"] === true ? true : undefined,
|
|
58
101
|
};
|
|
59
102
|
}
|