@weave_protocol/mund 0.1.10 → 0.1.12

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.
@@ -0,0 +1,146 @@
1
+ /**
2
+ * Mund - The Guardian Protocol
3
+ * MCP Server Analyzer - Scans MCP server manifests for security issues
4
+ *
5
+ * Detects:
6
+ * - Prompt injection in tool descriptions ("line jumping" attacks)
7
+ * - Hidden Unicode characters
8
+ * - Dangerous permission patterns
9
+ * - Embedded secrets
10
+ * - Typosquatting of legitimate server names
11
+ */
12
+ import { type DetectionRule, type SecurityIssue, type IAnalyzer } from '../types.js';
13
+ export interface McpServerManifest {
14
+ name: string;
15
+ version: string;
16
+ description?: string;
17
+ tools?: McpToolDefinition[];
18
+ resources?: McpResourceDefinition[];
19
+ prompts?: McpPromptDefinition[];
20
+ repository?: string;
21
+ author?: string;
22
+ }
23
+ export interface McpToolDefinition {
24
+ name: string;
25
+ description?: string;
26
+ inputSchema?: Record<string, unknown>;
27
+ }
28
+ export interface McpResourceDefinition {
29
+ name: string;
30
+ description?: string;
31
+ uri?: string;
32
+ mimeType?: string;
33
+ }
34
+ export interface McpPromptDefinition {
35
+ name: string;
36
+ description?: string;
37
+ arguments?: Array<{
38
+ name: string;
39
+ description?: string;
40
+ required?: boolean;
41
+ }>;
42
+ }
43
+ export interface McpScanResult {
44
+ server_name: string;
45
+ version: string;
46
+ scanned_at: string;
47
+ source?: string;
48
+ issue_count: number;
49
+ by_severity: {
50
+ critical: number;
51
+ high: number;
52
+ medium: number;
53
+ low: number;
54
+ info: number;
55
+ };
56
+ recommendation: 'DO_NOT_INSTALL' | 'REVIEW_CAREFULLY' | 'CAUTION' | 'APPEARS_SAFE';
57
+ capabilities: McpCapabilities;
58
+ issues: SecurityIssue[];
59
+ }
60
+ export interface McpCapabilities {
61
+ network: boolean;
62
+ filesystem: boolean;
63
+ execution: boolean;
64
+ environment: boolean;
65
+ database: boolean;
66
+ crypto: boolean;
67
+ }
68
+ export declare class McpServerAnalyzer implements IAnalyzer {
69
+ name: string;
70
+ type: string;
71
+ analyze(content: string, _rules: DetectionRule[]): Promise<SecurityIssue[]>;
72
+ /**
73
+ * Scan tool descriptions for injection attacks
74
+ */
75
+ private scanToolDescriptions;
76
+ /**
77
+ * Scan resource descriptions
78
+ */
79
+ private scanResourceDescriptions;
80
+ /**
81
+ * Scan prompt template descriptions
82
+ */
83
+ private scanPromptDescriptions;
84
+ /**
85
+ * Scan input schema for suspicious default values
86
+ */
87
+ private scanInputSchema;
88
+ /**
89
+ * Audit tool permissions and capabilities
90
+ */
91
+ auditPermissions(manifest: McpServerManifest): SecurityIssue[];
92
+ /**
93
+ * Scan manifest content for embedded secrets
94
+ */
95
+ private scanForSecrets;
96
+ /**
97
+ * Check for typosquatting of known legitimate servers
98
+ */
99
+ checkTyposquatting(manifest: McpServerManifest): SecurityIssue[];
100
+ /**
101
+ * Check metadata for suspicious patterns
102
+ */
103
+ private checkMetadata;
104
+ /**
105
+ * Find hidden Unicode characters in a string
106
+ */
107
+ private findHiddenUnicode;
108
+ /**
109
+ * Check for common typosquatting patterns
110
+ */
111
+ private hasTyposquatPattern;
112
+ /**
113
+ * Calculate Shannon entropy of a string
114
+ */
115
+ private calculateEntropy;
116
+ /**
117
+ * Calculate Levenshtein distance between two strings
118
+ */
119
+ private levenshteinDistance;
120
+ /**
121
+ * Create a location object
122
+ */
123
+ private createLocation;
124
+ /**
125
+ * Truncate string for display
126
+ */
127
+ private truncate;
128
+ /**
129
+ * Redact a secret for safe display
130
+ */
131
+ private redactSecret;
132
+ /**
133
+ * Parse and validate an MCP manifest
134
+ */
135
+ static parseManifest(content: string): McpServerManifest | null;
136
+ /**
137
+ * Analyze capabilities of a manifest
138
+ */
139
+ static analyzeCapabilities(manifest: McpServerManifest): McpCapabilities;
140
+ /**
141
+ * Get risk level based on capabilities
142
+ */
143
+ static getRiskLevel(capabilities: McpCapabilities): 'CRITICAL' | 'HIGH' | 'MEDIUM' | 'LOW';
144
+ }
145
+ export default McpServerAnalyzer;
146
+ //# sourceMappingURL=mcp-server-analyzer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-server-analyzer.d.ts","sourceRoot":"","sources":["../../src/analyzers/mcp-server-analyzer.ts"],"names":[],"mappings":"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"}