@democratize-quality/mcp-server 1.1.9 → 1.2.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/cli.js +21 -1
- package/dist/server.d.ts +41 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +225 -0
- package/dist/server.js.map +1 -0
- package/package.json +24 -23
- package/src/config/environments/api-only.js +19 -0
- package/src/config/environments/development.js +19 -0
- package/src/config/environments/production.js +19 -0
- package/src/config/index.js +19 -0
- package/src/config/server.js +19 -0
- package/src/config/tools/api.js +19 -0
- package/src/config/tools/browser.js +19 -0
- package/src/config/tools/default.js +19 -0
- package/src/server.ts +234 -0
- package/src/services/browserService.js +19 -0
- package/src/tools/api/api-generator.js +19 -0
- package/src/tools/api/api-healer.js +19 -0
- package/src/tools/api/api-planner.js +19 -0
- package/src/tools/api/api-project-setup.js +19 -0
- package/src/tools/api/api-request.js +19 -0
- package/src/tools/api/api-session-report.js +19 -0
- package/src/tools/api/api-session-status.js +19 -0
- package/src/tools/api/prompts/generation-prompts.js +19 -0
- package/src/tools/api/prompts/healing-prompts.js +19 -0
- package/src/tools/api/prompts/index.js +19 -0
- package/src/tools/api/prompts/orchestrator.js +19 -0
- package/src/tools/api/prompts/validation-rules.js +19 -0
- package/src/tools/base/ToolBase.js +19 -0
- package/src/tools/base/ToolRegistry.js +19 -0
- package/src/tools/browser/advanced/browser-console.js +19 -0
- package/src/tools/browser/advanced/browser-dialog.js +19 -0
- package/src/tools/browser/advanced/browser-evaluate.js +19 -0
- package/src/tools/browser/advanced/browser-file.js +19 -0
- package/src/tools/browser/advanced/browser-keyboard.js +19 -0
- package/src/tools/browser/advanced/browser-mouse.js +19 -0
- package/src/tools/browser/advanced/browser-network.js +19 -0
- package/src/tools/browser/advanced/browser-pdf.js +19 -0
- package/src/tools/browser/advanced/browser-tabs.js +19 -0
- package/src/tools/browser/advanced/browser-wait.js +19 -0
- package/src/tools/browser/click.js +19 -0
- package/src/tools/browser/close.js +19 -0
- package/src/tools/browser/dom.js +19 -0
- package/src/tools/browser/launch.js +19 -0
- package/src/tools/browser/navigate.js +19 -0
- package/src/tools/browser/screenshot.js +19 -0
- package/src/tools/browser/type.js +19 -0
- package/src/tools/index.js +19 -0
- package/src/utils/agentInstaller.js +19 -0
- package/src/utils/browserHelpers.js +19 -0
- package/browserControl.js +0 -113
- package/mcpServer.js +0 -335
- package/run-server.js +0 -140
package/src/server.ts
ADDED
|
@@ -0,0 +1,234 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Copyright (C) 2025 Democratize Quality
|
|
5
|
+
*
|
|
6
|
+
* This file is part of Democratize Quality MCP Server.
|
|
7
|
+
*
|
|
8
|
+
* Democratize Quality MCP Server is free software: you can redistribute it and/or modify
|
|
9
|
+
* it under the terms of the GNU Affero General Public License as published by
|
|
10
|
+
* the Free Software Foundation, either version 3 of the License, or
|
|
11
|
+
* (at your option) any later version.
|
|
12
|
+
*
|
|
13
|
+
* Democratize Quality MCP Server is distributed in the hope that it will be useful,
|
|
14
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
15
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
16
|
+
* GNU Affero General Public License for more details.
|
|
17
|
+
*
|
|
18
|
+
* You should have received a copy of the GNU Affero General Public License
|
|
19
|
+
* along with Democratize Quality MCP Server. If not, see <https://www.gnu.org/licenses/>.
|
|
20
|
+
*/
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* @democratize-quality/mcp-server
|
|
25
|
+
* Main MCP server implementation for API testing and browser automation
|
|
26
|
+
*/
|
|
27
|
+
|
|
28
|
+
import { Server } from '@modelcontextprotocol/sdk/server/index.js';
|
|
29
|
+
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
|
|
30
|
+
import {
|
|
31
|
+
ListToolsRequestSchema,
|
|
32
|
+
CallToolRequestSchema,
|
|
33
|
+
Tool,
|
|
34
|
+
} from '@modelcontextprotocol/sdk/types.js';
|
|
35
|
+
import * as path from 'path';
|
|
36
|
+
|
|
37
|
+
// Import existing CommonJS modules - use paths relative to project root
|
|
38
|
+
// When compiled, this will be in dist/, so we need to go up one level to find src/
|
|
39
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
40
|
+
const browserService = require(path.join(__dirname, '..', 'src', 'services', 'browserService.js'));
|
|
41
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
42
|
+
const toolsModule = require(path.join(__dirname, '..', 'src', 'tools', 'index.js'));
|
|
43
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
44
|
+
const config = require(path.join(__dirname, '..', 'src', 'config', 'index.js'));
|
|
45
|
+
|
|
46
|
+
interface ServerConfig {
|
|
47
|
+
enableDebugMode?: boolean;
|
|
48
|
+
enableApiTools?: boolean;
|
|
49
|
+
enableBrowserTools?: boolean;
|
|
50
|
+
enableAdvancedTools?: boolean;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
class DemocratizeQualityMCPServer {
|
|
54
|
+
private server: Server;
|
|
55
|
+
private toolDefinitions: any[] = [];
|
|
56
|
+
private config: ServerConfig;
|
|
57
|
+
private isDebugMode: boolean;
|
|
58
|
+
|
|
59
|
+
constructor(serverConfig: ServerConfig = {}) {
|
|
60
|
+
// Check if debug mode is requested via environment variable
|
|
61
|
+
const debugFromEnv = process.env.MCP_FEATURES_ENABLEDEBUGMODE === 'true' ||
|
|
62
|
+
process.env.NODE_ENV === 'development';
|
|
63
|
+
|
|
64
|
+
this.isDebugMode = config.get('features.enableDebugMode', false) || debugFromEnv || serverConfig.enableDebugMode || false;
|
|
65
|
+
|
|
66
|
+
// Set quiet mode if not in debug
|
|
67
|
+
config.setQuiet(!this.isDebugMode);
|
|
68
|
+
|
|
69
|
+
this.config = serverConfig;
|
|
70
|
+
|
|
71
|
+
// Initialize MCP Server with SDK
|
|
72
|
+
this.server = new Server(
|
|
73
|
+
{
|
|
74
|
+
name: '@democratize-quality/mcp-server',
|
|
75
|
+
version: '1.2.0',
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
capabilities: {
|
|
79
|
+
tools: {},
|
|
80
|
+
},
|
|
81
|
+
}
|
|
82
|
+
);
|
|
83
|
+
|
|
84
|
+
this.setupHandlers();
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
private debugLog(...args: any[]): void {
|
|
88
|
+
if (this.isDebugMode) {
|
|
89
|
+
console.error('[Democratize Quality MCP]', ...args);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
private log(...args: any[]): void {
|
|
94
|
+
console.error('[Democratize Quality MCP]', ...args);
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
private setupHandlers(): void {
|
|
98
|
+
// List available tools
|
|
99
|
+
this.server.setRequestHandler(ListToolsRequestSchema, async () => {
|
|
100
|
+
this.debugLog(`Received 'tools/list' request.`);
|
|
101
|
+
this.debugLog(`Returning ${this.toolDefinitions.length} tools`);
|
|
102
|
+
|
|
103
|
+
return {
|
|
104
|
+
tools: this.getAvailableTools(),
|
|
105
|
+
};
|
|
106
|
+
});
|
|
107
|
+
|
|
108
|
+
// Handle tool calls
|
|
109
|
+
this.server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
110
|
+
const { name, arguments: args } = request.params;
|
|
111
|
+
this.debugLog(`Received 'tools/call' for method: ${name}`);
|
|
112
|
+
|
|
113
|
+
try {
|
|
114
|
+
// Use the existing tool system to execute the tool
|
|
115
|
+
const result = await toolsModule.executeTool(name, args || {});
|
|
116
|
+
|
|
117
|
+
return {
|
|
118
|
+
content: [
|
|
119
|
+
{
|
|
120
|
+
type: 'text' as const,
|
|
121
|
+
text: typeof result === 'string' ? result : JSON.stringify(result, null, 2),
|
|
122
|
+
},
|
|
123
|
+
],
|
|
124
|
+
};
|
|
125
|
+
} catch (error) {
|
|
126
|
+
this.log(`Error executing tool '${name}':`, (error as Error).message);
|
|
127
|
+
|
|
128
|
+
return {
|
|
129
|
+
content: [
|
|
130
|
+
{
|
|
131
|
+
type: 'text' as const,
|
|
132
|
+
text: `Error executing ${name}: ${(error as Error).message}`,
|
|
133
|
+
},
|
|
134
|
+
],
|
|
135
|
+
isError: true,
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
private getAvailableTools(): Tool[] {
|
|
142
|
+
// Convert existing tool definitions to MCP SDK format
|
|
143
|
+
return this.toolDefinitions.map((tool) => {
|
|
144
|
+
const sdkTool: Tool = {
|
|
145
|
+
name: tool.name,
|
|
146
|
+
description: tool.description,
|
|
147
|
+
inputSchema: {
|
|
148
|
+
type: 'object' as const,
|
|
149
|
+
properties: tool.input_schema?.properties || tool.inputSchema?.properties || {},
|
|
150
|
+
...(tool.input_schema?.required && tool.input_schema.required.length > 0
|
|
151
|
+
? { required: tool.input_schema.required }
|
|
152
|
+
: {}),
|
|
153
|
+
},
|
|
154
|
+
};
|
|
155
|
+
return sdkTool;
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
async initialize(): Promise<void> {
|
|
160
|
+
try {
|
|
161
|
+
this.debugLog('Initializing tool system...');
|
|
162
|
+
|
|
163
|
+
// Initialize the existing tool system
|
|
164
|
+
await toolsModule.initializeTools(this.isDebugMode);
|
|
165
|
+
|
|
166
|
+
// Get tool definitions from the existing system
|
|
167
|
+
this.toolDefinitions = toolsModule.getToolDefinitions();
|
|
168
|
+
|
|
169
|
+
this.log(`Tool system initialized with ${this.toolDefinitions.length} tools`);
|
|
170
|
+
|
|
171
|
+
} catch (error) {
|
|
172
|
+
this.log('Failed to initialize tool system:', (error as Error).message);
|
|
173
|
+
throw error;
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
async start(): Promise<void> {
|
|
178
|
+
// Initialize tools first
|
|
179
|
+
await this.initialize();
|
|
180
|
+
|
|
181
|
+
// Create transport and connect
|
|
182
|
+
const transport = new StdioServerTransport();
|
|
183
|
+
await this.server.connect(transport);
|
|
184
|
+
|
|
185
|
+
this.log('Server started and ready');
|
|
186
|
+
if (this.isDebugMode) {
|
|
187
|
+
this.log('Debug mode enabled - showing detailed logs');
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
async stop(): Promise<void> {
|
|
192
|
+
try {
|
|
193
|
+
await browserService.shutdownAllBrowsers();
|
|
194
|
+
this.log('All browser instances closed');
|
|
195
|
+
} catch (error) {
|
|
196
|
+
this.log('Error during shutdown:', (error as Error).message);
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
// Main entry point
|
|
202
|
+
async function main(): Promise<void> {
|
|
203
|
+
const server = new DemocratizeQualityMCPServer();
|
|
204
|
+
|
|
205
|
+
// Handle graceful shutdown
|
|
206
|
+
process.on('SIGINT', async () => {
|
|
207
|
+
console.error('\nSIGINT received. Shutting down...');
|
|
208
|
+
await server.stop();
|
|
209
|
+
process.exit(0);
|
|
210
|
+
});
|
|
211
|
+
|
|
212
|
+
process.on('SIGTERM', async () => {
|
|
213
|
+
console.error('\nSIGTERM received. Shutting down...');
|
|
214
|
+
await server.stop();
|
|
215
|
+
process.exit(0);
|
|
216
|
+
});
|
|
217
|
+
|
|
218
|
+
try {
|
|
219
|
+
await server.start();
|
|
220
|
+
} catch (error) {
|
|
221
|
+
console.error('Failed to start server:', error);
|
|
222
|
+
process.exit(1);
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
// Start the server if this file is being executed directly
|
|
227
|
+
if (require.main === module) {
|
|
228
|
+
main().catch((error) => {
|
|
229
|
+
console.error('Unhandled error:', error);
|
|
230
|
+
process.exit(1);
|
|
231
|
+
});
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
export { DemocratizeQualityMCPServer };
|
|
@@ -1,3 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (C) 2025 Democratize Quality
|
|
3
|
+
*
|
|
4
|
+
* This file is part of Democratize Quality MCP Server.
|
|
5
|
+
*
|
|
6
|
+
* Democratize Quality MCP Server is free software: you can redistribute it and/or modify
|
|
7
|
+
* it under the terms of the GNU Affero General Public License as published by
|
|
8
|
+
* the Free Software Foundation, either version 3 of the License, or
|
|
9
|
+
* (at your option) any later version.
|
|
10
|
+
*
|
|
11
|
+
* Democratize Quality MCP Server is distributed in the hope that it will be useful,
|
|
12
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
13
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
14
|
+
* GNU Affero General Public License for more details.
|
|
15
|
+
*
|
|
16
|
+
* You should have received a copy of the GNU Affero General Public License
|
|
17
|
+
* along with Democratize Quality MCP Server. If not, see <https://www.gnu.org/licenses/>.
|
|
18
|
+
*/
|
|
19
|
+
|
|
1
20
|
const CDP = require('chrome-remote-interface');
|
|
2
21
|
//const launchChrome = require('chrome-launcher').launch;
|
|
3
22
|
const fs = require('fs');
|
|
@@ -1,3 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (C) 2025 Democratize Quality
|
|
3
|
+
*
|
|
4
|
+
* This file is part of Democratize Quality MCP Server.
|
|
5
|
+
*
|
|
6
|
+
* Democratize Quality MCP Server is free software: you can redistribute it and/or modify
|
|
7
|
+
* it under the terms of the GNU Affero General Public License as published by
|
|
8
|
+
* the Free Software Foundation, either version 3 of the License, or
|
|
9
|
+
* (at your option) any later version.
|
|
10
|
+
*
|
|
11
|
+
* Democratize Quality MCP Server is distributed in the hope that it will be useful,
|
|
12
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
13
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
14
|
+
* GNU Affero General Public License for more details.
|
|
15
|
+
*
|
|
16
|
+
* You should have received a copy of the GNU Affero General Public License
|
|
17
|
+
* along with Democratize Quality MCP Server. If not, see <https://www.gnu.org/licenses/>.
|
|
18
|
+
*/
|
|
19
|
+
|
|
1
20
|
const ToolBase = require('../base/ToolBase');
|
|
2
21
|
const fs = require('fs');
|
|
3
22
|
const path = require('path');
|
|
@@ -1,3 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (C) 2025 Democratize Quality
|
|
3
|
+
*
|
|
4
|
+
* This file is part of Democratize Quality MCP Server.
|
|
5
|
+
*
|
|
6
|
+
* Democratize Quality MCP Server is free software: you can redistribute it and/or modify
|
|
7
|
+
* it under the terms of the GNU Affero General Public License as published by
|
|
8
|
+
* the Free Software Foundation, either version 3 of the License, or
|
|
9
|
+
* (at your option) any later version.
|
|
10
|
+
*
|
|
11
|
+
* Democratize Quality MCP Server is distributed in the hope that it will be useful,
|
|
12
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
13
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
14
|
+
* GNU Affero General Public License for more details.
|
|
15
|
+
*
|
|
16
|
+
* You should have received a copy of the GNU Affero General Public License
|
|
17
|
+
* along with Democratize Quality MCP Server. If not, see <https://www.gnu.org/licenses/>.
|
|
18
|
+
*/
|
|
19
|
+
|
|
1
20
|
const ToolBase = require('../base/ToolBase');
|
|
2
21
|
const fs = require('fs');
|
|
3
22
|
const path = require('path');
|
|
@@ -1,3 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (C) 2025 Democratize Quality
|
|
3
|
+
*
|
|
4
|
+
* This file is part of Democratize Quality MCP Server.
|
|
5
|
+
*
|
|
6
|
+
* Democratize Quality MCP Server is free software: you can redistribute it and/or modify
|
|
7
|
+
* it under the terms of the GNU Affero General Public License as published by
|
|
8
|
+
* the Free Software Foundation, either version 3 of the License, or
|
|
9
|
+
* (at your option) any later version.
|
|
10
|
+
*
|
|
11
|
+
* Democratize Quality MCP Server is distributed in the hope that it will be useful,
|
|
12
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
13
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
14
|
+
* GNU Affero General Public License for more details.
|
|
15
|
+
*
|
|
16
|
+
* You should have received a copy of the GNU Affero General Public License
|
|
17
|
+
* along with Democratize Quality MCP Server. If not, see <https://www.gnu.org/licenses/>.
|
|
18
|
+
*/
|
|
19
|
+
|
|
1
20
|
const ToolBase = require('../base/ToolBase');
|
|
2
21
|
const https = require('https');
|
|
3
22
|
const http = require('http');
|
|
@@ -1,3 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (C) 2025 Democratize Quality
|
|
3
|
+
*
|
|
4
|
+
* This file is part of Democratize Quality MCP Server.
|
|
5
|
+
*
|
|
6
|
+
* Democratize Quality MCP Server is free software: you can redistribute it and/or modify
|
|
7
|
+
* it under the terms of the GNU Affero General Public License as published by
|
|
8
|
+
* the Free Software Foundation, either version 3 of the License, or
|
|
9
|
+
* (at your option) any later version.
|
|
10
|
+
*
|
|
11
|
+
* Democratize Quality MCP Server is distributed in the hope that it will be useful,
|
|
12
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
13
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
14
|
+
* GNU Affero General Public License for more details.
|
|
15
|
+
*
|
|
16
|
+
* You should have received a copy of the GNU Affero General Public License
|
|
17
|
+
* along with Democratize Quality MCP Server. If not, see <https://www.gnu.org/licenses/>.
|
|
18
|
+
*/
|
|
19
|
+
|
|
1
20
|
const ToolBase = require('../base/ToolBase');
|
|
2
21
|
const fs = require('fs');
|
|
3
22
|
const path = require('path');
|
|
@@ -1,3 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (C) 2025 Democratize Quality
|
|
3
|
+
*
|
|
4
|
+
* This file is part of Democratize Quality MCP Server.
|
|
5
|
+
*
|
|
6
|
+
* Democratize Quality MCP Server is free software: you can redistribute it and/or modify
|
|
7
|
+
* it under the terms of the GNU Affero General Public License as published by
|
|
8
|
+
* the Free Software Foundation, either version 3 of the License, or
|
|
9
|
+
* (at your option) any later version.
|
|
10
|
+
*
|
|
11
|
+
* Democratize Quality MCP Server is distributed in the hope that it will be useful,
|
|
12
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
13
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
14
|
+
* GNU Affero General Public License for more details.
|
|
15
|
+
*
|
|
16
|
+
* You should have received a copy of the GNU Affero General Public License
|
|
17
|
+
* along with Democratize Quality MCP Server. If not, see <https://www.gnu.org/licenses/>.
|
|
18
|
+
*/
|
|
19
|
+
|
|
1
20
|
const ToolBase = require('../base/ToolBase');
|
|
2
21
|
const https = require('https');
|
|
3
22
|
const http = require('http');
|
|
@@ -1,3 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (C) 2025 Democratize Quality
|
|
3
|
+
*
|
|
4
|
+
* This file is part of Democratize Quality MCP Server.
|
|
5
|
+
*
|
|
6
|
+
* Democratize Quality MCP Server is free software: you can redistribute it and/or modify
|
|
7
|
+
* it under the terms of the GNU Affero General Public License as published by
|
|
8
|
+
* the Free Software Foundation, either version 3 of the License, or
|
|
9
|
+
* (at your option) any later version.
|
|
10
|
+
*
|
|
11
|
+
* Democratize Quality MCP Server is distributed in the hope that it will be useful,
|
|
12
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
13
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
14
|
+
* GNU Affero General Public License for more details.
|
|
15
|
+
*
|
|
16
|
+
* You should have received a copy of the GNU Affero General Public License
|
|
17
|
+
* along with Democratize Quality MCP Server. If not, see <https://www.gnu.org/licenses/>.
|
|
18
|
+
*/
|
|
19
|
+
|
|
1
20
|
const ToolBase = require('../base/ToolBase');
|
|
2
21
|
const fs = require('fs');
|
|
3
22
|
const path = require('path');
|
|
@@ -1,3 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (C) 2025 Democratize Quality
|
|
3
|
+
*
|
|
4
|
+
* This file is part of Democratize Quality MCP Server.
|
|
5
|
+
*
|
|
6
|
+
* Democratize Quality MCP Server is free software: you can redistribute it and/or modify
|
|
7
|
+
* it under the terms of the GNU Affero General Public License as published by
|
|
8
|
+
* the Free Software Foundation, either version 3 of the License, or
|
|
9
|
+
* (at your option) any later version.
|
|
10
|
+
*
|
|
11
|
+
* Democratize Quality MCP Server is distributed in the hope that it will be useful,
|
|
12
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
13
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
14
|
+
* GNU Affero General Public License for more details.
|
|
15
|
+
*
|
|
16
|
+
* You should have received a copy of the GNU Affero General Public License
|
|
17
|
+
* along with Democratize Quality MCP Server. If not, see <https://www.gnu.org/licenses/>.
|
|
18
|
+
*/
|
|
19
|
+
|
|
1
20
|
const ToolBase = require('../base/ToolBase');
|
|
2
21
|
|
|
3
22
|
/**
|
|
@@ -1,3 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (C) 2025 Democratize Quality
|
|
3
|
+
*
|
|
4
|
+
* This file is part of Democratize Quality MCP Server.
|
|
5
|
+
*
|
|
6
|
+
* Democratize Quality MCP Server is free software: you can redistribute it and/or modify
|
|
7
|
+
* it under the terms of the GNU Affero General Public License as published by
|
|
8
|
+
* the Free Software Foundation, either version 3 of the License, or
|
|
9
|
+
* (at your option) any later version.
|
|
10
|
+
*
|
|
11
|
+
* Democratize Quality MCP Server is distributed in the hope that it will be useful,
|
|
12
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
13
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
14
|
+
* GNU Affero General Public License for more details.
|
|
15
|
+
*
|
|
16
|
+
* You should have received a copy of the GNU Affero General Public License
|
|
17
|
+
* along with Democratize Quality MCP Server. If not, see <https://www.gnu.org/licenses/>.
|
|
18
|
+
*/
|
|
19
|
+
|
|
1
20
|
/**
|
|
2
21
|
* Code Generation Prompts for API Test Generator
|
|
3
22
|
*
|
|
@@ -1,3 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (C) 2025 Democratize Quality
|
|
3
|
+
*
|
|
4
|
+
* This file is part of Democratize Quality MCP Server.
|
|
5
|
+
*
|
|
6
|
+
* Democratize Quality MCP Server is free software: you can redistribute it and/or modify
|
|
7
|
+
* it under the terms of the GNU Affero General Public License as published by
|
|
8
|
+
* the Free Software Foundation, either version 3 of the License, or
|
|
9
|
+
* (at your option) any later version.
|
|
10
|
+
*
|
|
11
|
+
* Democratize Quality MCP Server is distributed in the hope that it will be useful,
|
|
12
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
13
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
14
|
+
* GNU Affero General Public License for more details.
|
|
15
|
+
*
|
|
16
|
+
* You should have received a copy of the GNU Affero General Public License
|
|
17
|
+
* along with Democratize Quality MCP Server. If not, see <https://www.gnu.org/licenses/>.
|
|
18
|
+
*/
|
|
19
|
+
|
|
1
20
|
/**
|
|
2
21
|
* Healing Prompts - Fix issues in generated code
|
|
3
22
|
*
|
|
@@ -1,3 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (C) 2025 Democratize Quality
|
|
3
|
+
*
|
|
4
|
+
* This file is part of Democratize Quality MCP Server.
|
|
5
|
+
*
|
|
6
|
+
* Democratize Quality MCP Server is free software: you can redistribute it and/or modify
|
|
7
|
+
* it under the terms of the GNU Affero General Public License as published by
|
|
8
|
+
* the Free Software Foundation, either version 3 of the License, or
|
|
9
|
+
* (at your option) any later version.
|
|
10
|
+
*
|
|
11
|
+
* Democratize Quality MCP Server is distributed in the hope that it will be useful,
|
|
12
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
13
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
14
|
+
* GNU Affero General Public License for more details.
|
|
15
|
+
*
|
|
16
|
+
* You should have received a copy of the GNU Affero General Public License
|
|
17
|
+
* along with Democratize Quality MCP Server. If not, see <https://www.gnu.org/licenses/>.
|
|
18
|
+
*/
|
|
19
|
+
|
|
1
20
|
/**
|
|
2
21
|
* Prompt Orchestration System
|
|
3
22
|
*
|
|
@@ -1,3 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (C) 2025 Democratize Quality
|
|
3
|
+
*
|
|
4
|
+
* This file is part of Democratize Quality MCP Server.
|
|
5
|
+
*
|
|
6
|
+
* Democratize Quality MCP Server is free software: you can redistribute it and/or modify
|
|
7
|
+
* it under the terms of the GNU Affero General Public License as published by
|
|
8
|
+
* the Free Software Foundation, either version 3 of the License, or
|
|
9
|
+
* (at your option) any later version.
|
|
10
|
+
*
|
|
11
|
+
* Democratize Quality MCP Server is distributed in the hope that it will be useful,
|
|
12
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
13
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
14
|
+
* GNU Affero General Public License for more details.
|
|
15
|
+
*
|
|
16
|
+
* You should have received a copy of the GNU Affero General Public License
|
|
17
|
+
* along with Democratize Quality MCP Server. If not, see <https://www.gnu.org/licenses/>.
|
|
18
|
+
*/
|
|
19
|
+
|
|
1
20
|
/**
|
|
2
21
|
* Prompt Orchestrator
|
|
3
22
|
*
|
|
@@ -1,3 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (C) 2025 Democratize Quality
|
|
3
|
+
*
|
|
4
|
+
* This file is part of Democratize Quality MCP Server.
|
|
5
|
+
*
|
|
6
|
+
* Democratize Quality MCP Server is free software: you can redistribute it and/or modify
|
|
7
|
+
* it under the terms of the GNU Affero General Public License as published by
|
|
8
|
+
* the Free Software Foundation, either version 3 of the License, or
|
|
9
|
+
* (at your option) any later version.
|
|
10
|
+
*
|
|
11
|
+
* Democratize Quality MCP Server is distributed in the hope that it will be useful,
|
|
12
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
13
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
14
|
+
* GNU Affero General Public License for more details.
|
|
15
|
+
*
|
|
16
|
+
* You should have received a copy of the GNU Affero General Public License
|
|
17
|
+
* along with Democratize Quality MCP Server. If not, see <https://www.gnu.org/licenses/>.
|
|
18
|
+
*/
|
|
19
|
+
|
|
1
20
|
/**
|
|
2
21
|
* Validation Rules for Generated Test Code
|
|
3
22
|
*
|
|
@@ -1,3 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (C) 2025 Democratize Quality
|
|
3
|
+
*
|
|
4
|
+
* This file is part of Democratize Quality MCP Server.
|
|
5
|
+
*
|
|
6
|
+
* Democratize Quality MCP Server is free software: you can redistribute it and/or modify
|
|
7
|
+
* it under the terms of the GNU Affero General Public License as published by
|
|
8
|
+
* the Free Software Foundation, either version 3 of the License, or
|
|
9
|
+
* (at your option) any later version.
|
|
10
|
+
*
|
|
11
|
+
* Democratize Quality MCP Server is distributed in the hope that it will be useful,
|
|
12
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
13
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
14
|
+
* GNU Affero General Public License for more details.
|
|
15
|
+
*
|
|
16
|
+
* You should have received a copy of the GNU Affero General Public License
|
|
17
|
+
* along with Democratize Quality MCP Server. If not, see <https://www.gnu.org/licenses/>.
|
|
18
|
+
*/
|
|
19
|
+
|
|
1
20
|
/**
|
|
2
21
|
* Base class for all MCP tools
|
|
3
22
|
* Provides common functionality and enforces a consistent interface
|
|
@@ -1,3 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (C) 2025 Democratize Quality
|
|
3
|
+
*
|
|
4
|
+
* This file is part of Democratize Quality MCP Server.
|
|
5
|
+
*
|
|
6
|
+
* Democratize Quality MCP Server is free software: you can redistribute it and/or modify
|
|
7
|
+
* it under the terms of the GNU Affero General Public License as published by
|
|
8
|
+
* the Free Software Foundation, either version 3 of the License, or
|
|
9
|
+
* (at your option) any later version.
|
|
10
|
+
*
|
|
11
|
+
* Democratize Quality MCP Server is distributed in the hope that it will be useful,
|
|
12
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
13
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
14
|
+
* GNU Affero General Public License for more details.
|
|
15
|
+
*
|
|
16
|
+
* You should have received a copy of the GNU Affero General Public License
|
|
17
|
+
* along with Democratize Quality MCP Server. If not, see <https://www.gnu.org/licenses/>.
|
|
18
|
+
*/
|
|
19
|
+
|
|
1
20
|
const fs = require('fs');
|
|
2
21
|
const path = require('path');
|
|
3
22
|
const config = require('../../config');
|
|
@@ -1,3 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (C) 2025 Democratize Quality
|
|
3
|
+
*
|
|
4
|
+
* This file is part of Democratize Quality MCP Server.
|
|
5
|
+
*
|
|
6
|
+
* Democratize Quality MCP Server is free software: you can redistribute it and/or modify
|
|
7
|
+
* it under the terms of the GNU Affero General Public License as published by
|
|
8
|
+
* the Free Software Foundation, either version 3 of the License, or
|
|
9
|
+
* (at your option) any later version.
|
|
10
|
+
*
|
|
11
|
+
* Democratize Quality MCP Server is distributed in the hope that it will be useful,
|
|
12
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
13
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
14
|
+
* GNU Affero General Public License for more details.
|
|
15
|
+
*
|
|
16
|
+
* You should have received a copy of the GNU Affero General Public License
|
|
17
|
+
* along with Democratize Quality MCP Server. If not, see <https://www.gnu.org/licenses/>.
|
|
18
|
+
*/
|
|
19
|
+
|
|
1
20
|
const ToolBase = require('../../base/ToolBase');
|
|
2
21
|
const browserService = require('../../../services/browserService');
|
|
3
22
|
|
|
@@ -1,3 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (C) 2025 Democratize Quality
|
|
3
|
+
*
|
|
4
|
+
* This file is part of Democratize Quality MCP Server.
|
|
5
|
+
*
|
|
6
|
+
* Democratize Quality MCP Server is free software: you can redistribute it and/or modify
|
|
7
|
+
* it under the terms of the GNU Affero General Public License as published by
|
|
8
|
+
* the Free Software Foundation, either version 3 of the License, or
|
|
9
|
+
* (at your option) any later version.
|
|
10
|
+
*
|
|
11
|
+
* Democratize Quality MCP Server is distributed in the hope that it will be useful,
|
|
12
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
13
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
14
|
+
* GNU Affero General Public License for more details.
|
|
15
|
+
*
|
|
16
|
+
* You should have received a copy of the GNU Affero General Public License
|
|
17
|
+
* along with Democratize Quality MCP Server. If not, see <https://www.gnu.org/licenses/>.
|
|
18
|
+
*/
|
|
19
|
+
|
|
1
20
|
const ToolBase = require('../../base/ToolBase');
|
|
2
21
|
const browserService = require('../../../services/browserService');
|
|
3
22
|
|
|
@@ -1,3 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (C) 2025 Democratize Quality
|
|
3
|
+
*
|
|
4
|
+
* This file is part of Democratize Quality MCP Server.
|
|
5
|
+
*
|
|
6
|
+
* Democratize Quality MCP Server is free software: you can redistribute it and/or modify
|
|
7
|
+
* it under the terms of the GNU Affero General Public License as published by
|
|
8
|
+
* the Free Software Foundation, either version 3 of the License, or
|
|
9
|
+
* (at your option) any later version.
|
|
10
|
+
*
|
|
11
|
+
* Democratize Quality MCP Server is distributed in the hope that it will be useful,
|
|
12
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
13
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
14
|
+
* GNU Affero General Public License for more details.
|
|
15
|
+
*
|
|
16
|
+
* You should have received a copy of the GNU Affero General Public License
|
|
17
|
+
* along with Democratize Quality MCP Server. If not, see <https://www.gnu.org/licenses/>.
|
|
18
|
+
*/
|
|
19
|
+
|
|
1
20
|
const ToolBase = require('../../base/ToolBase');
|
|
2
21
|
const browserService = require('../../../services/browserService');
|
|
3
22
|
|