@inspectr/mcplab 1.28.3 → 1.28.5

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 (29) hide show
  1. package/dist/app/assets/index-Bxq-wlTN.css +1 -0
  2. package/dist/app/assets/index-j_NpCqyK.js +258 -0
  3. package/dist/app/index.html +2 -2
  4. package/dist/app-server/assistant-events.d.ts +28 -8
  5. package/dist/app-server/runs-store.d.ts +1 -0
  6. package/dist/app-server/runs-store.d.ts.map +1 -1
  7. package/dist/app-server/runs-store.js +1 -0
  8. package/dist/app-server/runs-store.js.map +1 -1
  9. package/dist/app-server/scenario-assistant-domain.d.ts +156 -130
  10. package/dist/app-server/tool-analysis-domain.d.ts +3 -0
  11. package/dist/app-server/tool-analysis-domain.d.ts.map +1 -1
  12. package/dist/app-server/tool-analysis-domain.js +14 -4
  13. package/dist/app-server/tool-analysis-domain.js.map +1 -1
  14. package/dist/app-server/tool-analysis-storage.d.ts +1 -0
  15. package/dist/app-server/tool-analysis-storage.d.ts.map +1 -1
  16. package/dist/app-server/tool-analysis-storage.js +20 -1
  17. package/dist/app-server/tool-analysis-storage.js.map +1 -1
  18. package/dist/app-server/tool-definition-improvement.d.ts +41 -0
  19. package/dist/app-server/tool-definition-improvement.d.ts.map +1 -0
  20. package/dist/app-server/tool-definition-improvement.js +78 -0
  21. package/dist/app-server/tool-definition-improvement.js.map +1 -0
  22. package/dist/app-server/tool-definition-quality.d.ts +96 -0
  23. package/dist/app-server/tool-definition-quality.d.ts.map +1 -0
  24. package/dist/app-server/tool-definition-quality.js +237 -0
  25. package/dist/app-server/tool-definition-quality.js.map +1 -0
  26. package/dist/app-server/types.d.ts +25 -25
  27. package/package.json +1 -1
  28. package/dist/app/assets/index-Bug5M-yX.js +0 -258
  29. package/dist/app/assets/index-CVe_v-Bh.css +0 -1
@@ -0,0 +1,237 @@
1
+ import { createHash } from 'node:crypto';
2
+ export const DEFINITION_QUALITY_DIMENSIONS = {
3
+ purpose_clarity: 25,
4
+ usage_guidelines: 20,
5
+ behavioral_transparency: 20,
6
+ parameter_semantics: 15,
7
+ conciseness_structure: 10,
8
+ contextual_completeness: 10
9
+ };
10
+ function canonicalize(value, stack = new WeakSet()) {
11
+ if (value === null || typeof value !== 'object')
12
+ return value;
13
+ if (stack.has(value))
14
+ return '[Circular]';
15
+ stack.add(value);
16
+ if (Array.isArray(value))
17
+ return value.map((item) => canonicalize(item, stack));
18
+ const object = value;
19
+ return Object.fromEntries(Object.keys(object)
20
+ .sort()
21
+ .map((key) => [key, canonicalize(object[key], stack)]));
22
+ }
23
+ function schemaProperties(schema) {
24
+ if (!schema || typeof schema !== 'object' || Array.isArray(schema))
25
+ return {};
26
+ const properties = schema.properties;
27
+ return properties && typeof properties === 'object' && !Array.isArray(properties)
28
+ ? properties
29
+ : {};
30
+ }
31
+ function hasNestedObjectSchema(value, seen = new WeakSet(), depth = 0) {
32
+ if (!value || typeof value !== 'object')
33
+ return false;
34
+ if (seen.has(value))
35
+ return false;
36
+ seen.add(value);
37
+ if (Array.isArray(value))
38
+ return value.some((item) => hasNestedObjectSchema(item, seen, depth));
39
+ const object = value;
40
+ if (depth > 0 && object.type === 'object')
41
+ return true;
42
+ return Object.values(object).some((child) => hasNestedObjectSchema(child, seen, depth + 1));
43
+ }
44
+ export function buildDefinitionQualityContext(tool) {
45
+ const properties = schemaProperties(tool.inputSchema);
46
+ const propertyValues = Object.values(properties);
47
+ const paramCount = propertyValues.length;
48
+ const described = propertyValues.filter((value) => value &&
49
+ typeof value === 'object' &&
50
+ typeof value.description === 'string' &&
51
+ String(value.description).trim().length > 0).length;
52
+ const enums = propertyValues.filter((value) => value &&
53
+ typeof value === 'object' &&
54
+ Array.isArray(value.enum)).length;
55
+ const input = (tool.inputSchema ?? {});
56
+ const required = Array.isArray(input.required) ? input.required.length : 0;
57
+ const canonical = JSON.stringify(canonicalize({
58
+ name: tool.name,
59
+ title: tool.title ?? null,
60
+ description: tool.description ?? null,
61
+ inputSchema: tool.inputSchema ?? null,
62
+ outputSchema: tool.outputSchema ?? null,
63
+ annotations: tool.annotations ?? null
64
+ }));
65
+ return {
66
+ paramCount,
67
+ requiredParamCount: required,
68
+ paramsWithDescriptions: described,
69
+ paramsWithEnums: enums,
70
+ schemaDescriptionCoverage: paramCount === 0 ? 100 : Math.round((described / paramCount) * 100),
71
+ hasNestedObjects: hasNestedObjectSchema(tool.inputSchema),
72
+ hasOutputSchema: !!tool.outputSchema &&
73
+ typeof tool.outputSchema === 'object' &&
74
+ Object.keys(tool.outputSchema).length > 0,
75
+ hasAnnotations: !!tool.annotations &&
76
+ typeof tool.annotations === 'object' &&
77
+ Object.keys(tool.annotations).length > 0,
78
+ titleIsMeaningful: typeof tool.title === 'string' &&
79
+ tool.title.trim().length > tool.name.trim().length &&
80
+ tool.title.trim().toLowerCase() !== tool.name.trim().toLowerCase(),
81
+ definitionBytes: Buffer.byteLength(canonical, 'utf8'),
82
+ definitionHash: createHash('sha256').update(canonical).digest('hex').slice(0, 16)
83
+ };
84
+ }
85
+ function isRecord(value) {
86
+ return !!value && typeof value === 'object' && !Array.isArray(value);
87
+ }
88
+ export function parseDefinitionQualityEvaluation(value) {
89
+ const root = isRecord(value) && isRecord(value.definitionQuality) ? value.definitionQuality : value;
90
+ if (!isRecord(root)) {
91
+ throw new Error('Invalid definitionQuality evaluation');
92
+ }
93
+ const raw = root;
94
+ const scoreRoot = isRecord(raw.scores)
95
+ ? raw.scores
96
+ : isRecord(raw.dimensionScores)
97
+ ? raw.dimensionScores
98
+ : undefined;
99
+ const summary = typeof raw.summary === 'string'
100
+ ? raw.summary
101
+ : typeof raw.overallSummary === 'string'
102
+ ? raw.overallSummary
103
+ : '';
104
+ if (!scoreRoot || !summary.trim()) {
105
+ throw new Error('Invalid definitionQuality evaluation');
106
+ }
107
+ const scores = {};
108
+ for (const dimension of Object.keys(DEFINITION_QUALITY_DIMENSIONS)) {
109
+ const item = scoreRoot[dimension];
110
+ const rawScore = isRecord(item) ? item.score : undefined;
111
+ const score = typeof rawScore === 'string' && /^\d+$/.test(rawScore) ? Number(rawScore) : rawScore;
112
+ const justification = isRecord(item)
113
+ ? typeof item.justification === 'string'
114
+ ? item.justification
115
+ : item.evidence
116
+ : undefined;
117
+ if (!Number.isInteger(score) || score < 1 || score > 5) {
118
+ throw new Error('Definition quality score for ' + dimension + ' must be an integer between 1 and 5');
119
+ }
120
+ if (typeof justification !== 'string' || !justification.trim()) {
121
+ throw new Error('Definition quality justification for ' + dimension + ' is required');
122
+ }
123
+ scores[dimension] = {
124
+ score: score,
125
+ justification: justification.trim()
126
+ };
127
+ }
128
+ return {
129
+ scores,
130
+ annotationContradiction: raw.annotationContradiction === true,
131
+ summary: summary.trim()
132
+ };
133
+ }
134
+ export function computeDefinitionQualityTier(score) {
135
+ if (score >= 3.5)
136
+ return 'A';
137
+ if (score >= 3)
138
+ return 'B';
139
+ if (score >= 2)
140
+ return 'C';
141
+ if (score >= 1)
142
+ return 'D';
143
+ return 'F';
144
+ }
145
+ function roundScoreFromHundredths(numerator, denominator) {
146
+ return Math.floor((20 * numerator + denominator) / (2 * denominator)) / 10;
147
+ }
148
+ function roundScoreFromTenths(numerator, denominator) {
149
+ return Math.floor((2 * numerator + denominator) / (2 * denominator)) / 10;
150
+ }
151
+ export function finalizeDefinitionQuality(params) {
152
+ const context = buildDefinitionQualityContext(params.tool);
153
+ const parsed = parseDefinitionQualityEvaluation(isRecord(params.evaluation) && 'definitionQuality' in params.evaluation
154
+ ? params.evaluation
155
+ : { definitionQuality: params.evaluation });
156
+ const missing = !params.tool.description?.trim();
157
+ const tautological = !missing &&
158
+ [params.tool.name, params.tool.title].some((value) => value?.trim().toLowerCase() === params.tool.description?.trim().toLowerCase());
159
+ const flags = [];
160
+ if (missing)
161
+ flags.push('no_description');
162
+ if (tautological)
163
+ flags.push('tautological_description');
164
+ if (parsed.annotationContradiction)
165
+ flags.push('annotation_contradiction');
166
+ const dimensions = {};
167
+ let weighted = 0;
168
+ for (const dimension of Object.keys(DEFINITION_QUALITY_DIMENSIONS)) {
169
+ const score = missing
170
+ ? 1
171
+ : dimension === 'purpose_clarity' && tautological
172
+ ? Math.min(parsed.scores[dimension].score, 2)
173
+ : parsed.scores[dimension].score;
174
+ weighted += score * DEFINITION_QUALITY_DIMENSIONS[dimension];
175
+ dimensions[dimension] = {
176
+ score: score,
177
+ weight: DEFINITION_QUALITY_DIMENSIONS[dimension],
178
+ justification: missing
179
+ ? 'The tool has no usable description to evaluate.'
180
+ : parsed.scores[dimension].justification
181
+ };
182
+ }
183
+ const overallScore = missing ? 1 : roundScoreFromHundredths(weighted, 100);
184
+ const smells = Object.keys(dimensions).filter((dimension) => dimensions[dimension].score < 3);
185
+ return {
186
+ methodology: 'mcplab-definition-quality',
187
+ methodologyVersion: '1.0',
188
+ methodologySource: 'https://github.com/glama-ai/tool-definition-quality-score',
189
+ scoredAt: params.now ?? new Date().toISOString(),
190
+ definitionHash: context.definitionHash,
191
+ overallScore,
192
+ tier: computeDefinitionQualityTier(overallScore),
193
+ passing: overallScore >= 3,
194
+ summary: missing
195
+ ? 'This tool has no description, so an agent cannot reliably understand when to use it.'
196
+ : parsed.summary,
197
+ dimensions,
198
+ smells,
199
+ flags,
200
+ contextSignals: context
201
+ };
202
+ }
203
+ export function computeDefinitionQualityAggregate(items, toolsDiscovered) {
204
+ if (items.length === 0) {
205
+ return {
206
+ label: toolsDiscovered === 0 ? 'server' : 'selection',
207
+ score: 0,
208
+ tier: 'F',
209
+ toolsScored: 0,
210
+ toolsDiscovered,
211
+ toolsPassing: 0,
212
+ meanScore: 0,
213
+ minimumScore: 0
214
+ };
215
+ }
216
+ const scoresTenths = items.map((item) => Math.round(item.quality.overallScore * 10));
217
+ const sumTenths = scoresTenths.reduce((sum, score) => sum + score, 0);
218
+ const minimumTenths = Math.min(...scoresTenths);
219
+ const score = roundScoreFromTenths(6 * sumTenths + 4 * items.length * minimumTenths, 10 * items.length);
220
+ const weakest = items[scoresTenths.indexOf(minimumTenths)];
221
+ const weakestDimension = Object.keys(DEFINITION_QUALITY_DIMENSIONS).sort((a, b) => (5 - weakest.quality.dimensions[b].score) * DEFINITION_QUALITY_DIMENSIONS[b] -
222
+ (5 - weakest.quality.dimensions[a].score) * DEFINITION_QUALITY_DIMENSIONS[a])[0];
223
+ return {
224
+ label: items.length === toolsDiscovered ? 'server' : 'selection',
225
+ score,
226
+ tier: computeDefinitionQualityTier(score),
227
+ toolsScored: items.length,
228
+ toolsDiscovered,
229
+ toolsPassing: items.filter((item) => item.quality.passing).length,
230
+ meanScore: roundScoreFromTenths(sumTenths, 10 * items.length),
231
+ minimumScore: minimumTenths / 10,
232
+ weakestTool: weakest.toolName,
233
+ weakestDimension,
234
+ bestNextAction: weakest.quality.dimensions[weakestDimension].justification
235
+ };
236
+ }
237
+ //# sourceMappingURL=tool-definition-quality.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-definition-quality.js","sourceRoot":"","sources":["../../src/app-server/tool-definition-quality.ts"],"names":[],"mappings":"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"}
@@ -1,35 +1,35 @@
1
1
  import type { HealthMcpConnectionInfo } from '@inspectr/mcplab-core';
2
2
  export type { HealthMcpConnectionInfo };
3
3
  export interface AppServerOptions {
4
- host: string;
5
- port: number;
6
- evalsDir: string;
7
- runsDir: string;
8
- toolAnalysisResultsDir: string;
9
- librariesDir: string;
10
- dev: boolean;
11
- open: boolean;
4
+ host: string;
5
+ port: number;
6
+ evalsDir: string;
7
+ runsDir: string;
8
+ toolAnalysisResultsDir: string;
9
+ librariesDir: string;
10
+ dev: boolean;
11
+ open: boolean;
12
12
  }
13
13
  export interface AppSettings {
14
- workspaceRoot: string;
15
- evalsDir: string;
16
- runsDir: string;
17
- toolAnalysisResultsDir: string;
18
- librariesDir: string;
19
- defaultQueueWorkers: number;
20
- scenarioAssistantAgentName?: string;
21
- evaluationJudgeAgentName?: string;
14
+ workspaceRoot: string;
15
+ evalsDir: string;
16
+ runsDir: string;
17
+ toolAnalysisResultsDir: string;
18
+ librariesDir: string;
19
+ defaultQueueWorkers: number;
20
+ scenarioAssistantAgentName?: string;
21
+ evaluationJudgeAgentName?: string;
22
22
  }
23
23
  export interface HealthResponse {
24
- ok: boolean;
25
- version: string;
26
- mcp: HealthMcpConnectionInfo;
24
+ ok: boolean;
25
+ version: string;
26
+ mcp: HealthMcpConnectionInfo;
27
27
  }
28
28
  export interface DevMcpServerRuntime {
29
- host: string;
30
- port: number;
31
- path: string;
32
- targetBaseUrl: string;
33
- stop: () => void;
29
+ host: string;
30
+ port: number;
31
+ path: string;
32
+ targetBaseUrl: string;
33
+ stop: () => void;
34
34
  }
35
- //# sourceMappingURL=types.d.ts.map
35
+ //# sourceMappingURL=types.d.ts.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@inspectr/mcplab",
3
- "version": "1.28.3",
3
+ "version": "1.28.5",
4
4
  "description": "MCPLab - Test and evaluate MCP servers with LLMs — run evals, compare agents and launch the MCPLab web app",
5
5
  "license": "MIT",
6
6
  "homepage": "https://mcplab.inspectr.dev",