@inkog-io/mcp 1.0.20 → 1.0.21
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 +28 -3
- package/dist/api/client.d.ts +33 -1
- package/dist/api/client.d.ts.map +1 -1
- package/dist/api/client.js +74 -0
- package/dist/api/client.js.map +1 -1
- package/dist/api/types.d.ts +58 -0
- package/dist/api/types.d.ts.map +1 -1
- package/dist/tools/deep-scan.d.ts +3 -0
- package/dist/tools/deep-scan.d.ts.map +1 -0
- package/dist/tools/deep-scan.js +296 -0
- package/dist/tools/deep-scan.js.map +1 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +6 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/mcp-scan.d.ts +11 -0
- package/dist/tools/mcp-scan.d.ts.map +1 -0
- package/dist/tools/mcp-scan.js +350 -0
- package/dist/tools/mcp-scan.js.map +1 -0
- package/dist/tools/scan.js +1 -1
- package/dist/tools/skill-scan.d.ts +11 -0
- package/dist/tools/skill-scan.d.ts.map +1 -0
- package/dist/tools/skill-scan.js +351 -0
- package/dist/tools/skill-scan.js.map +1 -0
- package/package.json +8 -2
|
@@ -0,0 +1,296 @@
|
|
|
1
|
+
import path from 'node:path';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { getClient, InkogApiError, InkogAuthError, InkogNetworkError, InkogRateLimitError, } from '../api/client.js';
|
|
4
|
+
import { getRelativePaths, readDirectory } from '../utils/file-reader.js';
|
|
5
|
+
const DeepScanArgsSchema = z.object({
|
|
6
|
+
path: z.string().describe('File or directory path to scan'),
|
|
7
|
+
agent_name: z
|
|
8
|
+
.string()
|
|
9
|
+
.optional()
|
|
10
|
+
.describe('Agent name for dashboard identification (auto-detected from path if not provided)'),
|
|
11
|
+
});
|
|
12
|
+
const POLL_INTERVAL_MS = 5000;
|
|
13
|
+
const MAX_POLL_DURATION_MS = 30 * 60 * 1000; // 30 minutes
|
|
14
|
+
async function deepScanHandler(rawArgs) {
|
|
15
|
+
const parseResult = DeepScanArgsSchema.safeParse(rawArgs);
|
|
16
|
+
if (!parseResult.success) {
|
|
17
|
+
return {
|
|
18
|
+
content: [
|
|
19
|
+
{
|
|
20
|
+
type: 'text',
|
|
21
|
+
text: `Invalid arguments: ${parseResult.error.message}`,
|
|
22
|
+
},
|
|
23
|
+
],
|
|
24
|
+
isError: true,
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
const args = parseResult.data;
|
|
28
|
+
try {
|
|
29
|
+
const readResult = readDirectory(args.path);
|
|
30
|
+
if (readResult.files.length === 0) {
|
|
31
|
+
return {
|
|
32
|
+
content: [
|
|
33
|
+
{
|
|
34
|
+
type: 'text',
|
|
35
|
+
text: `No scannable files found in: ${args.path}\n\nSupported file types: .py, .js, .ts, .go, .java, .rb, .yaml, .json, .md`,
|
|
36
|
+
},
|
|
37
|
+
],
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
const files = getRelativePaths(readResult.files, args.path);
|
|
41
|
+
const agentName = args.agent_name ?? path.basename(args.path).replace(/\.[^.]+$/, '') ?? undefined;
|
|
42
|
+
const client = getClient();
|
|
43
|
+
const triggerResponse = await client.triggerDeepScan(files, {
|
|
44
|
+
agentName,
|
|
45
|
+
});
|
|
46
|
+
const startTime = Date.now();
|
|
47
|
+
const deadline = startTime + MAX_POLL_DURATION_MS;
|
|
48
|
+
let statusResponse;
|
|
49
|
+
while (Date.now() < deadline) {
|
|
50
|
+
await sleep(POLL_INTERVAL_MS);
|
|
51
|
+
try {
|
|
52
|
+
statusResponse = await client.getDeepScanStatus(triggerResponse.scan_id);
|
|
53
|
+
}
|
|
54
|
+
catch {
|
|
55
|
+
continue;
|
|
56
|
+
}
|
|
57
|
+
if (statusResponse.status === 'completed') {
|
|
58
|
+
break;
|
|
59
|
+
}
|
|
60
|
+
if (statusResponse.status === 'failed') {
|
|
61
|
+
let errorMsg = 'Unknown error';
|
|
62
|
+
if (statusResponse.scan?.error) {
|
|
63
|
+
errorMsg = typeof statusResponse.scan.error === 'string'
|
|
64
|
+
? statusResponse.scan.error
|
|
65
|
+
: JSON.stringify(statusResponse.scan.error);
|
|
66
|
+
}
|
|
67
|
+
else if (statusResponse.scan?.user_agent && typeof statusResponse.scan.user_agent === 'string') {
|
|
68
|
+
const ua = statusResponse.scan.user_agent;
|
|
69
|
+
if (ua.startsWith('deep-checks-error: ')) {
|
|
70
|
+
errorMsg = ua.replace('deep-checks-error: ', '');
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
return {
|
|
74
|
+
content: [
|
|
75
|
+
{
|
|
76
|
+
type: 'text',
|
|
77
|
+
text: `Deep scan failed: ${errorMsg}`,
|
|
78
|
+
},
|
|
79
|
+
],
|
|
80
|
+
isError: true,
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
if (statusResponse?.status !== 'completed') {
|
|
85
|
+
return {
|
|
86
|
+
content: [
|
|
87
|
+
{
|
|
88
|
+
type: 'text',
|
|
89
|
+
text: `Deep scan timed out after 30 minutes. The scan may still be running — check results at:\nhttps://app.inkog.io/dashboard/results/${triggerResponse.scan_id}`,
|
|
90
|
+
},
|
|
91
|
+
],
|
|
92
|
+
isError: true,
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
const elapsedSecs = Math.round((Date.now() - startTime) / 1000);
|
|
96
|
+
const elapsedMin = Math.floor(elapsedSecs / 60);
|
|
97
|
+
const elapsedSecRem = elapsedSecs % 60;
|
|
98
|
+
const elapsedStr = `${elapsedMin}m${String(elapsedSecRem).padStart(2, '0')}s`;
|
|
99
|
+
const scan = statusResponse.scan;
|
|
100
|
+
let output = '╔══════════════════════════════════════════════════════╗\n';
|
|
101
|
+
output += '║ 🔬 Inkog Deep Scan Results ║\n';
|
|
102
|
+
output += '╚══════════════════════════════════════════════════════╝\n\n';
|
|
103
|
+
output += `Completed in ${elapsedStr}\n\n`;
|
|
104
|
+
if (scan) {
|
|
105
|
+
const filesScanned = asNumber(scan.files_scanned);
|
|
106
|
+
const riskScore = asNumber(scan.risk_score);
|
|
107
|
+
const findingsCount = asNumber(scan.findings_count);
|
|
108
|
+
const criticalCount = asNumber(scan.critical_count);
|
|
109
|
+
const highCount = asNumber(scan.high_count);
|
|
110
|
+
const mediumCount = asNumber(scan.medium_count);
|
|
111
|
+
const lowCount = asNumber(scan.low_count);
|
|
112
|
+
output += `📁 Files scanned: ${filesScanned}\n`;
|
|
113
|
+
output += `📊 Risk score: ${riskScore}/100\n`;
|
|
114
|
+
if (scan.governance_score !== undefined && scan.governance_score !== null) {
|
|
115
|
+
output += `🏛️ Governance score: ${asNumber(scan.governance_score)}/100\n`;
|
|
116
|
+
}
|
|
117
|
+
output += '\n';
|
|
118
|
+
if (findingsCount === 0) {
|
|
119
|
+
output += '✅ No security findings detected!\n';
|
|
120
|
+
}
|
|
121
|
+
else {
|
|
122
|
+
output += `📋 Total findings: ${findingsCount}\n`;
|
|
123
|
+
output += ` 🔴 Critical: ${criticalCount} | 🟠 High: ${highCount} | 🟡 Medium: ${mediumCount} | 🟢 Low: ${lowCount}\n`;
|
|
124
|
+
}
|
|
125
|
+
const findings = extractDeepFindings(scan);
|
|
126
|
+
if (findings.length > 0) {
|
|
127
|
+
output += '\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n\n';
|
|
128
|
+
for (const f of findings) {
|
|
129
|
+
const severity = asString(f.severity).toUpperCase();
|
|
130
|
+
const title = asString(f.title) || asString(f.description) || 'Unknown finding';
|
|
131
|
+
const file = f.file ? asString(f.file) : undefined;
|
|
132
|
+
const line = f.line ? Number(f.line) : undefined;
|
|
133
|
+
const category = f.category ? asString(f.category) : undefined;
|
|
134
|
+
const remediation = f.remediation ? asString(f.remediation) : undefined;
|
|
135
|
+
const icon = severityIcon(severity);
|
|
136
|
+
output += `${icon} [${severity}] ${title}\n`;
|
|
137
|
+
if (file) {
|
|
138
|
+
output += line ? ` 📍 ${file}:${line}\n` : ` 📍 ${file}\n`;
|
|
139
|
+
}
|
|
140
|
+
if (category) {
|
|
141
|
+
output += ` 📊 ${category}\n`;
|
|
142
|
+
}
|
|
143
|
+
if (remediation) {
|
|
144
|
+
output += ` 💡 ${remediation}\n`;
|
|
145
|
+
}
|
|
146
|
+
output += '\n';
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
output += `View full results: https://app.inkog.io/dashboard/results/${statusResponse.scan_id}\n`;
|
|
151
|
+
return {
|
|
152
|
+
content: [
|
|
153
|
+
{
|
|
154
|
+
type: 'text',
|
|
155
|
+
text: output,
|
|
156
|
+
},
|
|
157
|
+
],
|
|
158
|
+
};
|
|
159
|
+
}
|
|
160
|
+
catch (error) {
|
|
161
|
+
if (error instanceof InkogAuthError) {
|
|
162
|
+
return {
|
|
163
|
+
content: [
|
|
164
|
+
{
|
|
165
|
+
type: 'text',
|
|
166
|
+
text: '🔐 API Key Required\n\nTo use Inkog, you need an API key.\n\n1. Sign up for free at https://app.inkog.io\n2. Set your API key: export INKOG_API_KEY=sk_live_...\n3. Try again!',
|
|
167
|
+
},
|
|
168
|
+
],
|
|
169
|
+
isError: true,
|
|
170
|
+
};
|
|
171
|
+
}
|
|
172
|
+
if (error instanceof InkogApiError && error.statusCode === 403) {
|
|
173
|
+
return {
|
|
174
|
+
content: [
|
|
175
|
+
{
|
|
176
|
+
type: 'text',
|
|
177
|
+
text: '🔒 Deep scan requires the Inkog Deep role.\n\nContact your admin to enable it at https://app.inkog.io',
|
|
178
|
+
},
|
|
179
|
+
],
|
|
180
|
+
isError: true,
|
|
181
|
+
};
|
|
182
|
+
}
|
|
183
|
+
if (error instanceof InkogRateLimitError) {
|
|
184
|
+
return {
|
|
185
|
+
content: [
|
|
186
|
+
{
|
|
187
|
+
type: 'text',
|
|
188
|
+
text: `⏱️ Rate Limited\n\nToo many requests. Please retry after ${error.retryAfter} seconds.`,
|
|
189
|
+
},
|
|
190
|
+
],
|
|
191
|
+
isError: true,
|
|
192
|
+
};
|
|
193
|
+
}
|
|
194
|
+
if (error instanceof InkogNetworkError) {
|
|
195
|
+
return {
|
|
196
|
+
content: [
|
|
197
|
+
{
|
|
198
|
+
type: 'text',
|
|
199
|
+
text: `Network error: ${error.message}\n\nPlease check your internet connection and try again.`,
|
|
200
|
+
},
|
|
201
|
+
],
|
|
202
|
+
isError: true,
|
|
203
|
+
};
|
|
204
|
+
}
|
|
205
|
+
if (error instanceof InkogApiError) {
|
|
206
|
+
return {
|
|
207
|
+
content: [
|
|
208
|
+
{
|
|
209
|
+
type: 'text',
|
|
210
|
+
text: `API error: ${error.message}${error.details ? `\n\nDetails: ${JSON.stringify(error.details)}` : ''}`,
|
|
211
|
+
},
|
|
212
|
+
],
|
|
213
|
+
isError: true,
|
|
214
|
+
};
|
|
215
|
+
}
|
|
216
|
+
const message = error instanceof Error ? error.message : 'Unknown error occurred';
|
|
217
|
+
return {
|
|
218
|
+
content: [
|
|
219
|
+
{
|
|
220
|
+
type: 'text',
|
|
221
|
+
text: `Error: ${message}`,
|
|
222
|
+
},
|
|
223
|
+
],
|
|
224
|
+
isError: true,
|
|
225
|
+
};
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
function sleep(ms) {
|
|
229
|
+
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
230
|
+
}
|
|
231
|
+
function severityIcon(severity) {
|
|
232
|
+
switch (severity) {
|
|
233
|
+
case 'CRITICAL': return '🔴';
|
|
234
|
+
case 'HIGH': return '🟠';
|
|
235
|
+
case 'MEDIUM': return '🟡';
|
|
236
|
+
case 'LOW': return '🟢';
|
|
237
|
+
default: return '⚪';
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
function asNumber(v) {
|
|
241
|
+
if (typeof v === 'number')
|
|
242
|
+
return v;
|
|
243
|
+
return 0;
|
|
244
|
+
}
|
|
245
|
+
function asString(v) {
|
|
246
|
+
if (typeof v === 'string')
|
|
247
|
+
return v;
|
|
248
|
+
return '';
|
|
249
|
+
}
|
|
250
|
+
function extractDeepFindings(scan) {
|
|
251
|
+
const findingsRaw = scan.findings;
|
|
252
|
+
if (findingsRaw === undefined || findingsRaw === null)
|
|
253
|
+
return [];
|
|
254
|
+
let reportData = findingsRaw;
|
|
255
|
+
if (typeof findingsRaw === 'string') {
|
|
256
|
+
try {
|
|
257
|
+
reportData = JSON.parse(findingsRaw);
|
|
258
|
+
}
|
|
259
|
+
catch {
|
|
260
|
+
return [];
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
if (typeof reportData === 'object' && reportData !== null && !Array.isArray(reportData)) {
|
|
264
|
+
const report = reportData;
|
|
265
|
+
if (Array.isArray(report.findings)) {
|
|
266
|
+
return report.findings.filter((f) => typeof f === 'object' && f !== null);
|
|
267
|
+
}
|
|
268
|
+
return [];
|
|
269
|
+
}
|
|
270
|
+
if (Array.isArray(reportData)) {
|
|
271
|
+
return reportData.filter((f) => typeof f === 'object' && f !== null);
|
|
272
|
+
}
|
|
273
|
+
return [];
|
|
274
|
+
}
|
|
275
|
+
export const deepScanTool = {
|
|
276
|
+
tool: {
|
|
277
|
+
name: 'inkog_deep_scan',
|
|
278
|
+
description: 'Inkog Deep scan for AI agents. Uses advanced analysis to detect complex vulnerabilities, logic flaws, and security issues that pattern-based scanning may miss. Requires the Inkog Deep role. IMPORTANT: Deep scans typically take around 10 minutes — inform the user before starting and let them know the scan is running.',
|
|
279
|
+
inputSchema: {
|
|
280
|
+
type: 'object',
|
|
281
|
+
properties: {
|
|
282
|
+
path: {
|
|
283
|
+
type: 'string',
|
|
284
|
+
description: 'File or directory path to scan',
|
|
285
|
+
},
|
|
286
|
+
agent_name: {
|
|
287
|
+
type: 'string',
|
|
288
|
+
description: 'Agent name for dashboard identification (auto-detected from path if not provided)',
|
|
289
|
+
},
|
|
290
|
+
},
|
|
291
|
+
required: ['path'],
|
|
292
|
+
},
|
|
293
|
+
},
|
|
294
|
+
handler: deepScanHandler,
|
|
295
|
+
};
|
|
296
|
+
//# sourceMappingURL=deep-scan.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deep-scan.js","sourceRoot":"","sources":["../../src/tools/deep-scan.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAM/D,MAAM,WAAW,cAAc;IAC7B,4BAA4B;IAC5B,IAAI,EAAE,IAAI,CAAC;IACX,iDAAiD;IACjD,OAAO,EAAE,WAAW,CAAC;CACtB;AAED,MAAM,MAAM,WAAW,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;AAEjF,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE;QACP,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,UAAU,CAAC;QACpC,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,EAAE,CAAC;IACJ,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAQD;;GAEG;AACH,wBAAgB,YAAY,CAAC,UAAU,EAAE,cAAc,GAAG,IAAI,CAE7D;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAEhE;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,cAAc,EAAE,CAE9C;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,IAAI,EAAE,CAEpC;AAED;;GAEG;AACH,wBAAsB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,CA6B/F;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAM/D,MAAM,WAAW,cAAc;IAC7B,4BAA4B;IAC5B,IAAI,EAAE,IAAI,CAAC;IACX,iDAAiD;IACjD,OAAO,EAAE,WAAW,CAAC;CACtB;AAED,MAAM,MAAM,WAAW,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;AAEjF,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE;QACP,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,UAAU,CAAC;QACpC,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,EAAE,CAAC;IACJ,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAQD;;GAEG;AACH,wBAAgB,YAAY,CAAC,UAAU,EAAE,cAAc,GAAG,IAAI,CAE7D;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAEhE;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,cAAc,EAAE,CAE9C;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,IAAI,EAAE,CAEpC;AAED;;GAEG;AACH,wBAAsB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,CA6B/F;AAiCD,eAAO,MAAM,mBAAmB,QAAoB,CAAC"}
|
package/dist/tools/index.js
CHANGED
|
@@ -75,20 +75,26 @@ export async function callTool(name, args) {
|
|
|
75
75
|
// Import and register all tools
|
|
76
76
|
// This is done at module load time to ensure all tools are available
|
|
77
77
|
import { scanTool } from './scan.js';
|
|
78
|
+
import { deepScanTool } from './deep-scan.js';
|
|
78
79
|
import { governanceTool } from './governance.js';
|
|
79
80
|
import { complianceTool } from './compliance.js';
|
|
80
81
|
import { explainTool } from './explain.js';
|
|
81
82
|
import { auditMcpTool } from './audit-mcp.js';
|
|
82
83
|
import { mlbomTool } from './mlbom.js';
|
|
83
84
|
import { auditA2aTool } from './audit-a2a.js';
|
|
85
|
+
import { skillScanTool } from './skill-scan.js';
|
|
86
|
+
import { mcpScanTool } from './mcp-scan.js';
|
|
84
87
|
// Register all tools
|
|
85
88
|
registerTool(scanTool);
|
|
89
|
+
registerTool(deepScanTool);
|
|
86
90
|
registerTool(governanceTool);
|
|
87
91
|
registerTool(complianceTool);
|
|
88
92
|
registerTool(explainTool);
|
|
89
93
|
registerTool(auditMcpTool);
|
|
90
94
|
registerTool(mlbomTool);
|
|
91
95
|
registerTool(auditA2aTool);
|
|
96
|
+
registerTool(skillScanTool);
|
|
97
|
+
registerTool(mcpScanTool);
|
|
92
98
|
// Export tool count for debugging
|
|
93
99
|
export const registeredToolCount = toolRegistry.size;
|
|
94
100
|
//# sourceMappingURL=index.js.map
|
package/dist/tools/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AA2BH,gFAAgF;AAChF,WAAW;AACX,gFAAgF;AAEhF,MAAM,YAAY,GAAG,IAAI,GAAG,EAA0B,CAAC;AAEvD;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,UAA0B;IACrD,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;AACrD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,OAAO,CAAC,IAAY;IAClC,OAAO,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAChC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW;IACzB,OAAO,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC;AAC3C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW;IACzB,OAAO,WAAW,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC9C,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,IAAY,EAAE,IAA6B;IACxE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE3B,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,wBAAwB,IAAI,GAAG;iBACtC;aACF;YACD,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;IAED,IAAI,CAAC;QACH,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,UAAU,OAAO,EAAE;iBAC1B;aACF;YACD,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;AACH,CAAC;AAED,gFAAgF;AAChF,oBAAoB;AACpB,gFAAgF;AAEhF,gCAAgC;AAChC,qEAAqE;AAErE,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* inkog_mcp_scan Tool
|
|
3
|
+
*
|
|
4
|
+
* Scan MCP servers from registry or by repository URL for security vulnerabilities.
|
|
5
|
+
* Detects tool poisoning, command injection, data exfiltration, excessive permissions, and more.
|
|
6
|
+
*
|
|
7
|
+
* For skill package scanning, use inkog_skill_scan instead.
|
|
8
|
+
*/
|
|
9
|
+
import type { ToolDefinition } from './index.js';
|
|
10
|
+
export declare const mcpScanTool: ToolDefinition;
|
|
11
|
+
//# sourceMappingURL=mcp-scan.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-scan.d.ts","sourceRoot":"","sources":["../../src/tools/mcp-scan.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAYH,OAAO,KAAK,EAAE,cAAc,EAAc,MAAM,YAAY,CAAC;AAyU7D,eAAO,MAAM,WAAW,EAAE,cA6BzB,CAAC"}
|