agentinit 1.6.0 → 1.8.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/CHANGELOG.md +40 -0
- package/README.md +220 -114
- package/dist/agents/Agent.d.ts +44 -0
- package/dist/agents/Agent.d.ts.map +1 -1
- package/dist/agents/Agent.js +111 -22
- package/dist/agents/Agent.js.map +1 -1
- package/dist/agents/AiderAgent.d.ts +9 -0
- package/dist/agents/AiderAgent.d.ts.map +1 -0
- package/dist/agents/AiderAgent.js +135 -0
- package/dist/agents/AiderAgent.js.map +1 -0
- package/dist/agents/ClaudeAgent.d.ts +4 -0
- package/dist/agents/ClaudeAgent.d.ts.map +1 -1
- package/dist/agents/ClaudeAgent.js +33 -18
- package/dist/agents/ClaudeAgent.js.map +1 -1
- package/dist/agents/ClaudeDesktopAgent.d.ts +5 -0
- package/dist/agents/ClaudeDesktopAgent.d.ts.map +1 -1
- package/dist/agents/ClaudeDesktopAgent.js +31 -1
- package/dist/agents/ClaudeDesktopAgent.js.map +1 -1
- package/dist/agents/ClineAgent.d.ts +8 -0
- package/dist/agents/ClineAgent.d.ts.map +1 -0
- package/dist/agents/ClineAgent.js +42 -0
- package/dist/agents/ClineAgent.js.map +1 -0
- package/dist/agents/CodexCliAgent.d.ts +4 -0
- package/dist/agents/CodexCliAgent.d.ts.map +1 -1
- package/dist/agents/CodexCliAgent.js +38 -8
- package/dist/agents/CodexCliAgent.js.map +1 -1
- package/dist/agents/CopilotAgent.d.ts +9 -0
- package/dist/agents/CopilotAgent.d.ts.map +1 -0
- package/dist/agents/CopilotAgent.js +131 -0
- package/dist/agents/CopilotAgent.js.map +1 -0
- package/dist/agents/CursorAgent.d.ts +4 -4
- package/dist/agents/CursorAgent.d.ts.map +1 -1
- package/dist/agents/CursorAgent.js +32 -43
- package/dist/agents/CursorAgent.js.map +1 -1
- package/dist/agents/DroidAgent.d.ts +5 -0
- package/dist/agents/DroidAgent.d.ts.map +1 -1
- package/dist/agents/DroidAgent.js +37 -18
- package/dist/agents/DroidAgent.js.map +1 -1
- package/dist/agents/GeminiCliAgent.d.ts +4 -0
- package/dist/agents/GeminiCliAgent.d.ts.map +1 -1
- package/dist/agents/GeminiCliAgent.js +37 -8
- package/dist/agents/GeminiCliAgent.js.map +1 -1
- package/dist/agents/MarkdownRulesAgent.d.ts +13 -0
- package/dist/agents/MarkdownRulesAgent.d.ts.map +1 -0
- package/dist/agents/MarkdownRulesAgent.js +53 -0
- package/dist/agents/MarkdownRulesAgent.js.map +1 -0
- package/dist/agents/RooCodeAgent.d.ts +9 -0
- package/dist/agents/RooCodeAgent.d.ts.map +1 -0
- package/dist/agents/RooCodeAgent.js +131 -0
- package/dist/agents/RooCodeAgent.js.map +1 -0
- package/dist/agents/WindsurfAgent.d.ts +9 -0
- package/dist/agents/WindsurfAgent.d.ts.map +1 -0
- package/dist/agents/WindsurfAgent.js +127 -0
- package/dist/agents/WindsurfAgent.js.map +1 -0
- package/dist/agents/ZedAgent.d.ts +9 -0
- package/dist/agents/ZedAgent.d.ts.map +1 -0
- package/dist/agents/ZedAgent.js +127 -0
- package/dist/agents/ZedAgent.js.map +1 -0
- package/dist/cli.js +29992 -11107
- package/dist/cli.js.map +1 -1
- package/dist/commands/apply.d.ts +10 -0
- package/dist/commands/apply.d.ts.map +1 -1
- package/dist/commands/apply.js +136 -5
- package/dist/commands/apply.js.map +1 -1
- package/dist/commands/detect.d.ts.map +1 -1
- package/dist/commands/detect.js +25 -0
- package/dist/commands/detect.js.map +1 -1
- package/dist/commands/init.js +1 -1
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/mcp.d.ts +2 -7
- package/dist/commands/mcp.d.ts.map +1 -1
- package/dist/commands/mcp.js +541 -110
- package/dist/commands/mcp.js.map +1 -1
- package/dist/commands/plugins.d.ts +3 -0
- package/dist/commands/plugins.d.ts.map +1 -0
- package/dist/commands/plugins.js +309 -0
- package/dist/commands/plugins.js.map +1 -0
- package/dist/commands/revert.d.ts +7 -0
- package/dist/commands/revert.d.ts.map +1 -0
- package/dist/commands/revert.js +48 -0
- package/dist/commands/revert.js.map +1 -0
- package/dist/commands/rules.d.ts +3 -0
- package/dist/commands/rules.d.ts.map +1 -0
- package/dist/commands/rules.js +354 -0
- package/dist/commands/rules.js.map +1 -0
- package/dist/commands/skills.d.ts +3 -0
- package/dist/commands/skills.d.ts.map +1 -0
- package/dist/commands/skills.js +179 -0
- package/dist/commands/skills.js.map +1 -0
- package/dist/commands/sync.d.ts +1 -0
- package/dist/commands/sync.d.ts.map +1 -1
- package/dist/commands/sync.js +18 -1
- package/dist/commands/sync.js.map +1 -1
- package/dist/commands/verifyMcp.d.ts.map +1 -1
- package/dist/commands/verifyMcp.js +27 -5
- package/dist/commands/verifyMcp.js.map +1 -1
- package/dist/constants/index.d.ts +1 -1
- package/dist/constants/index.d.ts.map +1 -1
- package/dist/constants/index.js +1 -1
- package/dist/constants/index.js.map +1 -1
- package/dist/constants/mcp.d.ts +1 -0
- package/dist/constants/mcp.d.ts.map +1 -1
- package/dist/constants/mcp.js +2 -0
- package/dist/constants/mcp.js.map +1 -1
- package/dist/core/agentDetector.d.ts.map +1 -1
- package/dist/core/agentDetector.js +8 -2
- package/dist/core/agentDetector.js.map +1 -1
- package/dist/core/agentManager.d.ts.map +1 -1
- package/dist/core/agentManager.js +12 -0
- package/dist/core/agentManager.js.map +1 -1
- package/dist/core/gitignoreManager.d.ts +8 -0
- package/dist/core/gitignoreManager.d.ts.map +1 -0
- package/dist/core/gitignoreManager.js +114 -0
- package/dist/core/gitignoreManager.js.map +1 -0
- package/dist/core/managedState.d.ts +42 -0
- package/dist/core/managedState.d.ts.map +1 -0
- package/dist/core/managedState.js +194 -0
- package/dist/core/managedState.js.map +1 -0
- package/dist/core/mcpClient.d.ts +124 -6
- package/dist/core/mcpClient.d.ts.map +1 -1
- package/dist/core/mcpClient.js +385 -39
- package/dist/core/mcpClient.js.map +1 -1
- package/dist/core/pluginManager.d.ts +134 -0
- package/dist/core/pluginManager.d.ts.map +1 -0
- package/dist/core/pluginManager.js +845 -0
- package/dist/core/pluginManager.js.map +1 -0
- package/dist/core/projectSkills.d.ts +19 -0
- package/dist/core/projectSkills.d.ts.map +1 -0
- package/dist/core/projectSkills.js +105 -0
- package/dist/core/projectSkills.js.map +1 -0
- package/dist/core/propagator.d.ts +8 -1
- package/dist/core/propagator.d.ts.map +1 -1
- package/dist/core/propagator.js +179 -36
- package/dist/core/propagator.js.map +1 -1
- package/dist/core/rulesApplicator.d.ts +0 -4
- package/dist/core/rulesApplicator.d.ts.map +1 -1
- package/dist/core/rulesApplicator.js +8 -39
- package/dist/core/rulesApplicator.js.map +1 -1
- package/dist/core/rulesTemplateLoader.js +2 -2
- package/dist/core/rulesTemplateLoader.js.map +1 -1
- package/dist/core/skillsManager.d.ts +61 -0
- package/dist/core/skillsManager.d.ts.map +1 -0
- package/dist/core/skillsManager.js +407 -0
- package/dist/core/skillsManager.js.map +1 -0
- package/dist/lib/utils/index.d.ts +3 -1
- package/dist/lib/utils/index.d.ts.map +1 -1
- package/dist/lib/utils/index.js +4 -1
- package/dist/lib/utils/index.js.map +1 -1
- package/dist/types/index.d.ts +24 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js.map +1 -1
- package/dist/types/jsonSchema.d.ts +31 -0
- package/dist/types/jsonSchema.d.ts.map +1 -0
- package/dist/types/jsonSchema.js +6 -0
- package/dist/types/jsonSchema.js.map +1 -0
- package/dist/types/plugins.d.ts +161 -0
- package/dist/types/plugins.d.ts.map +1 -0
- package/dist/types/plugins.js +2 -0
- package/dist/types/plugins.js.map +1 -0
- package/dist/types/skills.d.ts +50 -0
- package/dist/types/skills.d.ts.map +1 -0
- package/dist/types/skills.js +2 -0
- package/dist/types/skills.js.map +1 -0
- package/dist/utils/packageVersion.d.ts +105 -0
- package/dist/utils/packageVersion.d.ts.map +1 -0
- package/dist/utils/packageVersion.js +219 -0
- package/dist/utils/packageVersion.js.map +1 -0
- package/package.json +7 -2
- package/dist/agentinit-1.6.0.tgz +0 -0
- package/dist/registry/mcpRegistry.d.ts +0 -12
- package/dist/registry/mcpRegistry.d.ts.map +0 -1
- package/dist/registry/mcpRegistry.js +0 -114
- package/dist/registry/mcpRegistry.js.map +0 -1
package/dist/core/mcpClient.js
CHANGED
|
@@ -4,8 +4,10 @@ import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/
|
|
|
4
4
|
import { SSEClientTransport } from "@modelcontextprotocol/sdk/client/sse.js";
|
|
5
5
|
import { countTokens } from 'contextcalc';
|
|
6
6
|
import { green, yellow, red } from 'kleur/colors';
|
|
7
|
+
import { logger } from '../utils/logger.js';
|
|
8
|
+
import { extractPackageFromCommand, fetchLatestVersion } from '../utils/packageVersion.js';
|
|
7
9
|
import { MCPServerType } from '../types/index.js';
|
|
8
|
-
import { DEFAULT_CONNECTION_TIMEOUT_MS, MCP_VERIFIER_CONFIG, TimeoutError, TOKEN_COUNT_THRESHOLDS } from '../constants/index.js';
|
|
10
|
+
import { DEFAULT_CONNECTION_TIMEOUT_MS, MAX_RESOURCE_CONTENT_SIZE, MCP_VERIFIER_CONFIG, TimeoutError, TOKEN_COUNT_THRESHOLDS } from '../constants/index.js';
|
|
9
11
|
export class MCPVerificationError extends Error {
|
|
10
12
|
serverName;
|
|
11
13
|
constructor(message, serverName) {
|
|
@@ -16,6 +18,18 @@ export class MCPVerificationError extends Error {
|
|
|
16
18
|
}
|
|
17
19
|
export class MCPVerifier {
|
|
18
20
|
defaultTimeout;
|
|
21
|
+
/**
|
|
22
|
+
* Creates a new MCP server verifier instance
|
|
23
|
+
*
|
|
24
|
+
* @param defaultTimeout - Default connection timeout in milliseconds (default: 30000)
|
|
25
|
+
*
|
|
26
|
+
* @example
|
|
27
|
+
* ```typescript
|
|
28
|
+
* const verifier = new MCPVerifier();
|
|
29
|
+
* // or with custom timeout
|
|
30
|
+
* const verifier = new MCPVerifier(15000);
|
|
31
|
+
* ```
|
|
32
|
+
*/
|
|
19
33
|
constructor(defaultTimeout = DEFAULT_CONNECTION_TIMEOUT_MS) {
|
|
20
34
|
this.defaultTimeout = defaultTimeout;
|
|
21
35
|
}
|
|
@@ -29,6 +43,122 @@ export class MCPVerifier {
|
|
|
29
43
|
return yellow(tokenCount.toString());
|
|
30
44
|
return red(tokenCount.toString());
|
|
31
45
|
}
|
|
46
|
+
/**
|
|
47
|
+
* Check if tool has valid input schema with properties
|
|
48
|
+
*/
|
|
49
|
+
hasValidInputSchema(tool) {
|
|
50
|
+
return tool.inputSchema !== undefined
|
|
51
|
+
&& typeof tool.inputSchema === 'object'
|
|
52
|
+
&& Object.keys(tool.inputSchema.properties || {}).length > 0;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Format type information from schema property
|
|
56
|
+
*/
|
|
57
|
+
formatType(schema) {
|
|
58
|
+
const type = schema.type || 'any';
|
|
59
|
+
return Array.isArray(type) ? type.join(' | ') : type;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Format number range constraints
|
|
63
|
+
*/
|
|
64
|
+
formatNumberRange(schema) {
|
|
65
|
+
const min = schema.minimum !== undefined ? schema.minimum : '-∞';
|
|
66
|
+
const max = schema.maximum !== undefined ? schema.maximum : '∞';
|
|
67
|
+
return `(${min}-${max})`;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Format string length constraints
|
|
71
|
+
*/
|
|
72
|
+
formatStringLength(schema) {
|
|
73
|
+
const minLen = schema.minLength !== undefined ? schema.minLength : 0;
|
|
74
|
+
const maxLen = schema.maxLength !== undefined ? schema.maxLength : '∞';
|
|
75
|
+
return `length: ${minLen}-${maxLen}`;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Format array item constraints
|
|
79
|
+
*/
|
|
80
|
+
formatArrayConstraints(schema) {
|
|
81
|
+
const constraints = [];
|
|
82
|
+
if (schema.items) {
|
|
83
|
+
const itemType = schema.items.type;
|
|
84
|
+
const itemTypeStr = itemType
|
|
85
|
+
? (Array.isArray(itemType) ? itemType.join(' | ') : itemType)
|
|
86
|
+
: 'any';
|
|
87
|
+
constraints.push(`items: ${itemTypeStr}`);
|
|
88
|
+
if (schema.minItems !== undefined || schema.maxItems !== undefined) {
|
|
89
|
+
const minItems = schema.minItems !== undefined ? schema.minItems : 0;
|
|
90
|
+
const maxItems = schema.maxItems !== undefined ? schema.maxItems : '∞';
|
|
91
|
+
constraints.push(`(${minItems}-${maxItems} items)`);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
return constraints;
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Collect all constraints for a parameter
|
|
98
|
+
*/
|
|
99
|
+
formatConstraints(schema, typeInfo) {
|
|
100
|
+
const constraints = [];
|
|
101
|
+
// Enum values
|
|
102
|
+
if (schema.enum && Array.isArray(schema.enum)) {
|
|
103
|
+
constraints.push(`[${schema.enum.join(', ')}]`);
|
|
104
|
+
}
|
|
105
|
+
// Min/Max for numbers
|
|
106
|
+
if (schema.minimum !== undefined || schema.maximum !== undefined) {
|
|
107
|
+
constraints.push(this.formatNumberRange(schema));
|
|
108
|
+
}
|
|
109
|
+
// Default value
|
|
110
|
+
if (schema.default !== undefined) {
|
|
111
|
+
constraints.push(`default: ${JSON.stringify(schema.default)}`);
|
|
112
|
+
}
|
|
113
|
+
// Min/Max length for strings
|
|
114
|
+
if (schema.minLength !== undefined || schema.maxLength !== undefined) {
|
|
115
|
+
constraints.push(this.formatStringLength(schema));
|
|
116
|
+
}
|
|
117
|
+
// Pattern for strings
|
|
118
|
+
if (schema.pattern) {
|
|
119
|
+
constraints.push(`pattern: ${schema.pattern}`);
|
|
120
|
+
}
|
|
121
|
+
// Array items - handle both single type and union types
|
|
122
|
+
const isArray = Array.isArray(schema.type)
|
|
123
|
+
? schema.type.includes('array')
|
|
124
|
+
: schema.type === 'array';
|
|
125
|
+
if (isArray) {
|
|
126
|
+
constraints.push(...this.formatArrayConstraints(schema));
|
|
127
|
+
}
|
|
128
|
+
return constraints;
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Format a single parameter for display
|
|
132
|
+
*/
|
|
133
|
+
formatParameter(name, schema, isRequired) {
|
|
134
|
+
const parts = [];
|
|
135
|
+
const typeInfo = this.formatType(schema);
|
|
136
|
+
// Parameter name with required/optional label
|
|
137
|
+
parts.push(`${name} (${isRequired ? 'required' : 'optional'})`);
|
|
138
|
+
parts.push(typeInfo);
|
|
139
|
+
// Add description if available
|
|
140
|
+
if (schema.description) {
|
|
141
|
+
parts.push(schema.description);
|
|
142
|
+
}
|
|
143
|
+
// Add constraints
|
|
144
|
+
const constraints = this.formatConstraints(schema, typeInfo);
|
|
145
|
+
if (constraints.length > 0) {
|
|
146
|
+
parts.push(constraints.join(', '));
|
|
147
|
+
}
|
|
148
|
+
return ` • ${parts.join(' - ')}`;
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Format tool parameters from inputSchema for display
|
|
152
|
+
*/
|
|
153
|
+
formatToolParameters(tool) {
|
|
154
|
+
if (!this.hasValidInputSchema(tool)) {
|
|
155
|
+
return [];
|
|
156
|
+
}
|
|
157
|
+
const schema = tool.inputSchema;
|
|
158
|
+
const properties = schema.properties || {};
|
|
159
|
+
const required = schema.required || [];
|
|
160
|
+
return Object.entries(properties).map(([name, prop]) => this.formatParameter(name, prop, required.includes(name)));
|
|
161
|
+
}
|
|
32
162
|
/**
|
|
33
163
|
* Calculate token counts for MCP tools based on how they appear in Claude's context
|
|
34
164
|
*/
|
|
@@ -76,26 +206,71 @@ export class MCPVerifier {
|
|
|
76
206
|
const functionDefinition = JSON.stringify(toolForCounting);
|
|
77
207
|
const claudeToolRepresentation = `<function>${functionDefinition}</function>`;
|
|
78
208
|
// Count tokens for the complete tool representation including wrapper
|
|
79
|
-
//
|
|
80
|
-
//
|
|
81
|
-
|
|
209
|
+
//
|
|
210
|
+
// Token Counting Methodology:
|
|
211
|
+
// We use a 9x multiplier based on empirical testing against Claude Code v2.x /context command.
|
|
212
|
+
// Base calculation counts JSON schema representation, but Claude Code adds significant overhead:
|
|
213
|
+
// - System instructions for MCP tool usage patterns
|
|
214
|
+
// - Additional formatting and metadata per tool
|
|
215
|
+
// - Function calling protocol overhead
|
|
216
|
+
//
|
|
217
|
+
// Example (everything MCP server):
|
|
218
|
+
// Our base count: ~340 tokens (echo tool)
|
|
219
|
+
// Claude Code actual: 596 tokens (echo tool)
|
|
220
|
+
// Ratio: 596/340 = 1.75x
|
|
221
|
+
// Applied multiplier: 5x * 1.75 = 8.75x ≈ 9x
|
|
222
|
+
//
|
|
223
|
+
// This multiplier was validated against @modelcontextprotocol/server-everything v0.6.2
|
|
224
|
+
// on Claude Code v2.x in October 2025.
|
|
225
|
+
const tokenCount = countTokens(claudeToolRepresentation) * 9;
|
|
82
226
|
toolTokenCounts.set(tool.name, tokenCount);
|
|
83
227
|
totalToolTokens += tokenCount;
|
|
84
228
|
}
|
|
85
229
|
catch (error) {
|
|
86
230
|
// If token counting fails for a specific tool, default to 0
|
|
87
|
-
|
|
231
|
+
logger.error(`Failed to count tokens for tool ${tool.name}: ${error instanceof Error ? error.message : String(error)}`);
|
|
88
232
|
toolTokenCounts.set(tool.name, 0);
|
|
89
233
|
}
|
|
90
234
|
}
|
|
91
235
|
return { toolTokenCounts, totalToolTokens };
|
|
92
236
|
}
|
|
93
237
|
/**
|
|
94
|
-
*
|
|
238
|
+
* Verifies a single MCP server and retrieves its capabilities
|
|
239
|
+
*
|
|
240
|
+
* @param server - MCP server configuration
|
|
241
|
+
* @param options - Verification options
|
|
242
|
+
* @param options.timeout - Connection timeout in milliseconds (overrides default)
|
|
243
|
+
* @param options.includeResourceContents - Fetch actual resource data (may be slow for large resources)
|
|
244
|
+
* @param options.includePromptDetails - Fetch prompt templates with full message content
|
|
245
|
+
* @param options.includeTokenCounts - Calculate token usage for tools (default: true)
|
|
246
|
+
* @returns Verification result with server capabilities, connection time, and status
|
|
247
|
+
*
|
|
248
|
+
* @example
|
|
249
|
+
* ```typescript
|
|
250
|
+
* const verifier = new MCPVerifier();
|
|
251
|
+
* const result = await verifier.verifyServer(
|
|
252
|
+
* {
|
|
253
|
+
* name: 'filesystem',
|
|
254
|
+
* type: MCPServerType.STDIO,
|
|
255
|
+
* command: 'npx',
|
|
256
|
+
* args: ['-y', '@modelcontextprotocol/server-filesystem', '/workspace']
|
|
257
|
+
* },
|
|
258
|
+
* {
|
|
259
|
+
* timeout: 10000,
|
|
260
|
+
* includeResourceContents: true,
|
|
261
|
+
* includePromptDetails: true
|
|
262
|
+
* }
|
|
263
|
+
* );
|
|
264
|
+
*
|
|
265
|
+
* if (result.status === 'success') {
|
|
266
|
+
* console.log(`Tools: ${result.capabilities.tools.length}`);
|
|
267
|
+
* console.log(`Total tokens: ${result.capabilities.totalToolTokens}`);
|
|
268
|
+
* }
|
|
269
|
+
* ```
|
|
95
270
|
*/
|
|
96
|
-
async verifyServer(server,
|
|
271
|
+
async verifyServer(server, options) {
|
|
97
272
|
const startTime = Date.now();
|
|
98
|
-
const timeoutMs = timeout || this.defaultTimeout;
|
|
273
|
+
const timeoutMs = options?.timeout || this.defaultTimeout;
|
|
99
274
|
const abortController = new AbortController();
|
|
100
275
|
let client = null;
|
|
101
276
|
let transport = null;
|
|
@@ -131,7 +306,7 @@ export class MCPVerifier {
|
|
|
131
306
|
});
|
|
132
307
|
});
|
|
133
308
|
// Connect to the server with timeout
|
|
134
|
-
const connectPromise = this.connectAndVerify(client, transport, server, abortController.signal);
|
|
309
|
+
const connectPromise = this.connectAndVerify(client, transport, server, abortController.signal, options);
|
|
135
310
|
const capabilities = await Promise.race([connectPromise, timeoutPromise]);
|
|
136
311
|
const connectionTime = Date.now() - startTime;
|
|
137
312
|
return {
|
|
@@ -169,10 +344,37 @@ export class MCPVerifier {
|
|
|
169
344
|
}
|
|
170
345
|
}
|
|
171
346
|
/**
|
|
172
|
-
*
|
|
347
|
+
* Verifies multiple MCP servers in parallel
|
|
348
|
+
*
|
|
349
|
+
* @param servers - Array of MCP server configurations to verify
|
|
350
|
+
* @param options - Verification options (applied to all servers)
|
|
351
|
+
* @returns Array of verification results for each server
|
|
352
|
+
*
|
|
353
|
+
* @example
|
|
354
|
+
* ```typescript
|
|
355
|
+
* const verifier = new MCPVerifier();
|
|
356
|
+
* const servers = [
|
|
357
|
+
* {
|
|
358
|
+
* name: 'filesystem',
|
|
359
|
+
* type: MCPServerType.STDIO,
|
|
360
|
+
* command: 'npx',
|
|
361
|
+
* args: ['-y', '@modelcontextprotocol/server-filesystem', '/workspace']
|
|
362
|
+
* },
|
|
363
|
+
* {
|
|
364
|
+
* name: 'github',
|
|
365
|
+
* type: MCPServerType.HTTP,
|
|
366
|
+
* url: 'https://api.githubcopilot.com/mcp/',
|
|
367
|
+
* headers: { Authorization: 'Bearer YOUR_TOKEN' }
|
|
368
|
+
* }
|
|
369
|
+
* ];
|
|
370
|
+
*
|
|
371
|
+
* const results = await verifier.verifyServers(servers, { timeout: 15000 });
|
|
372
|
+
* const successCount = results.filter(r => r.status === 'success').length;
|
|
373
|
+
* console.log(`${successCount}/${results.length} servers verified successfully`);
|
|
374
|
+
* ```
|
|
173
375
|
*/
|
|
174
|
-
async verifyServers(servers,
|
|
175
|
-
const results = await Promise.allSettled(servers.map(server => this.verifyServer(server,
|
|
376
|
+
async verifyServers(servers, options) {
|
|
377
|
+
const results = await Promise.allSettled(servers.map(server => this.verifyServer(server, options)));
|
|
176
378
|
return results.map((result, index) => {
|
|
177
379
|
if (result.status === 'fulfilled') {
|
|
178
380
|
return result.value;
|
|
@@ -231,7 +433,7 @@ export class MCPVerifier {
|
|
|
231
433
|
/**
|
|
232
434
|
* Connect to the server and retrieve capabilities
|
|
233
435
|
*/
|
|
234
|
-
async connectAndVerify(client, transport, server, abortSignal) {
|
|
436
|
+
async connectAndVerify(client, transport, server, abortSignal, options) {
|
|
235
437
|
try {
|
|
236
438
|
// Check if operation was aborted before starting
|
|
237
439
|
if (abortSignal?.aborted) {
|
|
@@ -239,12 +441,39 @@ export class MCPVerifier {
|
|
|
239
441
|
}
|
|
240
442
|
// Connect to the server
|
|
241
443
|
await client.connect(transport);
|
|
242
|
-
//
|
|
444
|
+
// Extract server version from MCP protocol
|
|
445
|
+
const serverVersion = client.getServerVersion();
|
|
446
|
+
logger.debug(`[Version Detection] MCP protocol returned: ${JSON.stringify(serverVersion)}`);
|
|
447
|
+
// Get server info from MCP protocol or fallback to defaults
|
|
243
448
|
const serverInfo = {
|
|
244
|
-
name: server.name,
|
|
245
|
-
version: "unknown",
|
|
449
|
+
name: serverVersion?.name || server.name,
|
|
450
|
+
version: serverVersion?.version || "unknown",
|
|
246
451
|
protocolVersion: "unknown"
|
|
247
452
|
};
|
|
453
|
+
// If version is still unknown and this is a STDIO server, try npm registry fallback
|
|
454
|
+
if (serverInfo.version === "unknown" && server.type === MCPServerType.STDIO) {
|
|
455
|
+
logger.debug(`[Version Detection] Version unknown, attempting npm registry fallback for STDIO server`);
|
|
456
|
+
const packageSpec = extractPackageFromCommand(server.command, server.args);
|
|
457
|
+
if (packageSpec) {
|
|
458
|
+
logger.debug(`[Version Detection] Extracted package: ${packageSpec}`);
|
|
459
|
+
try {
|
|
460
|
+
const registryVersion = await fetchLatestVersion(packageSpec, { timeout: 3000 });
|
|
461
|
+
if (registryVersion) {
|
|
462
|
+
serverInfo.version = registryVersion;
|
|
463
|
+
logger.debug(`[Version Detection] npm registry returned: ${registryVersion}`);
|
|
464
|
+
}
|
|
465
|
+
else {
|
|
466
|
+
logger.debug(`[Version Detection] npm registry returned no version for: ${packageSpec}`);
|
|
467
|
+
}
|
|
468
|
+
}
|
|
469
|
+
catch (error) {
|
|
470
|
+
logger.debug(`[Version Detection] npm registry lookup failed: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
471
|
+
}
|
|
472
|
+
}
|
|
473
|
+
else {
|
|
474
|
+
logger.debug(`[Version Detection] Could not extract package name from command: ${server.command} ${server.args?.join(' ')}`);
|
|
475
|
+
}
|
|
476
|
+
}
|
|
248
477
|
// Check for abort before continuing
|
|
249
478
|
if (abortSignal?.aborted) {
|
|
250
479
|
throw new Error('Operation aborted');
|
|
@@ -257,6 +486,7 @@ export class MCPVerifier {
|
|
|
257
486
|
const mcpTool = { name: tool.name };
|
|
258
487
|
if (tool.description !== undefined)
|
|
259
488
|
mcpTool.description = tool.description;
|
|
489
|
+
// Cast to any since MCP SDK type doesn't exactly match our JSONSchema interface
|
|
260
490
|
if (tool.inputSchema !== undefined)
|
|
261
491
|
mcpTool.inputSchema = tool.inputSchema;
|
|
262
492
|
return mcpTool;
|
|
@@ -273,7 +503,8 @@ export class MCPVerifier {
|
|
|
273
503
|
const resources = [];
|
|
274
504
|
try {
|
|
275
505
|
const resourcesResponse = await client.listResources();
|
|
276
|
-
resources
|
|
506
|
+
// Fetch all resources in parallel for better performance
|
|
507
|
+
const resourcePromises = resourcesResponse.resources.map(async (resource) => {
|
|
277
508
|
const mcpResource = { uri: resource.uri };
|
|
278
509
|
if (resource.name !== undefined)
|
|
279
510
|
mcpResource.name = resource.name;
|
|
@@ -281,8 +512,42 @@ export class MCPVerifier {
|
|
|
281
512
|
mcpResource.description = resource.description;
|
|
282
513
|
if (resource.mimeType !== undefined)
|
|
283
514
|
mcpResource.mimeType = resource.mimeType;
|
|
515
|
+
// Optionally fetch resource contents
|
|
516
|
+
if (options?.includeResourceContents) {
|
|
517
|
+
try {
|
|
518
|
+
const resourceData = await client.readResource({ uri: resource.uri });
|
|
519
|
+
if (resourceData.contents && resourceData.contents.length > 0) {
|
|
520
|
+
const content = resourceData.contents[0];
|
|
521
|
+
if (content && 'text' in content && typeof content.text === 'string') {
|
|
522
|
+
// Check size limit for text content
|
|
523
|
+
const contentSize = Buffer.byteLength(content.text, 'utf8');
|
|
524
|
+
if (contentSize > MAX_RESOURCE_CONTENT_SIZE) {
|
|
525
|
+
logger.debug(`Resource content too large for ${resource.uri}: ${contentSize} bytes (max: ${MAX_RESOURCE_CONTENT_SIZE})`);
|
|
526
|
+
}
|
|
527
|
+
else {
|
|
528
|
+
mcpResource.contents = content.text;
|
|
529
|
+
}
|
|
530
|
+
}
|
|
531
|
+
else if (content && 'blob' in content && typeof content.blob === 'string') {
|
|
532
|
+
// Check size limit for blob content
|
|
533
|
+
const blobBuffer = Buffer.from(content.blob, 'base64');
|
|
534
|
+
if (blobBuffer.length > MAX_RESOURCE_CONTENT_SIZE) {
|
|
535
|
+
logger.debug(`Resource content too large for ${resource.uri}: ${blobBuffer.length} bytes (max: ${MAX_RESOURCE_CONTENT_SIZE})`);
|
|
536
|
+
}
|
|
537
|
+
else {
|
|
538
|
+
mcpResource.contents = new Uint8Array(blobBuffer);
|
|
539
|
+
}
|
|
540
|
+
}
|
|
541
|
+
}
|
|
542
|
+
}
|
|
543
|
+
catch (resourceError) {
|
|
544
|
+
// Failed to fetch resource content, continue without it
|
|
545
|
+
logger.debug(`Failed to fetch resource content for ${resource.uri}: ${resourceError instanceof Error ? resourceError.message : 'Unknown error'}`);
|
|
546
|
+
}
|
|
547
|
+
}
|
|
284
548
|
return mcpResource;
|
|
285
|
-
})
|
|
549
|
+
});
|
|
550
|
+
resources.push(...await Promise.all(resourcePromises));
|
|
286
551
|
}
|
|
287
552
|
catch (error) {
|
|
288
553
|
// Resources might not be supported, continue
|
|
@@ -295,7 +560,8 @@ export class MCPVerifier {
|
|
|
295
560
|
const prompts = [];
|
|
296
561
|
try {
|
|
297
562
|
const promptsResponse = await client.listPrompts();
|
|
298
|
-
prompts
|
|
563
|
+
// Fetch all prompts in parallel for better performance
|
|
564
|
+
const promptPromises = promptsResponse.prompts.map(async (prompt) => {
|
|
299
565
|
const mcpPrompt = { name: prompt.name };
|
|
300
566
|
if (prompt.description !== undefined)
|
|
301
567
|
mcpPrompt.description = prompt.description;
|
|
@@ -310,22 +576,53 @@ export class MCPVerifier {
|
|
|
310
576
|
return mcpArg;
|
|
311
577
|
});
|
|
312
578
|
}
|
|
579
|
+
// Optionally fetch prompt template
|
|
580
|
+
if (options?.includePromptDetails) {
|
|
581
|
+
try {
|
|
582
|
+
// Get prompt with empty arguments to see the template structure
|
|
583
|
+
const promptData = await client.getPrompt({ name: prompt.name, arguments: {} });
|
|
584
|
+
if (promptData.messages && promptData.messages.length > 0) {
|
|
585
|
+
// Combine all message contents into the template
|
|
586
|
+
mcpPrompt.template = promptData.messages
|
|
587
|
+
.map(msg => {
|
|
588
|
+
if (typeof msg.content === 'string')
|
|
589
|
+
return msg.content;
|
|
590
|
+
if (typeof msg.content === 'object' && 'text' in msg.content)
|
|
591
|
+
return msg.content.text;
|
|
592
|
+
return JSON.stringify(msg.content);
|
|
593
|
+
})
|
|
594
|
+
.join('\n\n');
|
|
595
|
+
}
|
|
596
|
+
}
|
|
597
|
+
catch (promptError) {
|
|
598
|
+
// Failed to fetch prompt details, continue without it
|
|
599
|
+
logger.debug(`Failed to fetch prompt template for ${prompt.name}: ${promptError instanceof Error ? promptError.message : 'Unknown error'}`);
|
|
600
|
+
}
|
|
601
|
+
}
|
|
313
602
|
return mcpPrompt;
|
|
314
|
-
})
|
|
603
|
+
});
|
|
604
|
+
prompts.push(...await Promise.all(promptPromises));
|
|
315
605
|
}
|
|
316
606
|
catch (error) {
|
|
317
607
|
// Prompts might not be supported, continue
|
|
318
608
|
}
|
|
319
|
-
// Calculate token counts for tools
|
|
320
|
-
const
|
|
321
|
-
|
|
609
|
+
// Calculate token counts for tools (unless disabled)
|
|
610
|
+
const shouldIncludeTokenCounts = options?.includeTokenCounts !== false;
|
|
611
|
+
const tokenData = shouldIncludeTokenCounts
|
|
612
|
+
? this.calculateToolTokens(tools, server.name)
|
|
613
|
+
: undefined;
|
|
614
|
+
const capabilities = {
|
|
322
615
|
tools,
|
|
323
616
|
resources,
|
|
324
617
|
prompts,
|
|
325
|
-
serverInfo
|
|
326
|
-
toolTokenCounts,
|
|
327
|
-
totalToolTokens
|
|
618
|
+
serverInfo
|
|
328
619
|
};
|
|
620
|
+
// Only include token fields when they're calculated
|
|
621
|
+
if (tokenData) {
|
|
622
|
+
capabilities.toolTokenCounts = tokenData.toolTokenCounts;
|
|
623
|
+
capabilities.totalToolTokens = tokenData.totalToolTokens;
|
|
624
|
+
}
|
|
625
|
+
return capabilities;
|
|
329
626
|
}
|
|
330
627
|
finally {
|
|
331
628
|
// Clean up the connection
|
|
@@ -338,7 +635,23 @@ export class MCPVerifier {
|
|
|
338
635
|
}
|
|
339
636
|
}
|
|
340
637
|
/**
|
|
341
|
-
*
|
|
638
|
+
* Formats verification results for console display with color-coded output
|
|
639
|
+
*
|
|
640
|
+
* @param results - Array of verification results to format
|
|
641
|
+
* @returns Formatted string with tools, resources, prompts, and connection status
|
|
642
|
+
*
|
|
643
|
+
* @remarks
|
|
644
|
+
* - Token counts are color-coded: green (≤5k), yellow (5k-15k), red (>15k)
|
|
645
|
+
* - Resources and prompts are shown when DEBUG=1 or when content/templates are fetched
|
|
646
|
+
* - Failed servers display connection details for debugging
|
|
647
|
+
*
|
|
648
|
+
* @example
|
|
649
|
+
* ```typescript
|
|
650
|
+
* const verifier = new MCPVerifier();
|
|
651
|
+
* const results = await verifier.verifyServers(servers);
|
|
652
|
+
* const formatted = verifier.formatResults(results);
|
|
653
|
+
* console.log(formatted);
|
|
654
|
+
* ```
|
|
342
655
|
*/
|
|
343
656
|
formatResults(results) {
|
|
344
657
|
const isDebugMode = process.env.DEBUG === '1';
|
|
@@ -360,21 +673,54 @@ export class MCPVerifier {
|
|
|
360
673
|
const tokenCount = capabilities.toolTokenCounts?.get(tool.name) || 0;
|
|
361
674
|
const tokenDisplay = tokenCount > 0 ? ` (${tokenCount} tokens)` : '';
|
|
362
675
|
output.push(` • ${tool.name}${tokenDisplay}${tool.description ? ` - ${tool.description}` : ''}`);
|
|
676
|
+
// Display parameters if available
|
|
677
|
+
const parameters = this.formatToolParameters(tool);
|
|
678
|
+
if (parameters.length > 0) {
|
|
679
|
+
parameters.forEach(param => output.push(param));
|
|
680
|
+
}
|
|
363
681
|
});
|
|
364
682
|
}
|
|
365
|
-
//
|
|
366
|
-
if (
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
683
|
+
// Show resources (in debug mode or if contents were fetched)
|
|
684
|
+
if (capabilities.resources.length > 0) {
|
|
685
|
+
const hasContents = capabilities.resources.some(r => r.contents !== undefined);
|
|
686
|
+
if (isDebugMode || hasContents) {
|
|
687
|
+
output.push(` \n Resources (${capabilities.resources.length}):`);
|
|
688
|
+
capabilities.resources.forEach(resource => {
|
|
689
|
+
const resourceName = resource.name || resource.uri.split('/').pop() || resource.uri;
|
|
690
|
+
output.push(` • ${resourceName}${resource.description ? ` - ${resource.description}` : ''}`);
|
|
691
|
+
// Show content preview if fetched
|
|
692
|
+
if (resource.contents) {
|
|
693
|
+
const contentStr = typeof resource.contents === 'string'
|
|
694
|
+
? resource.contents
|
|
695
|
+
: `<binary data: ${resource.contents.length} bytes>`;
|
|
696
|
+
const preview = contentStr.length > 100
|
|
697
|
+
? contentStr.slice(0, 100) + '...'
|
|
698
|
+
: contentStr;
|
|
699
|
+
output.push(` Content: ${preview}`);
|
|
700
|
+
}
|
|
701
|
+
});
|
|
702
|
+
}
|
|
372
703
|
}
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
capabilities.prompts.
|
|
376
|
-
|
|
377
|
-
|
|
704
|
+
// Show prompts (in debug mode or if templates were fetched)
|
|
705
|
+
if (capabilities.prompts.length > 0) {
|
|
706
|
+
const hasTemplates = capabilities.prompts.some(p => p.template !== undefined);
|
|
707
|
+
if (isDebugMode || hasTemplates) {
|
|
708
|
+
output.push(` \n Prompts (${capabilities.prompts.length}):`);
|
|
709
|
+
capabilities.prompts.forEach(prompt => {
|
|
710
|
+
output.push(` • ${prompt.name}${prompt.description ? ` - ${prompt.description}` : ''}`);
|
|
711
|
+
// Show template preview if fetched
|
|
712
|
+
if (prompt.template) {
|
|
713
|
+
const preview = prompt.template.length > 100
|
|
714
|
+
? prompt.template.slice(0, 100) + '...'
|
|
715
|
+
: prompt.template;
|
|
716
|
+
output.push(` Template: ${preview}`);
|
|
717
|
+
}
|
|
718
|
+
// Show arguments if present
|
|
719
|
+
if (prompt.arguments && prompt.arguments.length > 0) {
|
|
720
|
+
output.push(` Arguments: ${prompt.arguments.map(a => `${a.name}${a.required ? '*' : ''}`).join(', ')}`);
|
|
721
|
+
}
|
|
722
|
+
});
|
|
723
|
+
}
|
|
378
724
|
}
|
|
379
725
|
if (capabilities.tools.length === 0 && capabilities.resources.length === 0 && capabilities.prompts.length === 0) {
|
|
380
726
|
output.push(` ⚠️ No tools, resources, or prompts available`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcpClient.js","sourceRoot":"","sources":["../../src/core/mcpClient.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mcpClient.js","sourceRoot":"","sources":["../../src/core/mcpClient.ts"],"names":[],"mappings":"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"}
|