@inkog-io/mcp 1.0.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 (55) hide show
  1. package/LICENSE +190 -0
  2. package/README.md +265 -0
  3. package/dist/api/client.d.ts +108 -0
  4. package/dist/api/client.d.ts.map +1 -0
  5. package/dist/api/client.js +288 -0
  6. package/dist/api/client.js.map +1 -0
  7. package/dist/api/types.d.ts +286 -0
  8. package/dist/api/types.d.ts.map +1 -0
  9. package/dist/api/types.js +21 -0
  10. package/dist/api/types.js.map +1 -0
  11. package/dist/config.d.ts +68 -0
  12. package/dist/config.d.ts.map +1 -0
  13. package/dist/config.js +130 -0
  14. package/dist/config.js.map +1 -0
  15. package/dist/index.d.ts +19 -0
  16. package/dist/index.d.ts.map +1 -0
  17. package/dist/index.js +203 -0
  18. package/dist/index.js.map +1 -0
  19. package/dist/tools/audit-a2a.d.ts +20 -0
  20. package/dist/tools/audit-a2a.d.ts.map +1 -0
  21. package/dist/tools/audit-a2a.js +382 -0
  22. package/dist/tools/audit-a2a.js.map +1 -0
  23. package/dist/tools/audit-mcp.d.ts +16 -0
  24. package/dist/tools/audit-mcp.d.ts.map +1 -0
  25. package/dist/tools/audit-mcp.js +259 -0
  26. package/dist/tools/audit-mcp.js.map +1 -0
  27. package/dist/tools/compliance.d.ts +14 -0
  28. package/dist/tools/compliance.d.ts.map +1 -0
  29. package/dist/tools/compliance.js +255 -0
  30. package/dist/tools/compliance.js.map +1 -0
  31. package/dist/tools/explain.d.ts +14 -0
  32. package/dist/tools/explain.d.ts.map +1 -0
  33. package/dist/tools/explain.js +202 -0
  34. package/dist/tools/explain.js.map +1 -0
  35. package/dist/tools/governance.d.ts +16 -0
  36. package/dist/tools/governance.d.ts.map +1 -0
  37. package/dist/tools/governance.js +200 -0
  38. package/dist/tools/governance.js.map +1 -0
  39. package/dist/tools/index.d.ts +50 -0
  40. package/dist/tools/index.d.ts.map +1 -0
  41. package/dist/tools/index.js +94 -0
  42. package/dist/tools/index.js.map +1 -0
  43. package/dist/tools/mlbom.d.ts +18 -0
  44. package/dist/tools/mlbom.d.ts.map +1 -0
  45. package/dist/tools/mlbom.js +344 -0
  46. package/dist/tools/mlbom.js.map +1 -0
  47. package/dist/tools/scan.d.ts +15 -0
  48. package/dist/tools/scan.d.ts.map +1 -0
  49. package/dist/tools/scan.js +270 -0
  50. package/dist/tools/scan.js.map +1 -0
  51. package/dist/utils/file-reader.d.ts +55 -0
  52. package/dist/utils/file-reader.d.ts.map +1 -0
  53. package/dist/utils/file-reader.js +269 -0
  54. package/dist/utils/file-reader.js.map +1 -0
  55. package/package.json +64 -0
@@ -0,0 +1,382 @@
1
+ /**
2
+ * inkog_audit_a2a Tool
3
+ *
4
+ * P2 - Agent-to-Agent (A2A) Security Auditing (MULTI-AGENT SECURITY)
5
+ *
6
+ * Audits communication patterns in multi-agent systems for:
7
+ * - Infinite delegation loops
8
+ * - Privilege escalation via delegation
9
+ * - Data leakage between agents
10
+ * - Unauthorized agent handoffs
11
+ * - Missing permission guards
12
+ *
13
+ * Supports: Google A2A protocol, CrewAI, LangGraph, auto-detection
14
+ *
15
+ * Aligned with Google Cloud AI Agent Trends 2026:
16
+ * "Multi-agent orchestration is the future of enterprise AI"
17
+ */
18
+ import { z } from 'zod';
19
+ import { getClient, InkogAuthError, InkogNetworkError } from '../api/client.js';
20
+ import { getRelativePaths, readDirectory } from '../utils/file-reader.js';
21
+ // =============================================================================
22
+ // Schema
23
+ // =============================================================================
24
+ const A2AArgsSchema = z.object({
25
+ path: z.string().describe('Path to multi-agent system codebase'),
26
+ protocol: z
27
+ .enum(['a2a', 'crewai', 'langgraph', 'auto-detect'])
28
+ .optional()
29
+ .default('auto-detect')
30
+ .describe('Multi-agent protocol: a2a (Google), crewai, langgraph, or auto-detect'),
31
+ check_delegation_chains: z
32
+ .boolean()
33
+ .optional()
34
+ .default(true)
35
+ .describe('Check for infinite delegation loops and unauthorized handoffs'),
36
+ });
37
+ // =============================================================================
38
+ // Helpers
39
+ // =============================================================================
40
+ function formatSeverityIcon(severity) {
41
+ switch (severity) {
42
+ case 'CRITICAL':
43
+ return 'šŸ”“';
44
+ case 'HIGH':
45
+ return '🟠';
46
+ case 'MEDIUM':
47
+ return '🟔';
48
+ case 'LOW':
49
+ return '🟢';
50
+ default:
51
+ return '⚪';
52
+ }
53
+ }
54
+ function formatProtocol(protocol) {
55
+ switch (protocol) {
56
+ case 'a2a':
57
+ return 'Google A2A Protocol';
58
+ case 'crewai':
59
+ return 'CrewAI';
60
+ case 'langgraph':
61
+ return 'LangGraph';
62
+ case 'auto-detect':
63
+ return 'Auto-detected';
64
+ default:
65
+ return protocol;
66
+ }
67
+ }
68
+ function formatSecurityScore(score) {
69
+ if (score >= 90) {
70
+ return `āœ… ${score}/100 (Excellent)`;
71
+ }
72
+ else if (score >= 70) {
73
+ return `🟢 ${score}/100 (Good)`;
74
+ }
75
+ else if (score >= 50) {
76
+ return `🟔 ${score}/100 (Fair)`;
77
+ }
78
+ else if (score >= 30) {
79
+ return `🟠 ${score}/100 (Poor)`;
80
+ }
81
+ else {
82
+ return `šŸ”“ ${score}/100 (Critical)`;
83
+ }
84
+ }
85
+ function formatAgent(agent) {
86
+ let output = `šŸ¤– ${agent.name}`;
87
+ if (agent.role !== undefined) {
88
+ output += ` (${agent.role})`;
89
+ }
90
+ output += '\n';
91
+ output += ` šŸ“ ${agent.file}:${agent.line}\n`;
92
+ if (agent.tools.length > 0) {
93
+ output += ` šŸ”§ Tools: ${agent.tools.join(', ')}\n`;
94
+ }
95
+ if (agent.permissions.length > 0) {
96
+ output += ` šŸ” Permissions: ${agent.permissions.join(', ')}\n`;
97
+ }
98
+ return output;
99
+ }
100
+ function formatDelegationEdge(edge) {
101
+ const arrow = edge.type === 'spawn' ? '⟹' : edge.type === 'handoff' ? '→' : '⇢';
102
+ const guards = edge.hasGuards ? 'šŸ›”ļø' : 'āš ļø';
103
+ return ` ${edge.from} ${arrow} ${edge.to} [${edge.type}] ${guards}`;
104
+ }
105
+ function formatIssue(issue) {
106
+ const icon = formatSeverityIcon(issue.severity);
107
+ let output = `${icon} [${issue.severity}] ${issue.title}\n`;
108
+ output += ` Category: ${formatIssueCategory(issue.category)}\n`;
109
+ output += ` ${issue.description}\n`;
110
+ output += ` Agents: ${issue.agents.join(', ')}\n`;
111
+ output += ` šŸ“ ${issue.file}:${issue.line}\n`;
112
+ output += ` šŸ’” ${issue.recommendation}`;
113
+ return output;
114
+ }
115
+ function formatIssueCategory(category) {
116
+ switch (category) {
117
+ case 'infinite-delegation':
118
+ return 'ā™¾ļø Infinite Delegation';
119
+ case 'privilege-escalation':
120
+ return 'ā¬†ļø Privilege Escalation';
121
+ case 'data-leakage':
122
+ return 'šŸ’§ Data Leakage';
123
+ case 'unauthorized-handoff':
124
+ return '🚫 Unauthorized Handoff';
125
+ case 'missing-guards':
126
+ return 'šŸ›”ļø Missing Guards';
127
+ default:
128
+ return category;
129
+ }
130
+ }
131
+ function renderDelegationGraph(agents, edges) {
132
+ if (agents.length === 0 || edges.length === 0) {
133
+ return 'No delegation relationships detected.\n';
134
+ }
135
+ let output = '\n';
136
+ // Simple ASCII graph representation
137
+ const agentMap = new Map(agents.map((a) => [a.id, a.name]));
138
+ // Group edges by source agent
139
+ const edgesBySource = new Map();
140
+ for (const edge of edges) {
141
+ if (!edgesBySource.has(edge.from)) {
142
+ edgesBySource.set(edge.from, []);
143
+ }
144
+ edgesBySource.get(edge.from).push(edge);
145
+ }
146
+ // Render each agent and its outgoing edges
147
+ for (const agent of agents) {
148
+ const agentEdges = edgesBySource.get(agent.id) ?? [];
149
+ const name = agentMap.get(agent.id) ?? agent.id;
150
+ if (agentEdges.length === 0) {
151
+ output += ` ā”Œā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”\n`;
152
+ output += ` │ ${name.padEnd(12)} │\n`;
153
+ output += ` ā””ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”˜\n`;
154
+ }
155
+ else {
156
+ output += ` ā”Œā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”\n`;
157
+ output += ` │ ${name.padEnd(12)} │`;
158
+ agentEdges.forEach((edge, i) => {
159
+ const targetName = agentMap.get(edge.to) ?? edge.to;
160
+ const arrow = edge.hasGuards ? 'ā”€ā”€šŸ›”ļøā”€ā”€>' : 'ā”€ā”€āš ļøā”€ā”€>';
161
+ if (i === 0) {
162
+ output += `${arrow} ${targetName}`;
163
+ }
164
+ else {
165
+ output += `\n │ │${arrow} ${targetName}`;
166
+ }
167
+ });
168
+ output += `\n ā””ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”˜\n`;
169
+ }
170
+ }
171
+ return output;
172
+ }
173
+ // =============================================================================
174
+ // Handler
175
+ // =============================================================================
176
+ async function auditA2AHandler(rawArgs) {
177
+ // Validate arguments
178
+ const parseResult = A2AArgsSchema.safeParse(rawArgs);
179
+ if (!parseResult.success) {
180
+ return {
181
+ content: [
182
+ {
183
+ type: 'text',
184
+ text: `Invalid arguments: ${parseResult.error.message}`,
185
+ },
186
+ ],
187
+ isError: true,
188
+ };
189
+ }
190
+ const args = parseResult.data;
191
+ try {
192
+ // Read files from path
193
+ const readResult = readDirectory(args.path);
194
+ if (readResult.files.length === 0) {
195
+ return {
196
+ content: [
197
+ {
198
+ type: 'text',
199
+ text: `No files found in: ${args.path}`,
200
+ },
201
+ ],
202
+ isError: true,
203
+ };
204
+ }
205
+ // Get relative paths
206
+ const files = getRelativePaths(readResult.files, args.path);
207
+ // Call Inkog API
208
+ const client = getClient();
209
+ const response = await client.auditA2A(files, {
210
+ protocol: args.protocol,
211
+ checkDelegationChains: args.check_delegation_chains,
212
+ });
213
+ // Build formatted output
214
+ let output = '╔══════════════════════════════════════════════════════╗\n';
215
+ output += 'ā•‘ šŸ¤– Agent-to-Agent Security Audit ā•‘\n';
216
+ output += 'ā•šā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•\n\n';
217
+ // Overview
218
+ output += `šŸ“” Protocol: ${formatProtocol(response.protocol)}\n`;
219
+ output += `šŸ¤– Agents Detected: ${response.agents.length}\n`;
220
+ output += `šŸ”— Delegation Edges: ${response.delegationGraph.length}\n`;
221
+ output += `šŸ“Š Security Score: ${formatSecurityScore(response.securityScore)}\n\n`;
222
+ // Topology warnings
223
+ if (response.hasCycles) {
224
+ output += 'āš ļø WARNING: Delegation cycles detected (potential infinite loops)\n';
225
+ }
226
+ if (response.maxDelegationDepth > 5) {
227
+ output += `āš ļø WARNING: Deep delegation chain detected (depth: ${response.maxDelegationDepth})\n`;
228
+ }
229
+ output += '\n';
230
+ // Issues summary
231
+ const critical = response.issues.filter((i) => i.severity === 'CRITICAL').length;
232
+ const high = response.issues.filter((i) => i.severity === 'HIGH').length;
233
+ const medium = response.issues.filter((i) => i.severity === 'MEDIUM').length;
234
+ const low = response.issues.filter((i) => i.severity === 'LOW').length;
235
+ if (response.issues.length === 0) {
236
+ output += 'āœ… No multi-agent security issues detected!\n\n';
237
+ }
238
+ else {
239
+ output += `šŸ“‹ Security Issues: ${response.issues.length}\n`;
240
+ output += ` šŸ”“ Critical: ${critical} | 🟠 High: ${high} | 🟔 Medium: ${medium} | 🟢 Low: ${low}\n\n`;
241
+ }
242
+ // Agent inventory
243
+ if (response.agents.length > 0) {
244
+ output += '━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n\n';
245
+ output += 'šŸ¤– AGENT INVENTORY\n\n';
246
+ for (const agent of response.agents) {
247
+ output += formatAgent(agent) + '\n';
248
+ }
249
+ }
250
+ // Delegation graph visualization
251
+ if (response.delegationGraph.length > 0) {
252
+ output += '━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n\n';
253
+ output += 'šŸ”— DELEGATION GRAPH\n';
254
+ output += renderDelegationGraph(response.agents, response.delegationGraph);
255
+ output += '\n';
256
+ output += 'Delegation Edges:\n';
257
+ for (const edge of response.delegationGraph) {
258
+ output += formatDelegationEdge(edge) + '\n';
259
+ }
260
+ output += '\n';
261
+ output += 'Legend: šŸ›”ļø = has permission guards, āš ļø = no guards\n\n';
262
+ }
263
+ // Detailed issues
264
+ if (response.issues.length > 0) {
265
+ output += '━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n\n';
266
+ output += 'šŸ” SECURITY ISSUES\n\n';
267
+ // Group by category
268
+ const infiniteDelegation = response.issues.filter((i) => i.category === 'infinite-delegation');
269
+ const privilegeEscalation = response.issues.filter((i) => i.category === 'privilege-escalation');
270
+ const dataLeakage = response.issues.filter((i) => i.category === 'data-leakage');
271
+ const unauthorizedHandoff = response.issues.filter((i) => i.category === 'unauthorized-handoff');
272
+ const missingGuards = response.issues.filter((i) => i.category === 'missing-guards');
273
+ if (infiniteDelegation.length > 0) {
274
+ output += 'ā™¾ļø INFINITE DELEGATION RISKS\n\n';
275
+ for (const issue of infiniteDelegation) {
276
+ output += formatIssue(issue) + '\n\n';
277
+ }
278
+ }
279
+ if (privilegeEscalation.length > 0) {
280
+ output += 'ā¬†ļø PRIVILEGE ESCALATION RISKS\n\n';
281
+ for (const issue of privilegeEscalation) {
282
+ output += formatIssue(issue) + '\n\n';
283
+ }
284
+ }
285
+ if (dataLeakage.length > 0) {
286
+ output += 'šŸ’§ DATA LEAKAGE RISKS\n\n';
287
+ for (const issue of dataLeakage) {
288
+ output += formatIssue(issue) + '\n\n';
289
+ }
290
+ }
291
+ if (unauthorizedHandoff.length > 0) {
292
+ output += '🚫 UNAUTHORIZED HANDOFF RISKS\n\n';
293
+ for (const issue of unauthorizedHandoff) {
294
+ output += formatIssue(issue) + '\n\n';
295
+ }
296
+ }
297
+ if (missingGuards.length > 0) {
298
+ output += 'šŸ›”ļø MISSING GUARDS\n\n';
299
+ for (const issue of missingGuards) {
300
+ output += formatIssue(issue) + '\n\n';
301
+ }
302
+ }
303
+ }
304
+ // Recommendations
305
+ if (response.recommendations.length > 0) {
306
+ output += '━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n\n';
307
+ output += 'šŸ’” RECOMMENDATIONS\n\n';
308
+ for (let i = 0; i < response.recommendations.length; i++) {
309
+ output += `${i + 1}. ${response.recommendations[i]}\n`;
310
+ }
311
+ }
312
+ // Footer
313
+ output += '\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n';
314
+ output += 'Multi-Agent Security Audit powered by Inkog AI Security Platform\n';
315
+ output += 'Learn more: https://inkog.io/multi-agent-security\n';
316
+ return {
317
+ content: [
318
+ {
319
+ type: 'text',
320
+ text: output,
321
+ },
322
+ ],
323
+ };
324
+ }
325
+ catch (error) {
326
+ if (error instanceof InkogAuthError) {
327
+ return {
328
+ content: [
329
+ {
330
+ type: 'text',
331
+ text: 'šŸ” API Key Required\n\nGet your free key at https://app.inkog.io',
332
+ },
333
+ ],
334
+ isError: true,
335
+ };
336
+ }
337
+ if (error instanceof InkogNetworkError) {
338
+ return {
339
+ content: [
340
+ {
341
+ type: 'text',
342
+ text: `Network error: ${error.message}`,
343
+ },
344
+ ],
345
+ isError: true,
346
+ };
347
+ }
348
+ throw error;
349
+ }
350
+ }
351
+ // =============================================================================
352
+ // Tool Definition
353
+ // =============================================================================
354
+ export const auditA2aTool = {
355
+ tool: {
356
+ name: 'inkog_audit_a2a',
357
+ description: 'Audit Agent-to-Agent (A2A) communications in multi-agent systems. Detects infinite delegation loops, privilege escalation, data leakage between agents, and unauthorized handoffs. Supports Google A2A protocol, CrewAI, and LangGraph.',
358
+ inputSchema: {
359
+ type: 'object',
360
+ properties: {
361
+ path: {
362
+ type: 'string',
363
+ description: 'Path to multi-agent system codebase',
364
+ },
365
+ protocol: {
366
+ type: 'string',
367
+ enum: ['a2a', 'crewai', 'langgraph', 'auto-detect'],
368
+ default: 'auto-detect',
369
+ description: 'Multi-agent protocol: a2a (Google), crewai, langgraph, or auto-detect',
370
+ },
371
+ check_delegation_chains: {
372
+ type: 'boolean',
373
+ default: true,
374
+ description: 'Check for infinite delegation loops and unauthorized handoffs',
375
+ },
376
+ },
377
+ required: ['path'],
378
+ },
379
+ },
380
+ handler: auditA2AHandler,
381
+ };
382
+ //# sourceMappingURL=audit-a2a.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audit-a2a.js","sourceRoot":"","sources":["../../src/tools/audit-a2a.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * inkog_audit_mcp_server Tool
3
+ *
4
+ * P1 - MCP Server Security Auditing (THE ECOSYSTEM PLAY)
5
+ *
6
+ * Security audit any MCP server from the registry or GitHub repository.
7
+ * Checks for:
8
+ * - Excessive permissions (file system, network, exec)
9
+ * - Data exfiltration risks
10
+ * - Input validation gaps
11
+ * - Credential handling issues
12
+ * - Tool permission boundaries
13
+ */
14
+ import type { ToolDefinition } from './index.js';
15
+ export declare const auditMcpTool: ToolDefinition;
16
+ //# sourceMappingURL=audit-mcp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audit-mcp.d.ts","sourceRoot":"","sources":["../../src/tools/audit-mcp.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAMH,OAAO,KAAK,EAAE,cAAc,EAAc,MAAM,YAAY,CAAC;AA6Q7D,eAAO,MAAM,YAAY,EAAE,cAoB1B,CAAC"}