@bryan-thompson/inspector-assessment 1.38.2 → 1.39.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.
Files changed (40) hide show
  1. package/cli/build/lib/cli-parser.js +1 -1
  2. package/cli/package.json +1 -1
  3. package/client/dist/assets/{OAuthCallback-DqxOafgi.js → OAuthCallback-D5AxwshJ.js} +1 -1
  4. package/client/dist/assets/{OAuthDebugCallback-C4WEOppQ.js → OAuthDebugCallback-DMFgwUEJ.js} +1 -1
  5. package/client/dist/assets/{index-DGlV244x.js → index-_0MfTEVi.js} +4 -4
  6. package/client/dist/index.html +1 -1
  7. package/client/lib/lib/assessment/aupComplianceTypes.d.ts +40 -0
  8. package/client/lib/lib/assessment/aupComplianceTypes.d.ts.map +1 -0
  9. package/client/lib/lib/assessment/aupComplianceTypes.js +11 -0
  10. package/client/lib/lib/assessment/capabilityAssessmentTypes.d.ts +350 -0
  11. package/client/lib/lib/assessment/capabilityAssessmentTypes.d.ts.map +1 -0
  12. package/client/lib/lib/assessment/capabilityAssessmentTypes.js +10 -0
  13. package/client/lib/lib/assessment/extendedTypes.d.ts +21 -915
  14. package/client/lib/lib/assessment/extendedTypes.d.ts.map +1 -1
  15. package/client/lib/lib/assessment/extendedTypes.js +23 -4
  16. package/client/lib/lib/assessment/externalServicesTypes.d.ts +101 -0
  17. package/client/lib/lib/assessment/externalServicesTypes.d.ts.map +1 -0
  18. package/client/lib/lib/assessment/externalServicesTypes.js +10 -0
  19. package/client/lib/lib/assessment/index.d.ts +6 -1
  20. package/client/lib/lib/assessment/index.d.ts.map +1 -1
  21. package/client/lib/lib/assessment/index.js +16 -5
  22. package/client/lib/lib/assessment/jsonlEventSchemas.d.ts +4 -4
  23. package/client/lib/lib/assessment/policyComplianceTypes.d.ts +180 -0
  24. package/client/lib/lib/assessment/policyComplianceTypes.d.ts.map +1 -0
  25. package/client/lib/lib/assessment/policyComplianceTypes.js +9 -0
  26. package/client/lib/lib/assessment/temporalSecurityTypes.d.ts +85 -0
  27. package/client/lib/lib/assessment/temporalSecurityTypes.d.ts.map +1 -0
  28. package/client/lib/lib/assessment/temporalSecurityTypes.js +10 -0
  29. package/client/lib/lib/assessment/toolAnnotationTypes.d.ts +222 -0
  30. package/client/lib/lib/assessment/toolAnnotationTypes.d.ts.map +1 -0
  31. package/client/lib/lib/assessment/toolAnnotationTypes.js +10 -0
  32. package/client/lib/services/assessment/modules/TemporalAssessor.d.ts.map +1 -1
  33. package/client/lib/services/assessment/modules/TemporalAssessor.js +3 -2
  34. package/client/lib/services/assessment/modules/securityTests/SecurityResponseAnalyzer.d.ts.map +1 -1
  35. package/client/lib/services/assessment/modules/securityTests/SecurityResponseAnalyzer.js +32 -10
  36. package/client/lib/services/assessment/registry/estimators.d.ts +1 -1
  37. package/client/lib/services/assessment/registry/estimators.js +2 -2
  38. package/client/package.json +1 -1
  39. package/package.json +1 -1
  40. package/server/package.json +1 -1
@@ -398,7 +398,7 @@ Options:
398
398
  --mcp-auditor-url <url> mcp-auditor URL for HTTP transport (default: http://localhost:8085)
399
399
  --full Enable all assessment modules (default)
400
400
  --profile <name> Use predefined module profile (quick, security, compliance, full)
401
- --temporal-invocations <n> Number of invocations per tool for rug pull detection (default: 25)
401
+ --temporal-invocations <n> Number of invocations per tool for rug pull detection (default: 3)
402
402
  --skip-temporal Skip temporal/rug pull testing (faster assessment)
403
403
  --conformance Enable official MCP conformance tests (experimental, requires HTTP/SSE transport)
404
404
  --output-format <fmt> Output format: full (default), tiered, summary-only
package/cli/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bryan-thompson/inspector-assessment-cli",
3
- "version": "1.38.2",
3
+ "version": "1.39.0",
4
4
  "description": "CLI for the Enhanced MCP Inspector with assessment capabilities",
5
5
  "license": "MIT",
6
6
  "author": "Bryan Thompson <bryan@triepod.ai>",
@@ -1,4 +1,4 @@
1
- import { u as useToast, r as reactExports, j as jsxRuntimeExports, p as parseOAuthCallbackParams, g as generateOAuthErrorDescription, S as SESSION_KEYS, I as InspectorOAuthClientProvider, a as auth } from "./index-DGlV244x.js";
1
+ import { u as useToast, r as reactExports, j as jsxRuntimeExports, p as parseOAuthCallbackParams, g as generateOAuthErrorDescription, S as SESSION_KEYS, I as InspectorOAuthClientProvider, a as auth } from "./index-_0MfTEVi.js";
2
2
  const OAuthCallback = ({ onConnect }) => {
3
3
  const { toast } = useToast();
4
4
  const hasProcessedRef = reactExports.useRef(false);
@@ -1,4 +1,4 @@
1
- import { r as reactExports, S as SESSION_KEYS, p as parseOAuthCallbackParams, j as jsxRuntimeExports, g as generateOAuthErrorDescription } from "./index-DGlV244x.js";
1
+ import { r as reactExports, S as SESSION_KEYS, p as parseOAuthCallbackParams, j as jsxRuntimeExports, g as generateOAuthErrorDescription } from "./index-_0MfTEVi.js";
2
2
  const OAuthDebugCallback = ({ onConnect }) => {
3
3
  reactExports.useEffect(() => {
4
4
  let isProcessed = false;
@@ -16373,7 +16373,7 @@ object({
16373
16373
  token_type_hint: string().optional()
16374
16374
  }).strip();
16375
16375
  const name = "@bryan-thompson/inspector-assessment-client";
16376
- const version$1 = "1.38.2";
16376
+ const version$1 = "1.39.0";
16377
16377
  const packageJson = {
16378
16378
  name,
16379
16379
  version: version$1
@@ -49456,7 +49456,7 @@ const useTheme = () => {
49456
49456
  [theme, setThemeWithSideEffect]
49457
49457
  );
49458
49458
  };
49459
- const version = "1.38.2";
49459
+ const version = "1.39.0";
49460
49460
  var [createTooltipContext] = createContextScope("Tooltip", [
49461
49461
  createPopperScope
49462
49462
  ]);
@@ -52799,13 +52799,13 @@ const App = () => {
52799
52799
  };
52800
52800
  if (window.location.pathname === "/oauth/callback") {
52801
52801
  const OAuthCallback = React.lazy(
52802
- () => __vitePreload(() => import("./OAuthCallback-DqxOafgi.js"), true ? [] : void 0)
52802
+ () => __vitePreload(() => import("./OAuthCallback-D5AxwshJ.js"), true ? [] : void 0)
52803
52803
  );
52804
52804
  return /* @__PURE__ */ jsxRuntimeExports.jsx(reactExports.Suspense, { fallback: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { children: "Loading..." }), children: /* @__PURE__ */ jsxRuntimeExports.jsx(OAuthCallback, { onConnect: onOAuthConnect }) });
52805
52805
  }
52806
52806
  if (window.location.pathname === "/oauth/callback/debug") {
52807
52807
  const OAuthDebugCallback = React.lazy(
52808
- () => __vitePreload(() => import("./OAuthDebugCallback-C4WEOppQ.js"), true ? [] : void 0)
52808
+ () => __vitePreload(() => import("./OAuthDebugCallback-DMFgwUEJ.js"), true ? [] : void 0)
52809
52809
  );
52810
52810
  return /* @__PURE__ */ jsxRuntimeExports.jsx(reactExports.Suspense, { fallback: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { children: "Loading..." }), children: /* @__PURE__ */ jsxRuntimeExports.jsx(OAuthDebugCallback, { onConnect: onOAuthDebugConnect }) });
52811
52811
  }
@@ -5,7 +5,7 @@
5
5
  <link rel="icon" type="image/svg+xml" href="/mcp.svg" />
6
6
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
7
7
  <title>MCP Inspector</title>
8
- <script type="module" crossorigin src="/assets/index-DGlV244x.js"></script>
8
+ <script type="module" crossorigin src="/assets/index-_0MfTEVi.js"></script>
9
9
  <link rel="stylesheet" crossorigin href="/assets/index-BoUA5OL1.css">
10
10
  </head>
11
11
  <body>
@@ -0,0 +1,40 @@
1
+ /**
2
+ * AUP (Acceptable Use Policy) Compliance Types
3
+ *
4
+ * Types for Anthropic's 14 AUP category compliance detection.
5
+ * Based on AUP categories A-N covering CSAM, weapons, malware,
6
+ * disinformation, fraud, harassment, privacy, and more.
7
+ *
8
+ * @module assessment/aupComplianceTypes
9
+ * @see https://www.anthropic.com/policies/usage-policy
10
+ */
11
+ import type { AssessmentStatus } from "./coreTypes.js";
12
+ export type AUPCategory = "A" | "B" | "C" | "D" | "E" | "F" | "G" | "H" | "I" | "J" | "K" | "L" | "M" | "N";
13
+ export type AUPSeverity = "CRITICAL" | "HIGH" | "MEDIUM" | "FLAG";
14
+ export interface AUPViolation {
15
+ category: AUPCategory;
16
+ categoryName: string;
17
+ severity: AUPSeverity;
18
+ pattern: string;
19
+ matchedText: string;
20
+ location: "tool_name" | "tool_description" | "readme" | "source_code";
21
+ filePath?: string;
22
+ lineNumber?: number;
23
+ confidence: "high" | "medium" | "low";
24
+ requiresHumanReview: boolean;
25
+ reviewGuidance?: string;
26
+ }
27
+ export interface AUPComplianceAssessment {
28
+ violations: AUPViolation[];
29
+ highRiskDomains: string[];
30
+ scannedLocations: {
31
+ toolNames: boolean;
32
+ toolDescriptions: boolean;
33
+ readme: boolean;
34
+ sourceCode: boolean;
35
+ };
36
+ status: AssessmentStatus;
37
+ explanation: string;
38
+ recommendations: string[];
39
+ }
40
+ //# sourceMappingURL=aupComplianceTypes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aupComplianceTypes.d.ts","sourceRoot":"","sources":["../../../src/lib/assessment/aupComplianceTypes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAMpD,MAAM,MAAM,WAAW,GACnB,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,GACH,GAAG,CAAC;AAER,MAAM,MAAM,WAAW,GAAG,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAC;AAMlE,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,WAAW,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,WAAW,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,WAAW,GAAG,kBAAkB,GAAG,QAAQ,GAAG,aAAa,CAAC;IACtE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IACtC,mBAAmB,EAAE,OAAO,CAAC;IAC7B,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAMD,MAAM,WAAW,uBAAuB;IACtC,UAAU,EAAE,YAAY,EAAE,CAAC;IAC3B,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,gBAAgB,EAAE;QAChB,SAAS,EAAE,OAAO,CAAC;QACnB,gBAAgB,EAAE,OAAO,CAAC;QAC1B,MAAM,EAAE,OAAO,CAAC;QAChB,UAAU,EAAE,OAAO,CAAC;KACrB,CAAC;IACF,MAAM,EAAE,gBAAgB,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,EAAE,CAAC;CAC3B"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * AUP (Acceptable Use Policy) Compliance Types
3
+ *
4
+ * Types for Anthropic's 14 AUP category compliance detection.
5
+ * Based on AUP categories A-N covering CSAM, weapons, malware,
6
+ * disinformation, fraud, harassment, privacy, and more.
7
+ *
8
+ * @module assessment/aupComplianceTypes
9
+ * @see https://www.anthropic.com/policies/usage-policy
10
+ */
11
+ export {};
@@ -0,0 +1,350 @@
1
+ /**
2
+ * Capability Assessment Types
3
+ *
4
+ * Types for MCP capability assessments including resources, prompts,
5
+ * cross-capability security, protocol conformance, official MCP conformance,
6
+ * file modularization, and developer experience.
7
+ *
8
+ * @module assessment/capabilityAssessmentTypes
9
+ */
10
+ import type { AssessmentStatus, SecurityRiskLevel } from "./coreTypes.js";
11
+ export interface ResourceTestResult {
12
+ resourceUri: string;
13
+ resourceName?: string;
14
+ mimeType?: string;
15
+ tested: boolean;
16
+ accessible: boolean;
17
+ securityIssues: string[];
18
+ pathTraversalVulnerable: boolean;
19
+ sensitiveDataExposed: boolean;
20
+ promptInjectionDetected: boolean;
21
+ promptInjectionPatterns: string[];
22
+ validUri: boolean;
23
+ readTime?: number;
24
+ contentSizeBytes?: number;
25
+ error?: string;
26
+ /** Sensitive data patterns detected in resource content */
27
+ sensitivePatterns?: Array<{
28
+ pattern: string;
29
+ severity: "critical" | "high" | "medium";
30
+ detected: boolean;
31
+ }>;
32
+ /** Access control information */
33
+ accessControls?: {
34
+ requiresAuth: boolean;
35
+ authType?: string;
36
+ };
37
+ /** Data classification based on content analysis */
38
+ dataClassification?: "public" | "internal" | "confidential" | "restricted";
39
+ /** Whether URI injection testing was performed */
40
+ uriInjectionTested?: boolean;
41
+ /** The injection payload used in this test */
42
+ uriInjectionPayload?: string;
43
+ /** Whether this result is from hidden resource probing */
44
+ hiddenResourceProbe?: boolean;
45
+ /** The pattern used to probe for this hidden resource */
46
+ probePattern?: string;
47
+ /** Whether blob DoS testing was performed */
48
+ blobDosTested?: boolean;
49
+ /** DoS risk level from size analysis */
50
+ blobDosRiskLevel?: "HIGH" | "MEDIUM" | "LOW" | "NONE";
51
+ /** Requested blob size in bytes */
52
+ blobRequestedSize?: number;
53
+ /** Whether polyglot testing was performed */
54
+ polyglotTested?: boolean;
55
+ /** Polyglot combination detected (e.g., "gif/javascript") */
56
+ polyglotCombination?: string;
57
+ /** Whether MIME validation was performed */
58
+ mimeValidationPerformed?: boolean;
59
+ /** MIME type mismatch detected */
60
+ mimeTypeMismatch?: boolean;
61
+ /** Expected MIME type based on content magic bytes */
62
+ expectedMimeType?: string;
63
+ /** Declared MIME type from resource */
64
+ declaredMimeType?: string;
65
+ }
66
+ export interface ResourceAssessment {
67
+ resourcesTested: number;
68
+ resourceTemplatesTested: number;
69
+ accessibleResources: number;
70
+ securityIssuesFound: number;
71
+ pathTraversalVulnerabilities: number;
72
+ sensitiveDataExposures: number;
73
+ promptInjectionVulnerabilities: number;
74
+ /** Number of blob DoS vulnerabilities detected */
75
+ blobDosVulnerabilities: number;
76
+ /** Number of polyglot file vulnerabilities detected */
77
+ polyglotVulnerabilities: number;
78
+ /** Number of MIME validation failures detected */
79
+ mimeValidationFailures: number;
80
+ results: ResourceTestResult[];
81
+ status: AssessmentStatus;
82
+ explanation: string;
83
+ recommendations: string[];
84
+ }
85
+ export interface PromptTestResult {
86
+ promptName: string;
87
+ description?: string;
88
+ tested: boolean;
89
+ hasRequiredArguments: boolean;
90
+ argumentsValidated: boolean;
91
+ aupCompliant: boolean;
92
+ injectionVulnerable: boolean;
93
+ safetyIssues: string[];
94
+ argumentCount: number;
95
+ executionTime?: number;
96
+ error?: string;
97
+ /** Template analysis for prompt structure */
98
+ promptTemplate?: {
99
+ templateType: string;
100
+ variables: string[];
101
+ validated: boolean;
102
+ };
103
+ /** Dynamic content analysis */
104
+ dynamicContent?: {
105
+ hasInterpolation: boolean;
106
+ injectionSafe: boolean;
107
+ escapingApplied: string[];
108
+ };
109
+ }
110
+ export interface PromptAssessment {
111
+ promptsTested: number;
112
+ aupViolations: number;
113
+ injectionVulnerabilities: number;
114
+ argumentValidationIssues: number;
115
+ results: PromptTestResult[];
116
+ status: AssessmentStatus;
117
+ explanation: string;
118
+ recommendations: string[];
119
+ }
120
+ export interface CrossCapabilityTestResult {
121
+ testType: "tool_to_resource" | "prompt_to_tool" | "resource_to_tool" | "privilege_escalation";
122
+ sourceCapability: string;
123
+ targetCapability: string;
124
+ vulnerable: boolean;
125
+ evidence?: string;
126
+ riskLevel: SecurityRiskLevel;
127
+ description: string;
128
+ /** Specific privilege escalation vector if detected */
129
+ privilegeEscalationVector?: string;
130
+ /** Data exfiltration risk details */
131
+ dataExfiltrationRisk?: {
132
+ sensitiveFields: string[];
133
+ exfiltrationMethod: string;
134
+ };
135
+ /** Chain of capabilities that could be exploited together */
136
+ attackChain?: string[];
137
+ /** Confidence level in the detection */
138
+ confidence?: "high" | "medium" | "low";
139
+ }
140
+ export interface CrossCapabilitySecurityAssessment {
141
+ testsRun: number;
142
+ vulnerabilitiesFound: number;
143
+ privilegeEscalationRisks: number;
144
+ dataFlowViolations: number;
145
+ results: CrossCapabilityTestResult[];
146
+ status: AssessmentStatus;
147
+ explanation: string;
148
+ recommendations: string[];
149
+ }
150
+ /**
151
+ * Result of a single protocol conformance check
152
+ */
153
+ export interface ProtocolCheck {
154
+ /** Whether the check passed */
155
+ passed: boolean;
156
+ /** Confidence level of the check result */
157
+ confidence: "high" | "medium" | "low";
158
+ /** Human-readable evidence of the check result */
159
+ evidence: string;
160
+ /** URL to the MCP specification section this check validates */
161
+ specReference: string;
162
+ /** Additional details about the check (e.g., raw responses, validation results) */
163
+ details?: Record<string, unknown>;
164
+ /** Warnings that don't fail the check but should be noted */
165
+ warnings?: string[];
166
+ }
167
+ /**
168
+ * Protocol Conformance Assessment Results
169
+ * Tests MCP protocol-level compliance including error response format,
170
+ * content type support, and initialization handshake validation.
171
+ */
172
+ export interface ProtocolConformanceAssessment {
173
+ /** Individual protocol checks */
174
+ checks: {
175
+ /** Validates error responses follow MCP format (isError flag, content array structure) */
176
+ errorResponseFormat: ProtocolCheck;
177
+ /** Validates content types are valid (text, image, audio, resource) */
178
+ contentTypeSupport: ProtocolCheck;
179
+ /** Validates server completed proper initialization handshake */
180
+ initializationHandshake: ProtocolCheck;
181
+ /** Optional: Validates progress notification format (if tools support progress) */
182
+ progressNotifications?: ProtocolCheck;
183
+ /** Optional: Validates log notification format (if tools support logging) */
184
+ logNotifications?: ProtocolCheck;
185
+ };
186
+ /** Overall conformance score (0-100) */
187
+ score: number;
188
+ /** Assessment status based on score and critical check failures */
189
+ status: AssessmentStatus;
190
+ /** Human-readable explanation of the assessment result */
191
+ explanation: string;
192
+ /** Recommendations for improving protocol conformance */
193
+ recommendations: string[];
194
+ }
195
+ /**
196
+ * Severity level for file modularization issues
197
+ */
198
+ export type FileSeverity = "HIGH" | "MEDIUM" | "LOW" | "INFO";
199
+ /**
200
+ * Information about a large file detected in the codebase
201
+ */
202
+ export interface LargeFileInfo {
203
+ /** Relative path to the file */
204
+ path: string;
205
+ /** Total line count */
206
+ lines: number;
207
+ /** Number of tool definitions detected */
208
+ toolCount: number;
209
+ /** Severity of the modularization issue */
210
+ severity: FileSeverity;
211
+ /** Specific recommendation for this file */
212
+ recommendation: string;
213
+ }
214
+ /**
215
+ * Result of a single modularization check
216
+ */
217
+ export interface ModularizationCheck {
218
+ /** Name of the check (e.g., "file_line_count", "tool_per_file") */
219
+ checkName: string;
220
+ /** Whether the check passed */
221
+ passed: boolean;
222
+ /** Severity if failed */
223
+ severity: FileSeverity;
224
+ /** Evidence explaining the result */
225
+ evidence?: string;
226
+ /** Threshold that was checked against */
227
+ threshold?: number;
228
+ /** Actual value measured */
229
+ actualValue?: number;
230
+ }
231
+ /**
232
+ * Aggregated metrics about file modularization
233
+ */
234
+ export interface FileModularizationMetrics {
235
+ /** Total number of source files analyzed */
236
+ totalSourceFiles: number;
237
+ /** Total lines across all source files */
238
+ totalLines: number;
239
+ /** Files exceeding thresholds, sorted by size */
240
+ largestFiles: LargeFileInfo[];
241
+ /** Count of files over 1,000 lines (warning threshold) */
242
+ filesOver1000Lines: number;
243
+ /** Count of files over 2,000 lines (error threshold) */
244
+ filesOver2000Lines: number;
245
+ /** Count of files with more than 10 tools */
246
+ filesWithOver10Tools: number;
247
+ /** Count of files with more than 20 tools */
248
+ filesWithOver20Tools: number;
249
+ /** Whether the codebase has modular structure (tools/ dir, multiple files) */
250
+ hasModularStructure: boolean;
251
+ /** Overall modularization score (0-100) */
252
+ modularizationScore: number;
253
+ }
254
+ /**
255
+ * Complete file modularization assessment result
256
+ */
257
+ export interface FileModularizationAssessment {
258
+ /** Aggregated metrics */
259
+ metrics: FileModularizationMetrics;
260
+ /** Individual check results */
261
+ checks: ModularizationCheck[];
262
+ /** Overall assessment status */
263
+ status: AssessmentStatus;
264
+ /** Human-readable explanation of the assessment */
265
+ explanation: string;
266
+ /** Specific recommendations for improvement */
267
+ recommendations: string[];
268
+ }
269
+ /**
270
+ * Individual conformance check result
271
+ */
272
+ export interface ConformanceCheck {
273
+ /** Name of the conformance check */
274
+ name: string;
275
+ /** Whether the check passed */
276
+ status: "pass" | "fail" | "skip";
277
+ /** Human-readable message explaining the result */
278
+ message: string;
279
+ /** Reference to MCP specification section */
280
+ specReference?: string;
281
+ /** Timestamp when check was executed */
282
+ timestamp?: string;
283
+ }
284
+ /**
285
+ * Result of a conformance scenario (group of related checks)
286
+ */
287
+ export interface ConformanceScenario {
288
+ /** Scenario name (e.g., "server-initialize", "tools-list") */
289
+ name: string;
290
+ /** Overall scenario status */
291
+ status: "pass" | "fail" | "skip";
292
+ /** Individual checks within this scenario */
293
+ checks: ConformanceCheck[];
294
+ /** Execution time in milliseconds */
295
+ executionTime?: number;
296
+ }
297
+ /**
298
+ * Complete MCP conformance assessment result
299
+ * Uses official @modelcontextprotocol/conformance package
300
+ */
301
+ export interface ConformanceAssessment {
302
+ /** Overall assessment status */
303
+ status: AssessmentStatus;
304
+ /** Version of the conformance package used */
305
+ conformanceVersion: string;
306
+ /** MCP protocol version tested against */
307
+ protocolVersion: string;
308
+ /** Scenario results from official conformance tests */
309
+ scenarios: ConformanceScenario[];
310
+ /** All individual checks (flattened from scenarios) */
311
+ officialChecks: ConformanceCheck[];
312
+ /** Number of checks that passed */
313
+ passedChecks: number;
314
+ /** Total number of checks run */
315
+ totalChecks: number;
316
+ /** Compliance score (0-100) */
317
+ complianceScore: number;
318
+ /** Human-readable explanation */
319
+ explanation: string;
320
+ /** Recommendations for improving conformance */
321
+ recommendations: string[];
322
+ /** Whether conformance tests were skipped (e.g., server unavailable) */
323
+ skipped?: boolean;
324
+ /** Reason for skipping if applicable */
325
+ skipReason?: string;
326
+ }
327
+ import type { DocumentationAssessment, UsabilityAssessment } from "./resultTypes.js";
328
+ /**
329
+ * Combined Developer Experience Assessment
330
+ * Merges documentation and usability assessments into a single logical grouping.
331
+ *
332
+ * Added in v1.32.0 for backward-compatible transition.
333
+ * In v2.0.0, this will replace the separate `documentation` and `usability` keys
334
+ * in MCPDirectoryAssessment.
335
+ *
336
+ * @since 1.32.0
337
+ */
338
+ export interface DeveloperExperienceAssessment {
339
+ /** Documentation assessment results */
340
+ documentation: DocumentationAssessment;
341
+ /** Usability assessment results */
342
+ usability: UsabilityAssessment;
343
+ /** Overall status based on both assessments */
344
+ status: AssessmentStatus;
345
+ /** Combined score (average of documentation and usability scores, 0-100) */
346
+ score: number;
347
+ /** Namespace detection results (Issue #142) - helps identify intentional naming patterns */
348
+ namespaceDetection?: import("./coreTypes.js").NamespaceDetectionResult;
349
+ }
350
+ //# sourceMappingURL=capabilityAssessmentTypes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capabilityAssessmentTypes.d.ts","sourceRoot":"","sources":["../../../src/lib/assessment/capabilityAssessmentTypes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Capability Assessment Types
3
+ *
4
+ * Types for MCP capability assessments including resources, prompts,
5
+ * cross-capability security, protocol conformance, official MCP conformance,
6
+ * file modularization, and developer experience.
7
+ *
8
+ * @module assessment/capabilityAssessmentTypes
9
+ */
10
+ export {};