@softtechai/quickmcp 1.0.8
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 +553 -0
- package/dist/client/MCPClient.d.ts +24 -0
- package/dist/client/MCPClient.d.ts.map +1 -0
- package/dist/client/MCPClient.js +211 -0
- package/dist/client/MCPClient.js.map +1 -0
- package/dist/client/MCPClientUnified.d.ts +31 -0
- package/dist/client/MCPClientUnified.d.ts.map +1 -0
- package/dist/client/MCPClientUnified.js +275 -0
- package/dist/client/MCPClientUnified.js.map +1 -0
- package/dist/client/MCPTestRunner.d.ts +44 -0
- package/dist/client/MCPTestRunner.d.ts.map +1 -0
- package/dist/client/MCPTestRunner.js +220 -0
- package/dist/client/MCPTestRunner.js.map +1 -0
- package/dist/client/MCPTestRunnerUnified.d.ts +48 -0
- package/dist/client/MCPTestRunnerUnified.d.ts.map +1 -0
- package/dist/client/MCPTestRunnerUnified.js +183 -0
- package/dist/client/MCPTestRunnerUnified.js.map +1 -0
- package/dist/database/json-manager.d.ts +55 -0
- package/dist/database/json-manager.d.ts.map +1 -0
- package/dist/database/json-manager.js +128 -0
- package/dist/database/json-manager.js.map +1 -0
- package/dist/database/sqlite-manager.d.ts +53 -0
- package/dist/database/sqlite-manager.d.ts.map +1 -0
- package/dist/database/sqlite-manager.js +193 -0
- package/dist/database/sqlite-manager.js.map +1 -0
- package/dist/dynamic-mcp-executor.d.ts +14 -0
- package/dist/dynamic-mcp-executor.d.ts.map +1 -0
- package/dist/dynamic-mcp-executor.js +274 -0
- package/dist/dynamic-mcp-executor.js.map +1 -0
- package/dist/generators/MCPServerGenerator-new.d.ts +37 -0
- package/dist/generators/MCPServerGenerator-new.d.ts.map +1 -0
- package/dist/generators/MCPServerGenerator-new.js +287 -0
- package/dist/generators/MCPServerGenerator-new.js.map +1 -0
- package/dist/generators/MCPServerGenerator.d.ts +42 -0
- package/dist/generators/MCPServerGenerator.d.ts.map +1 -0
- package/dist/generators/MCPServerGenerator.js +494 -0
- package/dist/generators/MCPServerGenerator.js.map +1 -0
- package/dist/generators/database/sqlite-manager.d.ts +52 -0
- package/dist/generators/database/sqlite-manager.js +143 -0
- package/dist/generators/generators/MCPServerGenerator.d.ts +37 -0
- package/dist/generators/generators/MCPServerGenerator.js +396 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +23 -0
- package/dist/index.js.map +1 -0
- package/dist/integrated-mcp-server-new.d.ts +12 -0
- package/dist/integrated-mcp-server-new.d.ts.map +1 -0
- package/dist/integrated-mcp-server-new.js +253 -0
- package/dist/integrated-mcp-server-new.js.map +1 -0
- package/dist/integrated-mcp-server.d.ts +25 -0
- package/dist/integrated-mcp-server.d.ts.map +1 -0
- package/dist/integrated-mcp-server.js +541 -0
- package/dist/integrated-mcp-server.js.map +1 -0
- package/dist/mcp-inspector-server.d.ts +3 -0
- package/dist/mcp-inspector-server.d.ts.map +1 -0
- package/dist/mcp-inspector-server.js +119 -0
- package/dist/mcp-inspector-server.js.map +1 -0
- package/dist/mcp-sdk-server.d.ts +3 -0
- package/dist/mcp-sdk-server.d.ts.map +1 -0
- package/dist/mcp-sdk-server.js +90 -0
- package/dist/mcp-sdk-server.js.map +1 -0
- package/dist/mcp-server.d.ts +3 -0
- package/dist/mcp-server.d.ts.map +1 -0
- package/dist/mcp-server.js +300 -0
- package/dist/mcp-server.js.map +1 -0
- package/dist/parsers/CsvParser.d.ts +7 -0
- package/dist/parsers/CsvParser.d.ts.map +1 -0
- package/dist/parsers/CsvParser.js +98 -0
- package/dist/parsers/CsvParser.js.map +1 -0
- package/dist/parsers/DatabaseParser.d.ts +18 -0
- package/dist/parsers/DatabaseParser.d.ts.map +1 -0
- package/dist/parsers/DatabaseParser.js +372 -0
- package/dist/parsers/DatabaseParser.js.map +1 -0
- package/dist/parsers/ExcelParser.d.ts +8 -0
- package/dist/parsers/ExcelParser.d.ts.map +1 -0
- package/dist/parsers/ExcelParser.js +119 -0
- package/dist/parsers/ExcelParser.js.map +1 -0
- package/dist/parsers/index.d.ts +13 -0
- package/dist/parsers/index.d.ts.map +1 -0
- package/dist/parsers/index.js +88 -0
- package/dist/parsers/index.js.map +1 -0
- package/dist/parsers/parsers/ExcelParser.js +118 -0
- package/dist/parsers/types/index.js +2 -0
- package/dist/quickmcp-unified-bridge.d.ts +13 -0
- package/dist/quickmcp-unified-bridge.d.ts.map +1 -0
- package/dist/quickmcp-unified-bridge.js +176 -0
- package/dist/quickmcp-unified-bridge.js.map +1 -0
- package/dist/server/ServerManager.d.ts +37 -0
- package/dist/server/ServerManager.d.ts.map +1 -0
- package/dist/server/ServerManager.js +376 -0
- package/dist/server/ServerManager.js.map +1 -0
- package/dist/sqlite-manager.js +145 -0
- package/dist/start-new-server.d.ts +3 -0
- package/dist/start-new-server.d.ts.map +1 -0
- package/dist/start-new-server.js +10 -0
- package/dist/start-new-server.js.map +1 -0
- package/dist/test-app.d.ts +2 -0
- package/dist/test-app.d.ts.map +1 -0
- package/dist/test-app.js +119 -0
- package/dist/test-app.js.map +1 -0
- package/dist/test-new-architecture.d.ts +3 -0
- package/dist/test-new-architecture.d.ts.map +1 -0
- package/dist/test-new-architecture.js +72 -0
- package/dist/test-new-architecture.js.map +1 -0
- package/dist/transport/base-transport.d.ts +21 -0
- package/dist/transport/base-transport.d.ts.map +1 -0
- package/dist/transport/base-transport.js +16 -0
- package/dist/transport/base-transport.js.map +1 -0
- package/dist/transport/index.d.ts +10 -0
- package/dist/transport/index.d.ts.map +1 -0
- package/dist/transport/index.js +12 -0
- package/dist/transport/index.js.map +1 -0
- package/dist/transport/sse-transport.d.ts +13 -0
- package/dist/transport/sse-transport.d.ts.map +1 -0
- package/dist/transport/sse-transport.js +106 -0
- package/dist/transport/sse-transport.js.map +1 -0
- package/dist/transport/stdio-transport.d.ts +8 -0
- package/dist/transport/stdio-transport.d.ts.map +1 -0
- package/dist/transport/stdio-transport.js +53 -0
- package/dist/transport/stdio-transport.js.map +1 -0
- package/dist/transport/streamable-http-transport.d.ts +15 -0
- package/dist/transport/streamable-http-transport.d.ts.map +1 -0
- package/dist/transport/streamable-http-transport.js +151 -0
- package/dist/transport/streamable-http-transport.js.map +1 -0
- package/dist/types/index.d.ts +64 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +3 -0
- package/dist/types/index.js.map +1 -0
- package/dist/web/client/MCPClient.js +348 -0
- package/dist/web/client/MCPTestRunner.js +317 -0
- package/dist/web/database/json-manager.js +124 -0
- package/dist/web/database/sqlite-manager.js +146 -0
- package/dist/web/dynamic-mcp-executor.js +443 -0
- package/dist/web/generators/MCPServerGenerator-new.js +284 -0
- package/dist/web/generators/MCPServerGenerator.js +566 -0
- package/dist/web/integrated-mcp-server-new.js +394 -0
- package/dist/web/parsers/CsvParser.js +144 -0
- package/dist/web/parsers/DatabaseParser.js +637 -0
- package/dist/web/parsers/ExcelParser.js +180 -0
- package/dist/web/parsers/index.js +152 -0
- package/dist/web/server.d.ts +3 -0
- package/dist/web/server.d.ts.map +1 -0
- package/dist/web/server.js +790 -0
- package/dist/web/server.js.map +1 -0
- package/dist/web/types/index.js +2 -0
- package/dist/web/web/server.js +860 -0
- package/package.json +68 -0
- package/quickmcp-direct-stdio.js +328 -0
- package/src/web/public/app.js +1795 -0
- package/src/web/public/database-tables.html +711 -0
- package/src/web/public/how-to-use.html +571 -0
- package/src/web/public/how-to-use.js +255 -0
- package/src/web/public/images/1-claude-quickmcp-stdio.png +0 -0
- package/src/web/public/images/2-claude-tools.png +0 -0
- package/src/web/public/images/3-claude-developer-settings.png +0 -0
- package/src/web/public/images/4-claude-config.png +0 -0
- package/src/web/public/images/5-claude-config-edit.png +0 -0
- package/src/web/public/index.html +626 -0
- package/src/web/public/manage-servers.html +198 -0
- package/src/web/public/modern-styles.css +946 -0
- package/src/web/public/shared-styles.css +2091 -0
- package/src/web/public/shared.js +93 -0
- package/src/web/public/test-servers.html +302 -0
|
@@ -0,0 +1,255 @@
|
|
|
1
|
+
// Method switching functionality
|
|
2
|
+
function showMethod(method) {
|
|
3
|
+
const integratedBtn = document.getElementById('integratedBtn');
|
|
4
|
+
const individualBtn = document.getElementById('individualBtn');
|
|
5
|
+
const integratedMethod = document.getElementById('integratedMethod');
|
|
6
|
+
const individualMethod = document.getElementById('individualMethod');
|
|
7
|
+
const serverListSection = document.getElementById('serverListSection');
|
|
8
|
+
|
|
9
|
+
// Update button states
|
|
10
|
+
integratedBtn.classList.remove('active');
|
|
11
|
+
individualBtn.classList.remove('active');
|
|
12
|
+
|
|
13
|
+
// Update content visibility
|
|
14
|
+
integratedMethod.style.display = 'none';
|
|
15
|
+
individualMethod.style.display = 'none';
|
|
16
|
+
serverListSection.style.display = 'none';
|
|
17
|
+
|
|
18
|
+
if (method === 'integrated') {
|
|
19
|
+
integratedBtn.classList.add('active');
|
|
20
|
+
integratedMethod.style.display = 'block';
|
|
21
|
+
// Reset to Claude tab by default
|
|
22
|
+
showIntegratedPlatform('claude');
|
|
23
|
+
} else {
|
|
24
|
+
individualBtn.classList.add('active');
|
|
25
|
+
individualMethod.style.display = 'block';
|
|
26
|
+
serverListSection.style.display = 'block';
|
|
27
|
+
loadExportServerList();
|
|
28
|
+
// Reset to Claude tab by default
|
|
29
|
+
showIndividualPlatform('claude');
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
// Platform switching for Integrated Method
|
|
34
|
+
function showIntegratedPlatform(platform) {
|
|
35
|
+
// Update tabs
|
|
36
|
+
document.getElementById('integratedClaudeTab').classList.remove('active');
|
|
37
|
+
document.getElementById('integratedOpenAITab').classList.remove('active');
|
|
38
|
+
|
|
39
|
+
// Update content
|
|
40
|
+
document.getElementById('integratedClaude').style.display = 'none';
|
|
41
|
+
document.getElementById('integratedOpenAI').style.display = 'none';
|
|
42
|
+
|
|
43
|
+
if (platform === 'claude') {
|
|
44
|
+
document.getElementById('integratedClaudeTab').classList.add('active');
|
|
45
|
+
document.getElementById('integratedClaude').style.display = 'block';
|
|
46
|
+
} else {
|
|
47
|
+
document.getElementById('integratedOpenAITab').classList.add('active');
|
|
48
|
+
document.getElementById('integratedOpenAI').style.display = 'block';
|
|
49
|
+
// Check status for OpenAI too
|
|
50
|
+
checkOpenAIServerStatus();
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
// Platform switching for Individual Method
|
|
55
|
+
function showIndividualPlatform(platform) {
|
|
56
|
+
// Update tabs
|
|
57
|
+
document.getElementById('individualClaudeTab').classList.remove('active');
|
|
58
|
+
document.getElementById('individualOpenAITab').classList.remove('active');
|
|
59
|
+
|
|
60
|
+
// Update content
|
|
61
|
+
document.getElementById('individualClaude').style.display = 'none';
|
|
62
|
+
document.getElementById('individualOpenAI').style.display = 'none';
|
|
63
|
+
|
|
64
|
+
if (platform === 'claude') {
|
|
65
|
+
document.getElementById('individualClaudeTab').classList.add('active');
|
|
66
|
+
document.getElementById('individualClaude').style.display = 'block';
|
|
67
|
+
} else {
|
|
68
|
+
document.getElementById('individualOpenAITab').classList.add('active');
|
|
69
|
+
document.getElementById('individualOpenAI').style.display = 'block';
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
// Copy configuration to clipboard
|
|
74
|
+
function copyConfig(type) {
|
|
75
|
+
let configText;
|
|
76
|
+
|
|
77
|
+
if (type === 'integrated') {
|
|
78
|
+
configText = `{
|
|
79
|
+
"mcpServers": {
|
|
80
|
+
"quickmcp-integrated": {
|
|
81
|
+
"command": "node",
|
|
82
|
+
"args": ["~/mcp-bridge.js"]
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}`;
|
|
86
|
+
} else if (type === 'openai-integrated') {
|
|
87
|
+
configText = `{
|
|
88
|
+
"mcpServers": {
|
|
89
|
+
"quickmcp-integrated": {
|
|
90
|
+
"command": "npx",
|
|
91
|
+
"args": [
|
|
92
|
+
"-y",
|
|
93
|
+
"@modelcontextprotocol/server-sse-client",
|
|
94
|
+
"http://localhost:3001/sse/message"
|
|
95
|
+
]
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
}`;
|
|
99
|
+
} else if (type === 'claude-individual') {
|
|
100
|
+
configText = `{
|
|
101
|
+
"mcpServers": {
|
|
102
|
+
"your-server-name": {
|
|
103
|
+
"command": "node",
|
|
104
|
+
"args": ["path/to/your/server/index.js"]
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
}`;
|
|
108
|
+
} else if (type === 'openai-individual') {
|
|
109
|
+
configText = `{
|
|
110
|
+
"mcpServers": {
|
|
111
|
+
"your-server-name": {
|
|
112
|
+
"command": "npx",
|
|
113
|
+
"args": [
|
|
114
|
+
"tsx",
|
|
115
|
+
"path/to/your/server/index.ts"
|
|
116
|
+
]
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
}`;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
navigator.clipboard.writeText(configText).then(() => {
|
|
123
|
+
// Show feedback
|
|
124
|
+
const btn = event.target;
|
|
125
|
+
const originalText = btn.textContent;
|
|
126
|
+
btn.textContent = '✅ Copied!';
|
|
127
|
+
btn.style.background = '#10b981';
|
|
128
|
+
|
|
129
|
+
setTimeout(() => {
|
|
130
|
+
btn.textContent = originalText;
|
|
131
|
+
btn.style.background = '';
|
|
132
|
+
}, 2000);
|
|
133
|
+
}).catch(err => {
|
|
134
|
+
console.error('Failed to copy: ', err);
|
|
135
|
+
// Fallback: select the text
|
|
136
|
+
const config = document.getElementById('integratedConfig');
|
|
137
|
+
const range = document.createRange();
|
|
138
|
+
range.selectNodeContents(config);
|
|
139
|
+
const selection = window.getSelection();
|
|
140
|
+
selection.removeAllRanges();
|
|
141
|
+
selection.addRange(range);
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
// Check server status
|
|
146
|
+
async function checkServerStatus() {
|
|
147
|
+
const statusDot = document.querySelector('.status-dot');
|
|
148
|
+
const statusText = document.getElementById('statusText');
|
|
149
|
+
|
|
150
|
+
try {
|
|
151
|
+
const response = await fetch('http://localhost:3001/health');
|
|
152
|
+
const data = await response.json();
|
|
153
|
+
|
|
154
|
+
if (data.status === 'OK') {
|
|
155
|
+
statusDot.className = 'status-dot online';
|
|
156
|
+
statusText.textContent = `Online - Managing ${data.serverCount} servers`;
|
|
157
|
+
} else {
|
|
158
|
+
throw new Error('Server not healthy');
|
|
159
|
+
}
|
|
160
|
+
} catch (error) {
|
|
161
|
+
statusDot.className = 'status-dot offline';
|
|
162
|
+
statusText.textContent = 'Offline - Run "npm run dev" to start';
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
// Load servers for export
|
|
167
|
+
async function loadExportServerList() {
|
|
168
|
+
try {
|
|
169
|
+
const response = await fetch('/api/servers');
|
|
170
|
+
const result = await response.json();
|
|
171
|
+
|
|
172
|
+
const serverList = document.getElementById('exportServerList');
|
|
173
|
+
|
|
174
|
+
if (result.success && result.data.length > 0) {
|
|
175
|
+
serverList.classList.add('has-servers');
|
|
176
|
+
|
|
177
|
+
let html = '';
|
|
178
|
+
result.data.forEach(server => {
|
|
179
|
+
html += `
|
|
180
|
+
<div class="server-card">
|
|
181
|
+
<h3>${server.name}</h3>
|
|
182
|
+
<p>${server.description}</p>
|
|
183
|
+
<div class="server-stats">
|
|
184
|
+
<span>Version: ${server.version}</span>
|
|
185
|
+
<span>Tools: ${server.toolsCount}</span>
|
|
186
|
+
<span>Resources: ${server.resourcesCount}</span>
|
|
187
|
+
<span>Prompts: ${server.promptsCount}</span>
|
|
188
|
+
</div>
|
|
189
|
+
<div class="server-actions">
|
|
190
|
+
<button class="btn btn-primary" onclick="exportServerForDownload('${server.id}')">
|
|
191
|
+
📦 Export Server
|
|
192
|
+
</button>
|
|
193
|
+
<button class="btn btn-secondary" onclick="viewServer('${server.id}')">
|
|
194
|
+
👁️ View Details
|
|
195
|
+
</button>
|
|
196
|
+
</div>
|
|
197
|
+
</div>
|
|
198
|
+
`;
|
|
199
|
+
});
|
|
200
|
+
serverList.innerHTML = html;
|
|
201
|
+
} else {
|
|
202
|
+
serverList.classList.remove('has-servers');
|
|
203
|
+
serverList.innerHTML = `
|
|
204
|
+
<div style="text-align: center; padding: 40px; color: #718096;">
|
|
205
|
+
<div style="font-size: 48px; margin-bottom: 16px;">📦</div>
|
|
206
|
+
<h3 style="margin-bottom: 8px; color: #2d3748;">No Servers Available</h3>
|
|
207
|
+
<p style="margin-bottom: 20px;">Create an MCP server first to export it.</p>
|
|
208
|
+
<a href="/" class="btn btn-primary">
|
|
209
|
+
🚀 Generate Your First Server
|
|
210
|
+
</a>
|
|
211
|
+
</div>
|
|
212
|
+
`;
|
|
213
|
+
}
|
|
214
|
+
} catch (error) {
|
|
215
|
+
console.error('Failed to load servers:', error);
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
// Export server for download
|
|
220
|
+
function exportServerForDownload(serverId) {
|
|
221
|
+
// Trigger download
|
|
222
|
+
window.location.href = `/api/servers/${serverId}/export`;
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
// Check server status for OpenAI section
|
|
226
|
+
async function checkOpenAIServerStatus() {
|
|
227
|
+
const statusDot = document.querySelector('#openaiServerStatus .status-dot');
|
|
228
|
+
const statusText = document.getElementById('openaiStatusText');
|
|
229
|
+
|
|
230
|
+
if (!statusDot || !statusText) return;
|
|
231
|
+
|
|
232
|
+
try {
|
|
233
|
+
const response = await fetch('http://localhost:3001/health');
|
|
234
|
+
const data = await response.json();
|
|
235
|
+
|
|
236
|
+
if (data.status === 'OK') {
|
|
237
|
+
statusDot.className = 'status-dot online';
|
|
238
|
+
statusText.textContent = `Online - Managing ${data.serverCount} servers`;
|
|
239
|
+
} else {
|
|
240
|
+
throw new Error('Server not healthy');
|
|
241
|
+
}
|
|
242
|
+
} catch (error) {
|
|
243
|
+
statusDot.className = 'status-dot offline';
|
|
244
|
+
statusText.textContent = 'Offline - Run "npm run dev" to start';
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
// Initialize page
|
|
249
|
+
document.addEventListener('DOMContentLoaded', function() {
|
|
250
|
+
checkServerStatus();
|
|
251
|
+
|
|
252
|
+
// Check server status every 10 seconds
|
|
253
|
+
setInterval(checkServerStatus, 10000);
|
|
254
|
+
setInterval(checkOpenAIServerStatus, 10000);
|
|
255
|
+
});
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|