@kryptosai/mcp-observatory 0.21.0 → 0.22.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/README.md +3 -3
- package/dist/src/commands/init-ci.d.ts +16 -2
- package/dist/src/commands/init-ci.js +134 -2
- package/dist/src/commands/init-ci.js.map +1 -1
- package/dist/src/reporters/common.d.ts +16 -0
- package/dist/src/reporters/common.js +76 -0
- package/dist/src/reporters/common.js.map +1 -1
- package/dist/src/reporters/html.js +20 -0
- package/dist/src/reporters/html.js.map +1 -1
- package/dist/src/reporters/markdown.js +14 -2
- package/dist/src/reporters/markdown.js.map +1 -1
- package/dist/src/reporters/pr-comment.js +18 -1
- package/dist/src/reporters/pr-comment.js.map +1 -1
- package/dist/src/reporters/terminal.js +9 -1
- package/dist/src/reporters/terminal.js.map +1 -1
- package/docs/certification-campaign-template.md +41 -27
- package/docs/certification-distribution.md +5 -1
- package/docs/compatibility.md +2 -2
- package/docs/directory-listing-copy.md +1 -1
- package/docs/mcp-safety-report-latest.md +2 -2
- package/docs/publish-readiness.md +4 -0
- package/package.json +4 -2
package/README.md
CHANGED
|
@@ -25,7 +25,7 @@ MCP Observatory gives MCP servers the production safety rails every dependency e
|
|
|
25
25
|
Add MCP CI in one command:
|
|
26
26
|
|
|
27
27
|
```bash
|
|
28
|
-
npx @kryptosai/mcp-observatory init-ci --command "npx -y my-mcp-server"
|
|
28
|
+
npx @kryptosai/mcp-observatory init-ci --all --command "npx -y my-mcp-server"
|
|
29
29
|
```
|
|
30
30
|
|
|
31
31
|
Or test a server immediately:
|
|
@@ -48,7 +48,7 @@ MCP servers are becoming production dependencies. If agents rely on them, teams
|
|
|
48
48
|
|
|
49
49
|
Observatory gives maintainers and teams:
|
|
50
50
|
|
|
51
|
-
- **One-command CI setup** with `init-ci`
|
|
51
|
+
- **One-command CI setup** with `init-ci --all`
|
|
52
52
|
- **GitHub PR comments** for compatibility, drift, and security findings
|
|
53
53
|
- **Health score badges** for public trust signals
|
|
54
54
|
- **Record/replay/verify** workflows for regression testing
|
|
@@ -201,7 +201,7 @@ When you run `scan`, it looks for MCP configs in:
|
|
|
201
201
|
Add Observatory to your MCP server's CI pipeline:
|
|
202
202
|
|
|
203
203
|
```bash
|
|
204
|
-
npx @kryptosai/mcp-observatory init-ci --command "npx -y my-mcp-server"
|
|
204
|
+
npx @kryptosai/mcp-observatory init-ci --all --command "npx -y my-mcp-server"
|
|
205
205
|
```
|
|
206
206
|
|
|
207
207
|
Or create the workflow manually:
|
|
@@ -5,13 +5,27 @@ export interface InitCiOptions {
|
|
|
5
5
|
workflow?: string;
|
|
6
6
|
badgeFile?: string;
|
|
7
7
|
badge?: boolean;
|
|
8
|
+
targetConfig?: string | boolean;
|
|
9
|
+
prBody?: string | boolean;
|
|
10
|
+
issueBody?: string | boolean;
|
|
11
|
+
scoreBadge?: string | boolean;
|
|
12
|
+
all?: boolean;
|
|
8
13
|
force?: boolean;
|
|
9
14
|
}
|
|
10
|
-
export
|
|
15
|
+
export interface InitCiResult {
|
|
11
16
|
workflowStatus: string;
|
|
12
17
|
badgeStatus?: string;
|
|
18
|
+
targetConfigStatus?: string;
|
|
19
|
+
prBodyStatus?: string;
|
|
20
|
+
issueBodyStatus?: string;
|
|
21
|
+
scoreBadgeStatus?: string;
|
|
13
22
|
workflowPath: string;
|
|
14
23
|
badgePath?: string;
|
|
15
|
-
|
|
24
|
+
targetConfigPath?: string;
|
|
25
|
+
prBodyPath?: string;
|
|
26
|
+
issueBodyPath?: string;
|
|
27
|
+
scoreBadgePath?: string;
|
|
28
|
+
}
|
|
29
|
+
export declare function initCi(options: InitCiOptions): Promise<InitCiResult>;
|
|
16
30
|
export declare function registerInitCiCommands(program: Command): void;
|
|
17
31
|
export declare function readGeneratedWorkflow(filePath: string): Promise<string>;
|
|
@@ -3,6 +3,10 @@ import path from "node:path";
|
|
|
3
3
|
import { buildEvent, recordEvent } from "../telemetry.js";
|
|
4
4
|
const DEFAULT_WORKFLOW_PATH = ".github/workflows/mcp-observatory.yml";
|
|
5
5
|
const DEFAULT_BADGE_PATH = "docs/mcp-observatory-badge.md";
|
|
6
|
+
const DEFAULT_TARGET_CONFIG_PATH = "mcp-observatory.target.json";
|
|
7
|
+
const DEFAULT_PR_BODY_PATH = "docs/mcp-observatory-pr-body.md";
|
|
8
|
+
const DEFAULT_ISSUE_BODY_PATH = "docs/mcp-observatory-issue.md";
|
|
9
|
+
const DEFAULT_SCORE_BADGE_PATH = "docs/mcp-observatory-score-badge.md";
|
|
6
10
|
async function exists(filePath) {
|
|
7
11
|
try {
|
|
8
12
|
await access(filePath);
|
|
@@ -34,6 +38,9 @@ function workflowYaml(options) {
|
|
|
34
38
|
if (target) {
|
|
35
39
|
lines.push(` target: ${target}`);
|
|
36
40
|
}
|
|
41
|
+
else if (shouldWrite(options.targetConfig, options.all)) {
|
|
42
|
+
lines.push(` target: ${optionPath(options.targetConfig, DEFAULT_TARGET_CONFIG_PATH)}`);
|
|
43
|
+
}
|
|
37
44
|
else {
|
|
38
45
|
lines.push(` command: ${command ?? "npx -y <server-package>"}`);
|
|
39
46
|
}
|
|
@@ -48,6 +55,91 @@ function badgeMarkdown() {
|
|
|
48
55
|
"",
|
|
49
56
|
].join("\n");
|
|
50
57
|
}
|
|
58
|
+
function splitCommand(command) {
|
|
59
|
+
return command.match(/"[^"]*"|'[^']*'|\S+/g)?.map((part) => part.replace(/^["']|["']$/g, "")) ?? [];
|
|
60
|
+
}
|
|
61
|
+
function targetConfigJson(options) {
|
|
62
|
+
const command = options.command?.trim() || "npx -y <server-package>";
|
|
63
|
+
const [bin = "npx", ...args] = splitCommand(command);
|
|
64
|
+
return JSON.stringify({
|
|
65
|
+
targetId: "mcp-server",
|
|
66
|
+
adapter: "local-process",
|
|
67
|
+
command: bin,
|
|
68
|
+
args,
|
|
69
|
+
timeoutMs: 15000,
|
|
70
|
+
metadata: {
|
|
71
|
+
observatory: "generated-by-init-ci",
|
|
72
|
+
},
|
|
73
|
+
}, null, 2) + "\n";
|
|
74
|
+
}
|
|
75
|
+
function prBodyMarkdown(options) {
|
|
76
|
+
const command = options.command?.trim();
|
|
77
|
+
const target = options.target?.trim() ?? (shouldWrite(options.targetConfig, options.all) ? optionPath(options.targetConfig, DEFAULT_TARGET_CONFIG_PATH) : undefined);
|
|
78
|
+
const setupLine = target
|
|
79
|
+
? `This PR adds an MCP Observatory GitHub Action that checks \`${target}\` on pull requests and pushes.`
|
|
80
|
+
: `This PR adds an MCP Observatory GitHub Action that checks \`${command ?? "the MCP server"}\` on pull requests and pushes.`;
|
|
81
|
+
return [
|
|
82
|
+
"## Add MCP Observatory CI",
|
|
83
|
+
"",
|
|
84
|
+
setupLine,
|
|
85
|
+
"",
|
|
86
|
+
"Why this helps:",
|
|
87
|
+
"- catches MCP compatibility regressions before release",
|
|
88
|
+
"- surfaces schema drift and common security issues",
|
|
89
|
+
"- publishes a small PR report for maintainers",
|
|
90
|
+
"- adds an optional README trust badge",
|
|
91
|
+
"",
|
|
92
|
+
"This does not require an MCP Observatory account. If the check is too strict at first, the workflow can be adjusted while keeping the report visible.",
|
|
93
|
+
"",
|
|
94
|
+
"Generated by:",
|
|
95
|
+
"",
|
|
96
|
+
"```bash",
|
|
97
|
+
"npx @kryptosai/mcp-observatory init-ci --all --command \"npx -y <server-package>\"",
|
|
98
|
+
"```",
|
|
99
|
+
"",
|
|
100
|
+
].join("\n");
|
|
101
|
+
}
|
|
102
|
+
function issueBodyMarkdown(options) {
|
|
103
|
+
const command = options.command?.trim() ?? "npx -y <server-package>";
|
|
104
|
+
return [
|
|
105
|
+
"## Add MCP Observatory compatibility/security checks",
|
|
106
|
+
"",
|
|
107
|
+
"This project appears to expose an MCP server. MCP Observatory can add a lightweight GitHub Action that checks MCP compatibility, schema drift, and common security issues before agents depend on a release.",
|
|
108
|
+
"",
|
|
109
|
+
"Suggested setup:",
|
|
110
|
+
"",
|
|
111
|
+
"```bash",
|
|
112
|
+
`npx @kryptosai/mcp-observatory init-ci --all --command "${command.replaceAll("\"", "\\\"")}"`,
|
|
113
|
+
"```",
|
|
114
|
+
"",
|
|
115
|
+
"The generated workflow runs on pull requests and pushes, comments a concise report, and can include a README badge if maintainers want a public trust signal.",
|
|
116
|
+
"",
|
|
117
|
+
].join("\n");
|
|
118
|
+
}
|
|
119
|
+
function scoreBadgeMarkdown() {
|
|
120
|
+
return [
|
|
121
|
+
"# MCP Observatory Score Badge",
|
|
122
|
+
"",
|
|
123
|
+
"Generate a score badge after a successful local check:",
|
|
124
|
+
"",
|
|
125
|
+
"```bash",
|
|
126
|
+
"npx @kryptosai/mcp-observatory badge npx -y <server-package> --output docs/mcp-health.svg",
|
|
127
|
+
"```",
|
|
128
|
+
"",
|
|
129
|
+
"Then add this to your README:",
|
|
130
|
+
"",
|
|
131
|
+
"```markdown",
|
|
132
|
+
"[](https://github.com/KryptosAI/mcp-observatory)",
|
|
133
|
+
"```",
|
|
134
|
+
"",
|
|
135
|
+
].join("\n");
|
|
136
|
+
}
|
|
137
|
+
function shouldWrite(value, all) {
|
|
138
|
+
return all === true || value !== undefined && value !== false;
|
|
139
|
+
}
|
|
140
|
+
function optionPath(value, fallback) {
|
|
141
|
+
return typeof value === "string" && value.length > 0 ? value : fallback;
|
|
142
|
+
}
|
|
51
143
|
async function writeFileOnce(filePath, content, force) {
|
|
52
144
|
const alreadyExists = await exists(filePath);
|
|
53
145
|
if (alreadyExists && !force)
|
|
@@ -60,6 +152,9 @@ export async function initCi(options) {
|
|
|
60
152
|
if (options.command && options.target) {
|
|
61
153
|
throw new Error("Use either --command or --target, not both.");
|
|
62
154
|
}
|
|
155
|
+
if (options.target && shouldWrite(options.targetConfig, options.all)) {
|
|
156
|
+
throw new Error("Use either --target or --target-config, not both.");
|
|
157
|
+
}
|
|
63
158
|
const workflowPath = options.workflow ?? DEFAULT_WORKFLOW_PATH;
|
|
64
159
|
const badgePath = options.badgeFile ?? DEFAULT_BADGE_PATH;
|
|
65
160
|
const workflowStatus = await writeFileOnce(workflowPath, workflowYaml(options), options.force === true);
|
|
@@ -67,10 +162,30 @@ export async function initCi(options) {
|
|
|
67
162
|
workflowStatus,
|
|
68
163
|
workflowPath,
|
|
69
164
|
};
|
|
70
|
-
if (options.badge) {
|
|
165
|
+
if (options.badge || options.all) {
|
|
71
166
|
result.badgeStatus = await writeFileOnce(badgePath, badgeMarkdown(), options.force === true);
|
|
72
167
|
result.badgePath = badgePath;
|
|
73
168
|
}
|
|
169
|
+
if (shouldWrite(options.targetConfig, options.all)) {
|
|
170
|
+
const targetConfigPath = optionPath(options.targetConfig, DEFAULT_TARGET_CONFIG_PATH);
|
|
171
|
+
result.targetConfigStatus = await writeFileOnce(targetConfigPath, targetConfigJson(options), options.force === true);
|
|
172
|
+
result.targetConfigPath = targetConfigPath;
|
|
173
|
+
}
|
|
174
|
+
if (shouldWrite(options.prBody, options.all)) {
|
|
175
|
+
const prBodyPath = optionPath(options.prBody, DEFAULT_PR_BODY_PATH);
|
|
176
|
+
result.prBodyStatus = await writeFileOnce(prBodyPath, prBodyMarkdown(options), options.force === true);
|
|
177
|
+
result.prBodyPath = prBodyPath;
|
|
178
|
+
}
|
|
179
|
+
if (shouldWrite(options.issueBody, options.all)) {
|
|
180
|
+
const issueBodyPath = optionPath(options.issueBody, DEFAULT_ISSUE_BODY_PATH);
|
|
181
|
+
result.issueBodyStatus = await writeFileOnce(issueBodyPath, issueBodyMarkdown(options), options.force === true);
|
|
182
|
+
result.issueBodyPath = issueBodyPath;
|
|
183
|
+
}
|
|
184
|
+
if (shouldWrite(options.scoreBadge, options.all)) {
|
|
185
|
+
const scoreBadgePath = optionPath(options.scoreBadge, DEFAULT_SCORE_BADGE_PATH);
|
|
186
|
+
result.scoreBadgeStatus = await writeFileOnce(scoreBadgePath, scoreBadgeMarkdown(), options.force === true);
|
|
187
|
+
result.scoreBadgePath = scoreBadgePath;
|
|
188
|
+
}
|
|
74
189
|
return result;
|
|
75
190
|
}
|
|
76
191
|
export function registerInitCiCommands(program) {
|
|
@@ -82,6 +197,11 @@ export function registerInitCiCommands(program) {
|
|
|
82
197
|
.option("--workflow <file>", "Workflow output path.", DEFAULT_WORKFLOW_PATH)
|
|
83
198
|
.option("--badge", "Also write a README badge snippet.", false)
|
|
84
199
|
.option("--badge-file <file>", "Badge snippet output path.", DEFAULT_BADGE_PATH)
|
|
200
|
+
.option("--target-config [file]", "Also write an example target config and point the workflow at it.")
|
|
201
|
+
.option("--pr-body [file]", "Also write a maintainer PR body.")
|
|
202
|
+
.option("--issue-body [file]", "Also write an issue-only fallback body.")
|
|
203
|
+
.option("--score-badge [file]", "Also write score badge generation instructions.")
|
|
204
|
+
.option("--all", "Write the full adoption kit: workflow, badge, target config, PR body, issue body, and score badge instructions.", false)
|
|
85
205
|
.option("--force", "Overwrite existing files.", false)
|
|
86
206
|
.action(async (options) => {
|
|
87
207
|
const result = await initCi(options);
|
|
@@ -90,10 +210,22 @@ export function registerInitCiCommands(program) {
|
|
|
90
210
|
if (result.badgePath && result.badgeStatus) {
|
|
91
211
|
process.stdout.write(`${result.badgeStatus}: ${result.badgePath}\n`);
|
|
92
212
|
}
|
|
213
|
+
if (result.targetConfigPath && result.targetConfigStatus) {
|
|
214
|
+
process.stdout.write(`${result.targetConfigStatus}: ${result.targetConfigPath}\n`);
|
|
215
|
+
}
|
|
216
|
+
if (result.prBodyPath && result.prBodyStatus) {
|
|
217
|
+
process.stdout.write(`${result.prBodyStatus}: ${result.prBodyPath}\n`);
|
|
218
|
+
}
|
|
219
|
+
if (result.issueBodyPath && result.issueBodyStatus) {
|
|
220
|
+
process.stdout.write(`${result.issueBodyStatus}: ${result.issueBodyPath}\n`);
|
|
221
|
+
}
|
|
222
|
+
if (result.scoreBadgePath && result.scoreBadgeStatus) {
|
|
223
|
+
process.stdout.write(`${result.scoreBadgeStatus}: ${result.scoreBadgePath}\n`);
|
|
224
|
+
}
|
|
93
225
|
if (skipped) {
|
|
94
226
|
process.stdout.write("Use --force to overwrite existing files.\n");
|
|
95
227
|
}
|
|
96
|
-
process.stdout.write("Next: commit the workflow, open a PR, and
|
|
228
|
+
process.stdout.write("Next: commit the workflow, open a PR, and paste the generated PR body if present.\n");
|
|
97
229
|
recordEvent(buildEvent("command_complete", "init-ci", "cli", {
|
|
98
230
|
ciProvider: "github-actions",
|
|
99
231
|
commitStatusSet: !skipped,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init-ci.js","sourceRoot":"","sources":["../../../src/commands/init-ci.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACtE,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"init-ci.js","sourceRoot":"","sources":["../../../src/commands/init-ci.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,4 +4,20 @@ export declare function findChecksByStatus(checks: CheckResult[], status: CheckS
|
|
|
4
4
|
export declare function describeCheckList(checks: CheckResult[]): string;
|
|
5
5
|
export declare function focusLabel(status: CheckStatus): string;
|
|
6
6
|
export declare function previewList(values: string[] | undefined, limit?: number): string;
|
|
7
|
+
export type SafetyVerdict = "Ready" | "Needs review" | "Blocked";
|
|
8
|
+
export interface SafetySummary {
|
|
9
|
+
verdict: SafetyVerdict;
|
|
10
|
+
reason: string;
|
|
11
|
+
topRisks: string[];
|
|
12
|
+
regressionSummary: string;
|
|
13
|
+
nextActions: string[];
|
|
14
|
+
ciCta: string;
|
|
15
|
+
}
|
|
7
16
|
export declare function recommendRunNextStep(artifact: RunArtifact): string;
|
|
17
|
+
export declare function summarizeRunSafety(artifact: RunArtifact): SafetySummary;
|
|
18
|
+
export declare function summarizeDiffSafety(artifact: {
|
|
19
|
+
gate: string;
|
|
20
|
+
regressions: unknown[];
|
|
21
|
+
schemaDrift?: unknown[];
|
|
22
|
+
responseChanges?: unknown[];
|
|
23
|
+
}): SafetySummary;
|
|
@@ -60,4 +60,80 @@ export function recommendRunNextStep(artifact) {
|
|
|
60
60
|
}
|
|
61
61
|
return "Save this run artifact and diff it against the next meaningful server or package change.";
|
|
62
62
|
}
|
|
63
|
+
function checkRiskLabel(check) {
|
|
64
|
+
return `${check.id}: ${check.message}`;
|
|
65
|
+
}
|
|
66
|
+
function riskList(artifact) {
|
|
67
|
+
const risks = [];
|
|
68
|
+
if (artifact.fatalError) {
|
|
69
|
+
risks.push("startup: server failed to start");
|
|
70
|
+
}
|
|
71
|
+
for (const check of sortChecksByActionability(artifact.checks)) {
|
|
72
|
+
if (check.status === "fail" || check.status === "partial" || check.status === "flaky") {
|
|
73
|
+
risks.push(checkRiskLabel(check));
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
return risks.slice(0, 3);
|
|
77
|
+
}
|
|
78
|
+
export function summarizeRunSafety(artifact) {
|
|
79
|
+
const failingChecks = findChecksByStatus(artifact.checks, "fail");
|
|
80
|
+
const partialChecks = [
|
|
81
|
+
...findChecksByStatus(artifact.checks, "partial"),
|
|
82
|
+
...findChecksByStatus(artifact.checks, "flaky"),
|
|
83
|
+
];
|
|
84
|
+
const unsupportedChecks = findChecksByStatus(artifact.checks, "unsupported");
|
|
85
|
+
const score = artifact.healthScore?.overall;
|
|
86
|
+
const verdict = artifact.fatalError || artifact.gate === "fail" || failingChecks.length > 0 || (typeof score === "number" && score < 60)
|
|
87
|
+
? "Blocked"
|
|
88
|
+
: partialChecks.length > 0 || unsupportedChecks.length > 0 || (typeof score === "number" && score < 80)
|
|
89
|
+
? "Needs review"
|
|
90
|
+
: "Ready";
|
|
91
|
+
const reason = verdict === "Ready"
|
|
92
|
+
? "No blocking MCP compatibility or security issues were detected."
|
|
93
|
+
: verdict === "Blocked"
|
|
94
|
+
? "One or more checks can break agent dependence and should be fixed before production use."
|
|
95
|
+
: "The server is usable, but caveated checks should be reviewed before agents depend on it.";
|
|
96
|
+
const topRisks = riskList(artifact);
|
|
97
|
+
return {
|
|
98
|
+
verdict,
|
|
99
|
+
reason,
|
|
100
|
+
topRisks: topRisks.length > 0 ? topRisks : ["No high-priority risks detected."],
|
|
101
|
+
regressionSummary: "Run `mcp-observatory diff <previous-run.json> <current-run.json>` to classify regressions and schema drift.",
|
|
102
|
+
nextActions: [
|
|
103
|
+
recommendRunNextStep(artifact),
|
|
104
|
+
"Add MCP Observatory to CI so every server change gets the same check.",
|
|
105
|
+
],
|
|
106
|
+
ciCta: "Add CI: npx @kryptosai/mcp-observatory init-ci --all --command \"npx -y <server-package>\"",
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
export function summarizeDiffSafety(artifact) {
|
|
110
|
+
const driftCount = artifact.schemaDrift?.length ?? 0;
|
|
111
|
+
const responseChangeCount = artifact.responseChanges?.length ?? 0;
|
|
112
|
+
const regressionCount = artifact.regressions.length;
|
|
113
|
+
const verdict = artifact.gate === "fail" || regressionCount > 0
|
|
114
|
+
? "Blocked"
|
|
115
|
+
: driftCount > 0 || responseChangeCount > 0
|
|
116
|
+
? "Needs review"
|
|
117
|
+
: "Ready";
|
|
118
|
+
const topRisks = [
|
|
119
|
+
regressionCount > 0 ? `${regressionCount} regression${regressionCount === 1 ? "" : "s"} detected` : undefined,
|
|
120
|
+
driftCount > 0 ? `${driftCount} schema drift item${driftCount === 1 ? "" : "s"} detected` : undefined,
|
|
121
|
+
responseChangeCount > 0 ? `${responseChangeCount} response change${responseChangeCount === 1 ? "" : "s"} detected` : undefined,
|
|
122
|
+
].filter((entry) => Boolean(entry));
|
|
123
|
+
return {
|
|
124
|
+
verdict,
|
|
125
|
+
reason: verdict === "Ready"
|
|
126
|
+
? "No regressions, schema drift, or response changes were detected."
|
|
127
|
+
: verdict === "Blocked"
|
|
128
|
+
? "Regressions can break dependent agents and should be fixed or intentionally accepted."
|
|
129
|
+
: "Schema or response changes were detected and should be reviewed before release.",
|
|
130
|
+
topRisks: topRisks.length > 0 ? topRisks.slice(0, 3) : ["No high-priority risks detected."],
|
|
131
|
+
regressionSummary: `Regressions: ${regressionCount}; schema drift: ${driftCount}; response changes: ${responseChangeCount}.`,
|
|
132
|
+
nextActions: [
|
|
133
|
+
regressionCount > 0 ? "Fix or explicitly accept the listed regressions before release." : "Save this diff as release evidence.",
|
|
134
|
+
"Keep this comparison running in CI for future MCP server changes.",
|
|
135
|
+
],
|
|
136
|
+
ciCta: "Add CI: npx @kryptosai/mcp-observatory init-ci --all --command \"npx -y <server-package>\"",
|
|
137
|
+
};
|
|
138
|
+
}
|
|
63
139
|
//# sourceMappingURL=common.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../../src/reporters/common.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,MAAM,eAAe,GAAgC,MAAM,CAAC,WAAW,CACrE,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC,CACtC,CAAC;AAEjC,MAAM,UAAU,yBAAyB,CAAC,MAAqB;IAC7D,OAAO,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QACtC,MAAM,YAAY,GAAG,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAClF,IAAI,YAAY,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO,YAAY,CAAC;QACtB,CAAC;QACD,OAAO,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,MAAqB,EACrB,MAAmB;IAEnB,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC;AAC3D,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,MAAqB;IACrD,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;AACjF,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,MAAmB;IAC5C,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,MAAM;YACT,OAAO,SAAS,CAAC;QACnB,KAAK,SAAS,CAAC;QACf,KAAK,OAAO;YACV,OAAO,QAAQ,CAAC;QAClB,KAAK,SAAS;YACZ,OAAO,iBAAiB,CAAC;QAC3B,KAAK,aAAa;YAChB,OAAO,gBAAgB,CAAC;QAC1B,KAAK,MAAM;YACT,OAAO,SAAS,CAAC;IACrB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,MAA4B,EAAE,KAAK,GAAG,CAAC;IACjE,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,IAAI,KAAK,EAAE,CAAC;QAC3B,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;IAED,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,MAAM,CAAC,MAAM,GAAG,KAAK,QAAQ,CAAC;AACjF,CAAC;
|
|
1
|
+
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../../src/reporters/common.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { summarizeDiffSafety, summarizeRunSafety } from "./common.js";
|
|
1
2
|
function esc(text) {
|
|
2
3
|
return text
|
|
3
4
|
.replace(/&/g, "&")
|
|
@@ -21,6 +22,10 @@ function gateBadge(gate) {
|
|
|
21
22
|
const bg = gate === "pass" ? "#22c55e" : "#ef4444";
|
|
22
23
|
return `<span style="display:inline-block;padding:4px 12px;border-radius:6px;background:${bg};color:#fff;font-size:14px;font-weight:700">${esc(gate).toUpperCase()}</span>`;
|
|
23
24
|
}
|
|
25
|
+
function verdictBadge(verdict) {
|
|
26
|
+
const bg = verdict === "Ready" ? "#22c55e" : verdict === "Needs review" ? "#eab308" : "#ef4444";
|
|
27
|
+
return `<span style="display:inline-block;padding:4px 12px;border-radius:6px;background:${bg};color:#fff;font-size:14px;font-weight:700">${esc(verdict)}</span>`;
|
|
28
|
+
}
|
|
24
29
|
function checksTable(checks) {
|
|
25
30
|
const rows = checks.map((c) => `
|
|
26
31
|
<tr>
|
|
@@ -115,6 +120,7 @@ function schemaDriftSection(drift) {
|
|
|
115
120
|
}
|
|
116
121
|
function renderRunHtml(artifact) {
|
|
117
122
|
const serverLabel = [artifact.target.serverName, artifact.target.serverVersion].filter(Boolean).join(" ") || "unknown";
|
|
123
|
+
const safety = summarizeRunSafety(artifact);
|
|
118
124
|
return `<!DOCTYPE html>
|
|
119
125
|
<html lang="en">
|
|
120
126
|
<head>
|
|
@@ -143,6 +149,13 @@ function renderRunHtml(artifact) {
|
|
|
143
149
|
<div class="card">
|
|
144
150
|
<div style="display:flex;align-items:center;gap:16px;margin-bottom:12px">
|
|
145
151
|
<div style="font-size:16px;font-weight:600">Gate: ${gateBadge(artifact.gate)}</div>
|
|
152
|
+
<div style="font-size:16px;font-weight:600">Safety: ${verdictBadge(safety.verdict)}</div>
|
|
153
|
+
</div>
|
|
154
|
+
<p style="margin:0 0 12px;color:#374151">${esc(safety.reason)}</p>
|
|
155
|
+
<div style="font-size:13px;margin-bottom:12px">
|
|
156
|
+
<strong>Top risks:</strong> ${esc(safety.topRisks.join("; "))}<br>
|
|
157
|
+
<strong>Next action:</strong> ${esc(safety.nextActions[0] ?? "")}<br>
|
|
158
|
+
<strong>CI:</strong> <code>${esc(safety.ciCta)}</code>
|
|
146
159
|
</div>
|
|
147
160
|
<div style="font-size:13px;color:#6b7280">
|
|
148
161
|
<div><strong>Target:</strong> ${esc(artifact.target.targetId)} (${esc(artifact.target.adapter)})</div>
|
|
@@ -167,6 +180,7 @@ function renderRunHtml(artifact) {
|
|
|
167
180
|
</html>`;
|
|
168
181
|
}
|
|
169
182
|
function renderDiffHtml(artifact) {
|
|
183
|
+
const safety = summarizeDiffSafety(artifact);
|
|
170
184
|
return `<!DOCTYPE html>
|
|
171
185
|
<html lang="en">
|
|
172
186
|
<head>
|
|
@@ -197,6 +211,12 @@ function renderDiffHtml(artifact) {
|
|
|
197
211
|
<div class="card">
|
|
198
212
|
<div style="display:flex;align-items:center;gap:16px;margin-bottom:16px">
|
|
199
213
|
<div style="font-size:16px;font-weight:600">Gate: ${gateBadge(artifact.gate)}</div>
|
|
214
|
+
<div style="font-size:16px;font-weight:600">Safety: ${verdictBadge(safety.verdict)}</div>
|
|
215
|
+
</div>
|
|
216
|
+
<p style="margin:0 0 12px;color:#374151">${esc(safety.reason)}</p>
|
|
217
|
+
<div style="font-size:13px;margin-bottom:16px">
|
|
218
|
+
<strong>Top risks:</strong> ${esc(safety.topRisks.join("; "))}<br>
|
|
219
|
+
<strong>Next action:</strong> ${esc(safety.nextActions[0] ?? "")}
|
|
200
220
|
</div>
|
|
201
221
|
<div>
|
|
202
222
|
<div class="stat"><div class="stat-num" style="color:#ef4444">${artifact.summary.regressions}</div><div class="stat-label">Regressions</div></div>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"html.js","sourceRoot":"","sources":["../../../src/reporters/html.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"html.js","sourceRoot":"","sources":["../../../src/reporters/html.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { describeCheckList, findChecksByStatus, focusLabel, previewList, recommendRunNextStep, sortChecksByActionability } from "./common.js";
|
|
1
|
+
import { describeCheckList, findChecksByStatus, focusLabel, previewList, recommendRunNextStep, summarizeDiffSafety, summarizeRunSafety, sortChecksByActionability } from "./common.js";
|
|
2
2
|
function table(entries) {
|
|
3
3
|
if (entries.length === 0) {
|
|
4
4
|
return "_None._";
|
|
@@ -27,6 +27,7 @@ function renderEvidence(evidence) {
|
|
|
27
27
|
.join("\n");
|
|
28
28
|
}
|
|
29
29
|
function renderRunAtAGlance(artifact) {
|
|
30
|
+
const safety = summarizeRunSafety(artifact);
|
|
30
31
|
const failingChecks = findChecksByStatus(artifact.checks, "fail");
|
|
31
32
|
const partialChecks = [
|
|
32
33
|
...findChecksByStatus(artifact.checks, "partial"),
|
|
@@ -37,11 +38,15 @@ function renderRunAtAGlance(artifact) {
|
|
|
37
38
|
return [
|
|
38
39
|
`## At a Glance`,
|
|
39
40
|
``,
|
|
41
|
+
`- Safety verdict: **${safety.verdict}** — ${safety.reason}`,
|
|
42
|
+
`- Top risks: ${safety.topRisks.join("; ")}`,
|
|
43
|
+
`- Regression/schema drift: ${safety.regressionSummary}`,
|
|
40
44
|
`- Failing checks: ${describeCheckList(failingChecks)}`,
|
|
41
45
|
`- Partial or flaky checks: ${describeCheckList(partialChecks)}`,
|
|
42
46
|
`- Skipped checks: ${describeCheckList(skippedChecks)}`,
|
|
43
47
|
`- Unsupported checks: ${describeCheckList(unsupportedChecks)}`,
|
|
44
|
-
`- Suggested next step: ${recommendRunNextStep(artifact)}
|
|
48
|
+
`- Suggested next step: ${recommendRunNextStep(artifact)}`,
|
|
49
|
+
`- CI next step: \`${safety.ciCta}\``
|
|
45
50
|
].join("\n");
|
|
46
51
|
}
|
|
47
52
|
function renderFailureDiagnosis(artifact) {
|
|
@@ -147,6 +152,7 @@ function renderRunMarkdown(artifact) {
|
|
|
147
152
|
].join("\n");
|
|
148
153
|
}
|
|
149
154
|
function renderDiffMarkdown(artifact) {
|
|
155
|
+
const safety = summarizeDiffSafety(artifact);
|
|
150
156
|
const regressionList = artifact.regressions.length > 0
|
|
151
157
|
? artifact.regressions.map((entry) => `- ${entry.id}: ${entry.message}`).join("\n")
|
|
152
158
|
: "_None._";
|
|
@@ -170,6 +176,10 @@ function renderDiffMarkdown(artifact) {
|
|
|
170
176
|
``,
|
|
171
177
|
`## Executive Summary`,
|
|
172
178
|
``,
|
|
179
|
+
`**Safety verdict: ${safety.verdict}.** ${safety.reason}`,
|
|
180
|
+
``,
|
|
181
|
+
`Top risks: ${safety.topRisks.join("; ")}`,
|
|
182
|
+
``,
|
|
173
183
|
table([
|
|
174
184
|
["Gate", "Regressions", "Recoveries", "Unchanged", "Added", "Removed"],
|
|
175
185
|
[
|
|
@@ -184,9 +194,11 @@ function renderDiffMarkdown(artifact) {
|
|
|
184
194
|
``,
|
|
185
195
|
`## At a Glance`,
|
|
186
196
|
``,
|
|
197
|
+
`- Regression/schema drift: ${safety.regressionSummary}`,
|
|
187
198
|
`- Regressions: ${artifact.regressions.map((entry) => entry.id).join(", ") || "none"}`,
|
|
188
199
|
`- Recoveries: ${artifact.recoveries.map((entry) => entry.id).join(", ") || "none"}`,
|
|
189
200
|
`- Suggested next step: ${suggestedNextStep}`,
|
|
201
|
+
`- CI next step: \`${safety.ciCta}\``,
|
|
190
202
|
``,
|
|
191
203
|
`## Regressions`,
|
|
192
204
|
``,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"markdown.js","sourceRoot":"","sources":["../../../src/reporters/markdown.ts"],"names":[],"mappings":"AACA,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,UAAU,EACV,WAAW,EACX,oBAAoB,EACpB,yBAAyB,EAC1B,MAAM,aAAa,CAAC;AAErB,SAAS,KAAK,CAAC,OAAmB;IAChC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAE,CAAC;IAC3B,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC9B,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;IACxC,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACtF,CAAC;AAED,SAAS,cAAc,CAAC,QAA2B;IACjD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,6BAA6B,CAAC;IACvC,CAAC;IAED,OAAO,QAAQ;SACZ,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACb,OAAO;YACL,iBAAiB,KAAK,CAAC,QAAQ,IAAI;YACnC,qBAAqB,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI;YACjD,oBAAoB,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI;YAC/C,gCAAgC,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC,IAAI;YACrE,qBAAqB,KAAK,CAAC,SAAS,IAAI,CAAC,IAAI;YAC7C,oBAAoB,WAAW,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE;YACpD,oBAAoB,WAAW,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE;SACxD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC;AAED,SAAS,kBAAkB,CAAC,QAAqB;IAC/C,MAAM,aAAa,GAAG,kBAAkB,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClE,MAAM,aAAa,GAAG;QACpB,GAAG,kBAAkB,CAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;QACjD,GAAG,kBAAkB,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;KAChD,CAAC;IACF,MAAM,iBAAiB,GAAG,kBAAkB,CAAC,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAC7E,MAAM,aAAa,GAAG,kBAAkB,CAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAErE,OAAO;QACL,gBAAgB;QAChB,EAAE;QACF,qBAAqB,iBAAiB,CAAC,aAAa,CAAC,EAAE;QACvD,8BAA8B,iBAAiB,CAAC,aAAa,CAAC,EAAE;QAChE,qBAAqB,iBAAiB,CAAC,aAAa,CAAC,EAAE;QACvD,yBAAyB,iBAAiB,CAAC,iBAAiB,CAAC,EAAE;QAC/D,0BAA0B,oBAAoB,CAAC,QAAQ,CAAC,EAAE;
|
|
1
|
+
{"version":3,"file":"markdown.js","sourceRoot":"","sources":["../../../src/reporters/markdown.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { findChecksByStatus } from "./common.js";
|
|
1
|
+
import { findChecksByStatus, summarizeDiffSafety, summarizeRunSafety } from "./common.js";
|
|
2
2
|
// ── Constants ───────────────────────────────────────────────────────────────
|
|
3
3
|
const MAX_ITEMS_PER_SECTION = 5;
|
|
4
4
|
const REPO_URL = "https://github.com/KryptosAI/mcp-observatory";
|
|
@@ -66,6 +66,7 @@ export function prCommentFooter() {
|
|
|
66
66
|
// ── Run artifact rendering ──────────────────────────────────────────────────
|
|
67
67
|
function renderRunComment(artifact, trend) {
|
|
68
68
|
const sections = [];
|
|
69
|
+
const safety = summarizeRunSafety(artifact);
|
|
69
70
|
const security = extractSecurityFindings(artifact.checks);
|
|
70
71
|
const quality = extractQualityFindings(artifact.checks);
|
|
71
72
|
const failingChecks = findChecksByStatus(artifact.checks, "fail")
|
|
@@ -129,14 +130,23 @@ function renderRunComment(artifact, trend) {
|
|
|
129
130
|
`${caps.resources} resources`,
|
|
130
131
|
].join(" · ");
|
|
131
132
|
sections.push("");
|
|
133
|
+
sections.push(`### Safety verdict`);
|
|
134
|
+
sections.push(`> **${safety.verdict}** — ${safety.reason}`);
|
|
135
|
+
sections.push(`> Top risks: ${safety.topRisks.join("; ")}`);
|
|
136
|
+
sections.push("");
|
|
132
137
|
sections.push(`### 📊 Summary`);
|
|
133
138
|
sections.push(`> ${statsLine}`);
|
|
139
|
+
sections.push("");
|
|
140
|
+
sections.push(`### Next action`);
|
|
141
|
+
sections.push(`> ${safety.nextActions[0]}`);
|
|
142
|
+
sections.push(`> ${safety.ciCta}`);
|
|
134
143
|
sections.push(prCommentFooter());
|
|
135
144
|
return sections.join("\n");
|
|
136
145
|
}
|
|
137
146
|
// ── Diff artifact rendering ─────────────────────────────────────────────────
|
|
138
147
|
function renderDiffComment(artifact) {
|
|
139
148
|
const sections = [];
|
|
149
|
+
const safety = summarizeDiffSafety(artifact);
|
|
140
150
|
const { regressions, recoveries, schemaDrift } = artifact;
|
|
141
151
|
const driftCount = schemaDrift?.length ?? 0;
|
|
142
152
|
const totalIssues = regressions.length + driftCount;
|
|
@@ -188,8 +198,15 @@ function renderDiffComment(artifact) {
|
|
|
188
198
|
`Unchanged: ${summary.unchanged}`,
|
|
189
199
|
].join(" · ");
|
|
190
200
|
sections.push("");
|
|
201
|
+
sections.push(`### Safety verdict`);
|
|
202
|
+
sections.push(`> **${safety.verdict}** — ${safety.reason}`);
|
|
203
|
+
sections.push(`> ${safety.regressionSummary}`);
|
|
204
|
+
sections.push("");
|
|
191
205
|
sections.push(`### 📊 Summary`);
|
|
192
206
|
sections.push(`> ${statsLine}`);
|
|
207
|
+
sections.push("");
|
|
208
|
+
sections.push(`### Next action`);
|
|
209
|
+
sections.push(`> ${safety.nextActions[0]}`);
|
|
193
210
|
sections.push(prCommentFooter());
|
|
194
211
|
return sections.join("\n");
|
|
195
212
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pr-comment.js","sourceRoot":"","sources":["../../../src/reporters/pr-comment.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pr-comment.js","sourceRoot":"","sources":["../../../src/reporters/pr-comment.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { describeCheckList, findChecksByStatus, recommendRunNextStep, sortChecksByActionability } from "./common.js";
|
|
1
|
+
import { describeCheckList, findChecksByStatus, recommendRunNextStep, summarizeDiffSafety, summarizeRunSafety, sortChecksByActionability } from "./common.js";
|
|
2
2
|
// ── Watch-specific compact renderers ────────────────────────────────────────
|
|
3
3
|
function watchStatusIcon(status) {
|
|
4
4
|
switch (status) {
|
|
@@ -135,6 +135,7 @@ function formatEntry(entry) {
|
|
|
135
135
|
}
|
|
136
136
|
function renderRunTerminal(artifact) {
|
|
137
137
|
const orderedChecks = sortChecksByActionability(artifact.checks);
|
|
138
|
+
const safety = summarizeRunSafety(artifact);
|
|
138
139
|
const failingChecks = findChecksByStatus(artifact.checks, "fail");
|
|
139
140
|
const partialChecks = [
|
|
140
141
|
...findChecksByStatus(artifact.checks, "partial"),
|
|
@@ -144,6 +145,7 @@ function renderRunTerminal(artifact) {
|
|
|
144
145
|
const skippedChecks = findChecksByStatus(artifact.checks, "skipped");
|
|
145
146
|
const lines = [
|
|
146
147
|
co(ANSI.bold, `MCP Observatory Run`),
|
|
148
|
+
`Safety Verdict: ${co(safety.verdict === "Ready" ? ANSI.green : safety.verdict === "Needs review" ? ANSI.yellow : ANSI.red, safety.verdict)} — ${safety.reason}`,
|
|
147
149
|
`Run ID: ${artifact.runId}`,
|
|
148
150
|
`Gate: ${co(ANSI.bold, colorGate(artifact.gate))}`,
|
|
149
151
|
`Target: ${artifact.target.targetId} (${artifact.target.adapter})`,
|
|
@@ -151,11 +153,13 @@ function renderRunTerminal(artifact) {
|
|
|
151
153
|
`Counts: pass=${artifact.summary.pass}, fail=${artifact.summary.fail}, partial=${artifact.summary.partial}, unsupported=${artifact.summary.unsupported}, flaky=${artifact.summary.flaky}, skipped=${artifact.summary.skipped}`
|
|
152
154
|
];
|
|
153
155
|
lines.push(`Actionable now:`);
|
|
156
|
+
lines.push(`- top risks: ${safety.topRisks.join("; ")}`);
|
|
154
157
|
lines.push(`- failing checks: ${describeCheckList(failingChecks)}`);
|
|
155
158
|
lines.push(`- partial checks: ${describeCheckList(partialChecks)}`);
|
|
156
159
|
lines.push(`- skipped checks: ${describeCheckList(skippedChecks)}`);
|
|
157
160
|
lines.push(`- unsupported checks: ${describeCheckList(unsupportedChecks)}`);
|
|
158
161
|
lines.push(`Next step: ${recommendRunNextStep(artifact)}`);
|
|
162
|
+
lines.push(`CI: ${safety.ciCta}`);
|
|
159
163
|
if (artifact.fatalError !== undefined) {
|
|
160
164
|
lines.push("Failure diagnosis:");
|
|
161
165
|
lines.push(...artifact.fatalError.split("\n"));
|
|
@@ -189,13 +193,17 @@ function renderRunTerminal(artifact) {
|
|
|
189
193
|
return lines.join("\n");
|
|
190
194
|
}
|
|
191
195
|
function renderDiffTerminal(artifact) {
|
|
196
|
+
const safety = summarizeDiffSafety(artifact);
|
|
192
197
|
const lines = [
|
|
193
198
|
co(ANSI.bold, `MCP Observatory Diff`),
|
|
199
|
+
`Safety Verdict: ${co(safety.verdict === "Ready" ? ANSI.green : safety.verdict === "Needs review" ? ANSI.yellow : ANSI.red, safety.verdict)} — ${safety.reason}`,
|
|
194
200
|
`Base: ${artifact.baseRunId}`,
|
|
195
201
|
`Head: ${artifact.headRunId}`,
|
|
196
202
|
`Gate: ${co(ANSI.bold, colorGate(artifact.gate))}`,
|
|
197
203
|
`Counts: regressions=${artifact.summary.regressions}, recoveries=${artifact.summary.recoveries}, unchanged=${artifact.summary.unchanged}, added=${artifact.summary.added}, removed=${artifact.summary.removed}`
|
|
198
204
|
];
|
|
205
|
+
lines.push(`Top risks: ${safety.topRisks.join("; ")}`);
|
|
206
|
+
lines.push(`Next step: ${safety.nextActions[0]}`);
|
|
199
207
|
if (artifact.regressions.length > 0) {
|
|
200
208
|
lines.push(co(ANSI.red, "Regressions:"));
|
|
201
209
|
lines.push(...artifact.regressions.map((e) => co(ANSI.red, formatEntry(e))));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"terminal.js","sourceRoot":"","sources":["../../../src/reporters/terminal.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"terminal.js","sourceRoot":"","sources":["../../../src/reporters/terminal.ts"],"names":[],"mappings":"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"}
|
|
@@ -35,31 +35,31 @@ Skip:
|
|
|
35
35
|
|
|
36
36
|
| Priority | Repo | Package/Command | Category | Stars/Downloads/Listing Signal | Activity Signal | Risk Notes | Status | PR URL | Accepted/Badge/Proof |
|
|
37
37
|
| ---: | --- | --- | --- | --- | --- | --- | --- | --- | --- |
|
|
38
|
-
| 1 | `
|
|
39
|
-
| 2 | `
|
|
40
|
-
| 3 | `
|
|
41
|
-
| 4 | `
|
|
42
|
-
| 5 | `
|
|
43
|
-
| 6 | `
|
|
44
|
-
| 7 | `
|
|
45
|
-
| 8 | `
|
|
46
|
-
| 9 | `
|
|
47
|
-
| 10 | `
|
|
48
|
-
| 11 | `
|
|
49
|
-
| 12 | `
|
|
50
|
-
| 13 | `
|
|
51
|
-
| 14 | `
|
|
52
|
-
| 15 | `
|
|
53
|
-
| 16 | `
|
|
54
|
-
| 17 | `
|
|
55
|
-
| 18 | `
|
|
56
|
-
| 19 | `
|
|
57
|
-
| 20 | `
|
|
58
|
-
| 21 | `
|
|
59
|
-
| 22 | `
|
|
60
|
-
| 23 | `
|
|
61
|
-
| 24 | `
|
|
62
|
-
| 25 | `
|
|
38
|
+
| 1 | `modelcontextprotocol/servers` | `npx -y @modelcontextprotocol/server-everything` | Reference | Official/reference signal | verify active package path | Safe reference target; PR may need package-specific scope | researched | | |
|
|
39
|
+
| 2 | `modelcontextprotocol/servers` | `npx -y @modelcontextprotocol/server-filesystem .` | Filesystem | Official/reference signal | verify package location | Needs harmless temp directory target | researched | | |
|
|
40
|
+
| 3 | `upstash/context7` | `npx -y @upstash/context7-mcp` | Developer Tools | Directory/listing signal | verify current package name | Network behavior should be reviewed before fail gate | researched | | |
|
|
41
|
+
| 4 | `executeautomation/mcp-playwright` | `npx -y @executeautomation/playwright-mcp-server` | Browser Automation | High-interest browser MCP category | verify current package name | Browser install may be slow; start workflow-only | researched | | |
|
|
42
|
+
| 5 | `browserbase/mcp-server-browserbase` | `npx -y @browserbasehq/mcp-server-browserbase` | Browser Automation | Hosted browser MCP category | verify auth-free startup | May require API key; issue-only if startup requires credentials | researched | | |
|
|
43
|
+
| 6 | `smithery-ai/server-sequential-thinking` | `npx -y @smithery-ai/server-sequential-thinking` | Developer Tools | MCP directory ecosystem | verify package/repo naming | Good low-risk simple server if public package starts cleanly | researched | | |
|
|
44
|
+
| 7 | `kazuph/mcp-taskmanager` | `npx -y mcp-taskmanager` | Developer Tools | Task/project MCP category | verify package | Confirm no destructive default actions | researched | | |
|
|
45
|
+
| 8 | `cyanheads/filesystem-mcp-server` | `npx -y filesystem-mcp-server .` | Filesystem | Popular category | verify command | Needs harmless temp directory target | researched | | |
|
|
46
|
+
| 9 | `redis/mcp-redis` | `uvx mcp-redis` | Database | Enterprise database category | verify auth-free startup | Database target may require service; issue-only if credentials needed | researched | | |
|
|
47
|
+
| 10 | `mongodb-js/mongodb-mcp-server` | `npx -y mongodb-mcp-server` | Database | Enterprise database category | verify auth-free startup | Likely needs connection string; issue-only first | researched | | |
|
|
48
|
+
| 11 | `supabase-community/supabase-mcp` | `npx -y supabase-mcp` | Database | Enterprise/SaaS category | verify current package | Likely requires token; issue-only first | researched | | |
|
|
49
|
+
| 12 | `cloudflare/mcp-server-cloudflare` | `npx -y @cloudflare/mcp-server-cloudflare` | Cloud | Enterprise cloud category | verify package | Likely requires auth; issue-only first | researched | | |
|
|
50
|
+
| 13 | `stripe/agent-toolkit` | `npx -y @stripe/agent-toolkit` | Payments | Enterprise payments category | verify MCP mode | Likely requires API key; issue-only first | researched | | |
|
|
51
|
+
| 14 | `github/github-mcp-server` | `docker run ghcr.io/github/github-mcp-server` | Developer Tools | Major platform category | verify image/startup | Auth required for useful checks; issue-only first | researched | | |
|
|
52
|
+
| 15 | `microsoft/playwright-mcp` | `npx -y @playwright/mcp` | Browser Automation | Major platform category | verify package | Browser dependencies may be slow; workflow-only first | researched | | |
|
|
53
|
+
| 16 | `jetbrains/mcpProxy` | `npx -y @jetbrains/mcp-proxy` | Developer Tools | IDE platform category | verify package | May depend on IDE process; issue-only first | researched | | |
|
|
54
|
+
| 17 | `pydantic/pydantic-ai` | `uvx pydantic-ai-mcp` | AI Framework | Framework ecosystem | verify MCP server package | May be docs/example rather than standalone server | researched | | |
|
|
55
|
+
| 18 | `langchain-ai/langchain-mcp-adapters` | `npx -y <example-server>` | AI Framework | Framework ecosystem | choose example server | Adapter repo may not expose standalone server | researched | | |
|
|
56
|
+
| 19 | `apify/actors-mcp-server` | `npx -y @apify/actors-mcp-server` | SaaS/API | Automation platform category | verify auth-free startup | Likely requires token; issue-only first | researched | | |
|
|
57
|
+
| 20 | `notionhq/notion-mcp-server` | `npx -y @notionhq/notion-mcp-server` | SaaS/API | Major SaaS category | verify package | Likely requires token; issue-only first | researched | | |
|
|
58
|
+
| 21 | `linear/linear-mcp` | `npx -y @linear/mcp-server` | SaaS/API | Developer SaaS category | verify package | Likely requires token; issue-only first | researched | | |
|
|
59
|
+
| 22 | `sentry/sentry-mcp` | `npx -y @sentry/mcp-server` | Observability | Developer SaaS category | verify package | Likely requires token; issue-only first | researched | | |
|
|
60
|
+
| 23 | `elastic/mcp-server-elasticsearch` | `npx -y @elastic/mcp-server-elasticsearch` | Search | Enterprise search category | verify package | Likely requires service; issue-only first | researched | | |
|
|
61
|
+
| 24 | `qdrant/mcp-server-qdrant` | `uvx mcp-server-qdrant` | Vector Database | AI infra category | verify package | May require service URL; issue-only first | researched | | |
|
|
62
|
+
| 25 | `weaviate/mcp-server-weaviate` | `uvx mcp-server-weaviate` | Vector Database | AI infra category | verify package | May require service URL; issue-only first | researched | | |
|
|
63
63
|
| 26 | `owner/repo` | `npx -y package` | Browser Automation | | | | researched | | |
|
|
64
64
|
| 27 | `owner/repo` | `uvx package` | API | | | | researched | | |
|
|
65
65
|
| 28 | `owner/repo` | `npx -y package` | Database | | | | researched | | |
|
|
@@ -99,12 +99,16 @@ Statuses:
|
|
|
99
99
|
|
|
100
100
|
## PR Checklist
|
|
101
101
|
|
|
102
|
+
- Generate the local kit first:
|
|
103
|
+
`npx @kryptosai/mcp-observatory init-ci --all --command "<safe startup command>"`
|
|
102
104
|
- Add `.github/workflows/mcp-observatory.yml`
|
|
105
|
+
- Add `mcp-observatory.target.json` when the startup command needs args, cwd, or env placeholders
|
|
103
106
|
- Use `deep: true` and `security: true`
|
|
104
107
|
- Keep `fail-on-regression: true` unless the repo is noisy
|
|
105
108
|
- Add README badge only when it fits the repo style
|
|
106
|
-
- Include the maintainer PR body from `
|
|
109
|
+
- Include the generated maintainer PR body from `docs/mcp-observatory-pr-body.md`
|
|
107
110
|
- Do not include raw telemetry, private evidence, or sales pricing
|
|
111
|
+
- Prefer issue-only fallback when the server requires credentials, paid services, destructive tools, or unclear startup
|
|
108
112
|
|
|
109
113
|
## PR Templates
|
|
110
114
|
|
|
@@ -133,7 +137,7 @@ The workflow runs on PRs and pushes to `main`. The badge links back to MCP Obser
|
|
|
133
137
|
|
|
134
138
|
### Issue-Only Fallback
|
|
135
139
|
|
|
136
|
-
|
|
140
|
+
~~~md
|
|
137
141
|
I tried preparing a small MCP Observatory CI check for this server, but did not want to open a PR without confirming the safest startup command.
|
|
138
142
|
|
|
139
143
|
Would you accept a workflow that runs:
|
|
@@ -143,8 +147,18 @@ npx @kryptosai/mcp-observatory test <server command> --security --deep
|
|
|
143
147
|
```
|
|
144
148
|
|
|
145
149
|
The goal is to give users a visible compatibility/security signal and catch schema drift before releases.
|
|
150
|
+
~~~
|
|
151
|
+
|
|
152
|
+
## Generated PR Body Printer
|
|
153
|
+
|
|
154
|
+
After running `init-ci --all`, print the generated maintainer copy with:
|
|
155
|
+
|
|
156
|
+
```bash
|
|
157
|
+
npm run certification:pr-body -- docs/mcp-observatory-pr-body.md
|
|
146
158
|
```
|
|
147
159
|
|
|
160
|
+
For a repo-specific body, run the command from the target branch after generating the local adoption kit.
|
|
161
|
+
|
|
148
162
|
## Proof Capture
|
|
149
163
|
|
|
150
164
|
For accepted PRs, record:
|
|
@@ -35,13 +35,17 @@ npx @kryptosai/mcp-observatory badge npx -y <server-package> --output docs/mcp-h
|
|
|
35
35
|
Fast path:
|
|
36
36
|
|
|
37
37
|
```bash
|
|
38
|
-
npx @kryptosai/mcp-observatory init-ci --command "npx -y <server-package>"
|
|
38
|
+
npx @kryptosai/mcp-observatory init-ci --all --command "npx -y <server-package>"
|
|
39
39
|
```
|
|
40
40
|
|
|
41
41
|
That creates:
|
|
42
42
|
|
|
43
43
|
- `.github/workflows/mcp-observatory.yml`
|
|
44
44
|
- `docs/mcp-observatory-badge.md`
|
|
45
|
+
- `mcp-observatory.target.json`
|
|
46
|
+
- `docs/mcp-observatory-pr-body.md`
|
|
47
|
+
- `docs/mcp-observatory-issue.md`
|
|
48
|
+
- `docs/mcp-observatory-score-badge.md`
|
|
45
49
|
|
|
46
50
|
Manual template:
|
|
47
51
|
|
package/docs/compatibility.md
CHANGED
|
@@ -43,7 +43,7 @@ These servers use standard stdio transport and should work with MCP Observatory.
|
|
|
43
43
|
| HubSpot | [`@hubspot/mcp-server`](https://www.npmjs.com/package/@hubspot/mcp-server) | API key | `npx -y @hubspot/mcp-server` |
|
|
44
44
|
| LaunchDarkly | [`@launchdarkly/mcp-server`](https://www.npmjs.com/package/@launchdarkly/mcp-server) | API key | `npx -y @launchdarkly/mcp-server` |
|
|
45
45
|
| Notion | [`@notionhq/notion-mcp-server`](https://www.npmjs.com/package/@notionhq/notion-mcp-server) | `OPENAPI_MCP_HEADERS` | `npx -y @notionhq/notion-mcp-server` |
|
|
46
|
-
| Stripe | [`@stripe/mcp`](https://www.npmjs.com/package/@stripe/mcp) | `--api-key` arg | `npx -y @stripe/mcp --api-key
|
|
46
|
+
| Stripe | [`@stripe/mcp`](https://www.npmjs.com/package/@stripe/mcp) | `--api-key` arg | `npx -y @stripe/mcp --api-key ${STRIPE_API_KEY}` |
|
|
47
47
|
|
|
48
48
|
Target config example with env vars:
|
|
49
49
|
|
|
@@ -116,7 +116,7 @@ Many MCP servers ship Docker images. These work with the `local-process` adapter
|
|
|
116
116
|
"adapter": "local-process",
|
|
117
117
|
"command": "docker",
|
|
118
118
|
"args": ["run", "-i", "--rm",
|
|
119
|
-
"-e", "GITHUB_PERSONAL_ACCESS_TOKEN
|
|
119
|
+
"-e", "GITHUB_PERSONAL_ACCESS_TOKEN=${GITHUB_PERSONAL_ACCESS_TOKEN}",
|
|
120
120
|
"ghcr.io/github/github-mcp-server"],
|
|
121
121
|
"timeoutMs": 30000
|
|
122
122
|
}
|
|
@@ -23,7 +23,7 @@ Free for local OSS use. Paid pilots are available for hosted reporting, private
|
|
|
23
23
|
Add MCP CI in one command:
|
|
24
24
|
|
|
25
25
|
```bash
|
|
26
|
-
npx @kryptosai/mcp-observatory init-ci --command "npx -y my-mcp-server"
|
|
26
|
+
npx @kryptosai/mcp-observatory init-ci --all --command "npx -y my-mcp-server"
|
|
27
27
|
```
|
|
28
28
|
|
|
29
29
|
## Tags
|
|
@@ -54,7 +54,7 @@ From public sample artifacts and Observatory check categories, the most importan
|
|
|
54
54
|
## How Maintainers Add The Check
|
|
55
55
|
|
|
56
56
|
```bash
|
|
57
|
-
npx @kryptosai/mcp-observatory init-ci --command "npx -y my-mcp-server"
|
|
57
|
+
npx @kryptosai/mcp-observatory init-ci --all --command "npx -y my-mcp-server"
|
|
58
58
|
```
|
|
59
59
|
|
|
60
60
|
That creates a GitHub Action and a README badge snippet. The action can comment on PRs and fail when MCP compatibility or security checks regress.
|
|
@@ -79,7 +79,7 @@ MCP servers are becoming production dependencies.
|
|
|
79
79
|
I built MCP Observatory so MCP maintainers can add CI, security checks, schema drift detection, PR reports, and trust badges in one command:
|
|
80
80
|
|
|
81
81
|
```bash
|
|
82
|
-
npx @kryptosai/mcp-observatory init-ci --command "npx -y my-mcp-server"
|
|
82
|
+
npx @kryptosai/mcp-observatory init-ci --all --command "npx -y my-mcp-server"
|
|
83
83
|
```
|
|
84
84
|
|
|
85
85
|
Free for local OSS use. Paid pilots are available for hosted reporting, private repo CI, certification, support, and fleet visibility.
|
|
@@ -23,6 +23,10 @@ Confirm:
|
|
|
23
23
|
- Security findings appear in artifact evidence as structured `findings`.
|
|
24
24
|
- Hosted upload is available through `mcp-observatory cloud upload <artifact>` when `MCP_OBSERVATORY_CLOUD_TOKEN` is set.
|
|
25
25
|
|
|
26
|
+
Known audit note:
|
|
27
|
+
|
|
28
|
+
- `npm audit` may report `undici <=6.26.0` through the `npm@11.17.0` package bundled under `@semantic-release/npm`. `npm audit fix` updates the fixable `@actions/http-client` path, but the remaining `undici` copy is bundled inside npm release tooling and is not part of MCP Observatory runtime dependencies or the packed npm artifact. Recheck after npm publishes a newer package.
|
|
29
|
+
|
|
26
30
|
## Public Distribution
|
|
27
31
|
|
|
28
32
|
- Merge the health/commercialization PR.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kryptosai/mcp-observatory",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.22.0",
|
|
4
4
|
"description": "Test, secure, and monitor MCP servers before agents depend on them.",
|
|
5
5
|
"mcpName": "io.github.KryptosAI/mcp-observatory",
|
|
6
6
|
"license": "MIT",
|
|
@@ -47,13 +47,15 @@
|
|
|
47
47
|
"prepack": "npm run build",
|
|
48
48
|
"proof:refresh": "tsx scripts/refresh-proof-artifacts.ts",
|
|
49
49
|
"release:prep": "node scripts/release.mjs",
|
|
50
|
+
"certification:pr-body": "tsx scripts/print-certification-pr-body.ts",
|
|
50
51
|
"typecheck": "tsc --noEmit -p tsconfig.json",
|
|
51
52
|
"test": "vitest run",
|
|
52
53
|
"validate:artifacts": "tsx scripts/validate-artifacts.ts",
|
|
53
54
|
"verify:packed-install": "node scripts/verify-packed-install.mjs",
|
|
54
55
|
"smoke": "npm run cli -- run --target tests/fixtures/sample-target-config.json && npm run cli -- diff tests/fixtures/sample-run-a.json tests/fixtures/sample-run-b.json",
|
|
55
56
|
"telemetry:export": "tsx scripts/export-telemetry-d1.ts",
|
|
56
|
-
"telemetry:intelligence": "tsx scripts/telemetry-company-intelligence.ts --input telemetry-exports/events-flat-full.json --out-dir reports"
|
|
57
|
+
"telemetry:intelligence": "tsx scripts/telemetry-company-intelligence.ts --input telemetry-exports/events-flat-full.json --out-dir reports",
|
|
58
|
+
"telemetry:external": "tsx scripts/telemetry-company-intelligence.ts --input telemetry-exports/events-flat-full.json --out-dir reports"
|
|
57
59
|
},
|
|
58
60
|
"keywords": [
|
|
59
61
|
"mcp",
|