@certscore/mcp 0.2.5 → 0.2.7

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.
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAIpE,MAAM,WAAW,mBAAmB;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAqCD,wBAAgB,wBAAwB,CAAC,OAAO,GAAE,mBAAwB,aAsNzE"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAIpE,MAAM,WAAW,mBAAmB;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAqCD,wBAAgB,wBAAwB,CAAC,OAAO,GAAE,mBAAwB,aAwNzE"}
package/dist/server.js CHANGED
@@ -44,7 +44,9 @@ export function createCertScoreMcpServer(options = {}) {
44
44
  statusUrl: result.statusUrl ?? result.nextCheckUrl ?? null,
45
45
  resultUrl: result.resultUrl ?? null,
46
46
  reportUrl: result.reportUrl ?? null,
47
- pulse: result.pulse ?? null
47
+ pulse: result.pulse ?? null,
48
+ resultDisposition: result.resultDisposition ?? result.pulse?.resultDisposition ?? null,
49
+ noGo: result.noGo ?? result.pulse?.noGo ?? null
48
50
  };
49
51
  }
50
52
  registerTool("create_scan", toolContract("create_scan"), async (input) => {
package/dist/tools.d.ts CHANGED
@@ -14,6 +14,8 @@ export declare function exportFindings(report: PulseResult): {
14
14
  scanId: string | null;
15
15
  domain: string | null;
16
16
  summary: import("packages/certscore-sdk/dist/types.js").PulseSummary | null;
17
+ resultDisposition: "no_go" | null;
18
+ noGo: import("@certscore/sdk").ScanNoGoResult | null;
17
19
  findings: {
18
20
  id: string;
19
21
  label: string | null;
@@ -53,6 +55,8 @@ export declare function explainFinding(report: PulseResult, findingId: string):
53
55
  reviewLenses?: undefined;
54
56
  anchorUrl?: undefined;
55
57
  nextStep?: undefined;
58
+ resultDisposition?: undefined;
59
+ noGo?: undefined;
56
60
  caveats?: undefined;
57
61
  } | {
58
62
  type: string;
@@ -69,6 +73,8 @@ export declare function explainFinding(report: PulseResult, findingId: string):
69
73
  reviewLenses: string[];
70
74
  anchorUrl: string | null;
71
75
  nextStep: string | null;
76
+ resultDisposition: "no_go" | null;
77
+ noGo: import("@certscore/sdk").ScanNoGoResult | null;
72
78
  caveats: string[];
73
79
  disclaimer: string | null;
74
80
  message?: undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAkB,KAAK,SAAS,EAAE,KAAK,WAAW,EAAE,KAAK,WAAW,EAAE,KAAK,WAAW,EAAE,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAGvI,eAAO,MAAM,yBAAyB,SAAU,CAAC;AAKjD,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,cAAc,CAa7D;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,cAAc,CAyB1D;AAED,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,kBAAkB,SAA4B,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CA0C9H;AA6ID,wBAAgB,eAAe,CAAC,MAAM,EAAE,WAAW,GAAG,SAAS,GAAG,WAAW,CAE5E;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,WAAW,GAAG,SAAS,GAAG,WAAW,CAE5E;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,iBAEjD;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,WAAW,iBAGlD;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,WAAW,GAAG,UAAU,EAAE,CAQpE;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,WAAW;;;;;;;;;;;;;;;;;;EAoBjD;AAED,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACnE,OAAO,EAAE,CAAC,EACV,OAAO,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAO,GAChD,CAAC,CAoBH;AAED,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACnE,OAAO,EAAE,CAAC,EACV,OAAO,GAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAO,GACjC,CAAC,CAiBH;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+BpE"}
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAkB,KAAK,SAAS,EAAE,KAAK,WAAW,EAAE,KAAK,WAAW,EAAE,KAAK,WAAW,EAAE,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAGvI,eAAO,MAAM,yBAAyB,SAAU,CAAC;AAKjD,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,cAAc,CAa7D;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,cAAc,CA0B1D;AAED,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,kBAAkB,SAA4B,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CA0C9H;AA6ID,wBAAgB,eAAe,CAAC,MAAM,EAAE,WAAW,GAAG,SAAS,GAAG,WAAW,CAE5E;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,WAAW,GAAG,SAAS,GAAG,WAAW,CAE5E;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,iBAEjD;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,WAAW,iBAGlD;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,WAAW,GAAG,UAAU,EAAE,CAQpE;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,WAAW;;;;;;;;;;;;;;;;;;;;EAsBjD;AAED,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACnE,OAAO,EAAE,CAAC,EACV,OAAO,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAO,GAChD,CAAC,CAoBH;AAED,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACnE,OAAO,EAAE,CAAC,EACV,OAAO,GAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAO,GACjC,CAAC,CAiBH;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiCpE"}
package/dist/tools.js CHANGED
@@ -19,28 +19,28 @@ export function toToolResult(payload) {
19
19
  };
20
20
  }
21
21
  export function toToolError(error) {
22
- if (error instanceof CertScoreError) {
23
- return {
24
- ...toToolResult({
25
- error: {
26
- name: error.name,
27
- message: error.message,
28
- status: error.status,
29
- code: error.code,
30
- retryAfterSeconds: "retryAfterSeconds" in error ? error.retryAfterSeconds : undefined,
31
- responseBody: truncateErrorResponseBody(error.responseBody)
32
- }
33
- }),
34
- isError: true
35
- };
36
- }
37
- return {
38
- ...toToolResult({
22
+ const payload = error instanceof CertScoreError
23
+ ? {
24
+ error: {
25
+ name: error.name,
26
+ message: error.message,
27
+ status: error.status,
28
+ code: error.code,
29
+ retryAfterSeconds: "retryAfterSeconds" in error ? error.retryAfterSeconds : undefined,
30
+ responseBody: truncateErrorResponseBody(error.responseBody)
31
+ }
32
+ }
33
+ : {
39
34
  error: {
40
35
  name: error instanceof Error ? error.name : "Error",
41
36
  message: error instanceof Error ? error.message : "Unknown CertScore MCP error."
42
37
  }
43
- }),
38
+ };
39
+ // MCP validates structuredContent against the tool's success output schema,
40
+ // including for isError results. Keep errors in text content so a bounded
41
+ // error envelope cannot be rejected as an invalid success resource.
42
+ return {
43
+ content: [{ type: "text", text: JSON.stringify(payload) }],
44
44
  isError: true
45
45
  };
46
46
  }
@@ -241,6 +241,8 @@ export function exportFindings(report) {
241
241
  scanId: scanIdFromPulse(report),
242
242
  domain: report.domain ?? report.request?.domain ?? null,
243
243
  summary: report.summary ?? null,
244
+ resultDisposition: report.resultDisposition ?? null,
245
+ noGo: report.noGo ?? null,
244
246
  findings: findingsFromReport(report).map((finding) => ({
245
247
  id: finding.id,
246
248
  label: finding.label ?? null,
@@ -323,6 +325,8 @@ export function explainFinding(report, findingId) {
323
325
  reviewLenses: finding.reviewLenses ?? [],
324
326
  anchorUrl: finding.anchorUrl ?? finding.evidence?.fullEvidenceUrl ?? null,
325
327
  nextStep: finding.nextStep ?? null,
328
+ resultDisposition: report.resultDisposition ?? null,
329
+ noGo: report.noGo ?? null,
326
330
  caveats: report.coverage?.limitations ?? [],
327
331
  disclaimer: report.disclaimer ?? null
328
332
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@certscore/mcp",
3
- "version": "0.2.5",
3
+ "version": "0.2.7",
4
4
  "mcpName": "ai.certscore/mcp",
5
5
  "private": false,
6
6
  "description": "MCP server for CertScore public website risk-signal workflows.",
@@ -60,7 +60,7 @@
60
60
  },
61
61
  "devDependencies": {
62
62
  "@certscore/api-contracts": "0.1.0",
63
- "@certscore/sdk": "0.2.3"
63
+ "@certscore/sdk": "0.2.4"
64
64
  },
65
65
  "scripts": {
66
66
  "build": "tsc -p tsconfig.json && esbuild src/index.ts --bundle --platform=node --format=esm --target=node20 --banner:js='#!/usr/bin/env node' --outfile=dist/certscore-mcp.mjs",
package/server.json CHANGED
@@ -7,13 +7,13 @@
7
7
  "url": "https://github.com/ergoveritas1-alt/certscore.ai",
8
8
  "source": "github"
9
9
  },
10
- "version": "0.2.5",
10
+ "version": "0.2.7",
11
11
  "packages": [
12
12
  {
13
13
  "registryType": "npm",
14
14
  "registryBaseUrl": "https://registry.npmjs.org",
15
15
  "identifier": "@certscore/mcp",
16
- "version": "0.2.5",
16
+ "version": "0.2.7",
17
17
  "transport": {
18
18
  "type": "stdio"
19
19
  },