@reaatech/pi-bench-mcp-server 1.0.1
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/LICENSE +21 -0
- package/README.md +228 -0
- package/dist/index.cjs +797 -0
- package/dist/index.d.cts +146 -0
- package/dist/index.d.ts +146 -0
- package/dist/index.js +770 -0
- package/package.json +55 -0
package/dist/index.d.cts
ADDED
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP Server implementation for prompt-injection-bench
|
|
3
|
+
*/
|
|
4
|
+
interface MCPServerConfig {
|
|
5
|
+
/** Server name */
|
|
6
|
+
name: string;
|
|
7
|
+
/** Server version */
|
|
8
|
+
version: string;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* MCP Server for prompt-injection-bench
|
|
12
|
+
*/
|
|
13
|
+
declare class BenchmarkMCPServer {
|
|
14
|
+
private server;
|
|
15
|
+
private config;
|
|
16
|
+
constructor(config?: Partial<MCPServerConfig>);
|
|
17
|
+
/**
|
|
18
|
+
* Get the list of available tools (exposed for testing)
|
|
19
|
+
*/
|
|
20
|
+
getToolDefinitions(): Array<{
|
|
21
|
+
name: string;
|
|
22
|
+
description: string;
|
|
23
|
+
inputSchema: Record<string, unknown>;
|
|
24
|
+
}>;
|
|
25
|
+
/**
|
|
26
|
+
* Set up tool request handlers
|
|
27
|
+
*/
|
|
28
|
+
private setupToolHandlers;
|
|
29
|
+
/**
|
|
30
|
+
* Handle run_benchmark tool call
|
|
31
|
+
*/
|
|
32
|
+
handleRunBenchmark(args: Record<string, unknown>): Promise<{
|
|
33
|
+
content: Array<{
|
|
34
|
+
type: string;
|
|
35
|
+
text: string;
|
|
36
|
+
}>;
|
|
37
|
+
}>;
|
|
38
|
+
/**
|
|
39
|
+
* Handle compare_defenses tool call
|
|
40
|
+
*/
|
|
41
|
+
handleCompareDefenses(args: Record<string, unknown>): Promise<{
|
|
42
|
+
content: Array<{
|
|
43
|
+
type: string;
|
|
44
|
+
text: string;
|
|
45
|
+
}>;
|
|
46
|
+
}>;
|
|
47
|
+
/**
|
|
48
|
+
* Handle generate_report tool call
|
|
49
|
+
*/
|
|
50
|
+
handleGenerateReport(args: Record<string, unknown>): Promise<{
|
|
51
|
+
content: Array<{
|
|
52
|
+
type: string;
|
|
53
|
+
text: string;
|
|
54
|
+
}>;
|
|
55
|
+
}>;
|
|
56
|
+
/**
|
|
57
|
+
* Handle submit_results tool call
|
|
58
|
+
*/
|
|
59
|
+
handleSubmitResults(args: Record<string, unknown>): Promise<{
|
|
60
|
+
content: Array<{
|
|
61
|
+
type: string;
|
|
62
|
+
text: string;
|
|
63
|
+
}>;
|
|
64
|
+
}>;
|
|
65
|
+
/**
|
|
66
|
+
* Start the MCP server
|
|
67
|
+
*/
|
|
68
|
+
start(): Promise<void>;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Create an MCP server instance
|
|
72
|
+
*/
|
|
73
|
+
declare function createMCPServer(config?: Partial<MCPServerConfig>): BenchmarkMCPServer;
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* Shared report normalization helpers
|
|
77
|
+
*/
|
|
78
|
+
interface NormalizedReportData {
|
|
79
|
+
defense?: string;
|
|
80
|
+
version?: string;
|
|
81
|
+
corpusVersion?: string;
|
|
82
|
+
generatedAt?: string;
|
|
83
|
+
detectionRate: number;
|
|
84
|
+
falsePositiveRate: number;
|
|
85
|
+
totalAttacks: number;
|
|
86
|
+
avgLatencyMs: number;
|
|
87
|
+
categoryBreakdown: Record<string, {
|
|
88
|
+
detectionRate: number;
|
|
89
|
+
totalAttacks: number;
|
|
90
|
+
}>;
|
|
91
|
+
}
|
|
92
|
+
declare function normalizeReportData(results: unknown): NormalizedReportData;
|
|
93
|
+
|
|
94
|
+
/**
|
|
95
|
+
* Seed management for reproducibility
|
|
96
|
+
*/
|
|
97
|
+
interface SeedConfig {
|
|
98
|
+
/** Base seed value */
|
|
99
|
+
baseSeed: number;
|
|
100
|
+
/** Corpus version */
|
|
101
|
+
corpusVersion: string;
|
|
102
|
+
/** Adapter versions */
|
|
103
|
+
adapterVersions: Record<string, string>;
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Manage deterministic random generation
|
|
107
|
+
*/
|
|
108
|
+
declare class SeedManager {
|
|
109
|
+
private seed;
|
|
110
|
+
private config;
|
|
111
|
+
constructor(config?: Partial<SeedConfig>);
|
|
112
|
+
/**
|
|
113
|
+
* Get the current seed
|
|
114
|
+
*/
|
|
115
|
+
getSeed(): number;
|
|
116
|
+
/**
|
|
117
|
+
* Set a new seed
|
|
118
|
+
*/
|
|
119
|
+
setSeed(seed: number): void;
|
|
120
|
+
/**
|
|
121
|
+
* Generate a deterministic random number
|
|
122
|
+
*/
|
|
123
|
+
next(): number;
|
|
124
|
+
/**
|
|
125
|
+
* Generate a deterministic random integer in range
|
|
126
|
+
*/
|
|
127
|
+
nextInt(min: number, max: number): number;
|
|
128
|
+
/**
|
|
129
|
+
* Shuffle an array deterministically
|
|
130
|
+
*/
|
|
131
|
+
shuffle<T>(array: T[]): T[];
|
|
132
|
+
/**
|
|
133
|
+
* Create a hash from config for reproducibility proof
|
|
134
|
+
*/
|
|
135
|
+
createReproducibilityHash(): string;
|
|
136
|
+
/**
|
|
137
|
+
* Get the full config for persistence
|
|
138
|
+
*/
|
|
139
|
+
getConfig(): SeedConfig;
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Create a seed manager instance
|
|
143
|
+
*/
|
|
144
|
+
declare function createSeedManager(config?: Partial<SeedConfig>): SeedManager;
|
|
145
|
+
|
|
146
|
+
export { BenchmarkMCPServer, SeedManager, createMCPServer, createSeedManager, normalizeReportData };
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP Server implementation for prompt-injection-bench
|
|
3
|
+
*/
|
|
4
|
+
interface MCPServerConfig {
|
|
5
|
+
/** Server name */
|
|
6
|
+
name: string;
|
|
7
|
+
/** Server version */
|
|
8
|
+
version: string;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* MCP Server for prompt-injection-bench
|
|
12
|
+
*/
|
|
13
|
+
declare class BenchmarkMCPServer {
|
|
14
|
+
private server;
|
|
15
|
+
private config;
|
|
16
|
+
constructor(config?: Partial<MCPServerConfig>);
|
|
17
|
+
/**
|
|
18
|
+
* Get the list of available tools (exposed for testing)
|
|
19
|
+
*/
|
|
20
|
+
getToolDefinitions(): Array<{
|
|
21
|
+
name: string;
|
|
22
|
+
description: string;
|
|
23
|
+
inputSchema: Record<string, unknown>;
|
|
24
|
+
}>;
|
|
25
|
+
/**
|
|
26
|
+
* Set up tool request handlers
|
|
27
|
+
*/
|
|
28
|
+
private setupToolHandlers;
|
|
29
|
+
/**
|
|
30
|
+
* Handle run_benchmark tool call
|
|
31
|
+
*/
|
|
32
|
+
handleRunBenchmark(args: Record<string, unknown>): Promise<{
|
|
33
|
+
content: Array<{
|
|
34
|
+
type: string;
|
|
35
|
+
text: string;
|
|
36
|
+
}>;
|
|
37
|
+
}>;
|
|
38
|
+
/**
|
|
39
|
+
* Handle compare_defenses tool call
|
|
40
|
+
*/
|
|
41
|
+
handleCompareDefenses(args: Record<string, unknown>): Promise<{
|
|
42
|
+
content: Array<{
|
|
43
|
+
type: string;
|
|
44
|
+
text: string;
|
|
45
|
+
}>;
|
|
46
|
+
}>;
|
|
47
|
+
/**
|
|
48
|
+
* Handle generate_report tool call
|
|
49
|
+
*/
|
|
50
|
+
handleGenerateReport(args: Record<string, unknown>): Promise<{
|
|
51
|
+
content: Array<{
|
|
52
|
+
type: string;
|
|
53
|
+
text: string;
|
|
54
|
+
}>;
|
|
55
|
+
}>;
|
|
56
|
+
/**
|
|
57
|
+
* Handle submit_results tool call
|
|
58
|
+
*/
|
|
59
|
+
handleSubmitResults(args: Record<string, unknown>): Promise<{
|
|
60
|
+
content: Array<{
|
|
61
|
+
type: string;
|
|
62
|
+
text: string;
|
|
63
|
+
}>;
|
|
64
|
+
}>;
|
|
65
|
+
/**
|
|
66
|
+
* Start the MCP server
|
|
67
|
+
*/
|
|
68
|
+
start(): Promise<void>;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Create an MCP server instance
|
|
72
|
+
*/
|
|
73
|
+
declare function createMCPServer(config?: Partial<MCPServerConfig>): BenchmarkMCPServer;
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* Shared report normalization helpers
|
|
77
|
+
*/
|
|
78
|
+
interface NormalizedReportData {
|
|
79
|
+
defense?: string;
|
|
80
|
+
version?: string;
|
|
81
|
+
corpusVersion?: string;
|
|
82
|
+
generatedAt?: string;
|
|
83
|
+
detectionRate: number;
|
|
84
|
+
falsePositiveRate: number;
|
|
85
|
+
totalAttacks: number;
|
|
86
|
+
avgLatencyMs: number;
|
|
87
|
+
categoryBreakdown: Record<string, {
|
|
88
|
+
detectionRate: number;
|
|
89
|
+
totalAttacks: number;
|
|
90
|
+
}>;
|
|
91
|
+
}
|
|
92
|
+
declare function normalizeReportData(results: unknown): NormalizedReportData;
|
|
93
|
+
|
|
94
|
+
/**
|
|
95
|
+
* Seed management for reproducibility
|
|
96
|
+
*/
|
|
97
|
+
interface SeedConfig {
|
|
98
|
+
/** Base seed value */
|
|
99
|
+
baseSeed: number;
|
|
100
|
+
/** Corpus version */
|
|
101
|
+
corpusVersion: string;
|
|
102
|
+
/** Adapter versions */
|
|
103
|
+
adapterVersions: Record<string, string>;
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Manage deterministic random generation
|
|
107
|
+
*/
|
|
108
|
+
declare class SeedManager {
|
|
109
|
+
private seed;
|
|
110
|
+
private config;
|
|
111
|
+
constructor(config?: Partial<SeedConfig>);
|
|
112
|
+
/**
|
|
113
|
+
* Get the current seed
|
|
114
|
+
*/
|
|
115
|
+
getSeed(): number;
|
|
116
|
+
/**
|
|
117
|
+
* Set a new seed
|
|
118
|
+
*/
|
|
119
|
+
setSeed(seed: number): void;
|
|
120
|
+
/**
|
|
121
|
+
* Generate a deterministic random number
|
|
122
|
+
*/
|
|
123
|
+
next(): number;
|
|
124
|
+
/**
|
|
125
|
+
* Generate a deterministic random integer in range
|
|
126
|
+
*/
|
|
127
|
+
nextInt(min: number, max: number): number;
|
|
128
|
+
/**
|
|
129
|
+
* Shuffle an array deterministically
|
|
130
|
+
*/
|
|
131
|
+
shuffle<T>(array: T[]): T[];
|
|
132
|
+
/**
|
|
133
|
+
* Create a hash from config for reproducibility proof
|
|
134
|
+
*/
|
|
135
|
+
createReproducibilityHash(): string;
|
|
136
|
+
/**
|
|
137
|
+
* Get the full config for persistence
|
|
138
|
+
*/
|
|
139
|
+
getConfig(): SeedConfig;
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Create a seed manager instance
|
|
143
|
+
*/
|
|
144
|
+
declare function createSeedManager(config?: Partial<SeedConfig>): SeedManager;
|
|
145
|
+
|
|
146
|
+
export { BenchmarkMCPServer, SeedManager, createMCPServer, createSeedManager, normalizeReportData };
|