@mcp-shark/mcp-shark 1.5.4 → 1.5.5
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 +32 -96
- package/bin/mcp-shark.js +1 -1
- package/core/configs/codex.js +68 -0
- package/core/configs/environment.js +51 -0
- package/{lib/common → core}/configs/index.js +16 -1
- package/core/constants/Defaults.js +15 -0
- package/core/constants/HttpStatus.js +14 -0
- package/core/constants/Server.js +20 -0
- package/core/constants/StatusCodes.js +25 -0
- package/core/constants/index.js +7 -0
- package/core/container/DependencyContainer.js +179 -0
- package/core/db/init.js +33 -0
- package/core/index.js +10 -0
- package/{mcp-server/lib/common/error.js → core/libraries/ErrorLibrary.js} +4 -0
- package/core/libraries/LoggerLibrary.js +91 -0
- package/core/libraries/SerializationLibrary.js +32 -0
- package/core/libraries/bootstrap-logger.js +19 -0
- package/core/libraries/errors/ApplicationError.js +97 -0
- package/core/libraries/index.js +17 -0
- package/{mcp-server/lib → core/mcp-server}/auditor/audit.js +77 -53
- package/core/mcp-server/index.js +192 -0
- package/{mcp-server/lib → core/mcp-server}/server/external/all.js +1 -1
- package/core/mcp-server/server/external/config.js +75 -0
- package/{mcp-server/lib → core/mcp-server}/server/external/single/client.js +1 -1
- package/{mcp-server/lib → core/mcp-server}/server/external/single/request.js +1 -1
- package/{mcp-server/lib → core/mcp-server}/server/external/single/run.js +20 -11
- package/{mcp-server/lib → core/mcp-server}/server/external/single/transport.js +1 -1
- package/{mcp-server/lib → core/mcp-server}/server/internal/handlers/error.js +1 -1
- package/core/mcp-server/server/internal/handlers/prompts-get.js +28 -0
- package/core/mcp-server/server/internal/handlers/prompts-list.js +21 -0
- package/core/mcp-server/server/internal/handlers/resources-list.js +21 -0
- package/core/mcp-server/server/internal/handlers/resources-read.js +28 -0
- package/core/mcp-server/server/internal/handlers/tools-call.js +44 -0
- package/core/mcp-server/server/internal/handlers/tools-list.js +23 -0
- package/core/mcp-server/server/internal/run.js +53 -0
- package/{mcp-server/lib → core/mcp-server}/server/internal/server.js +11 -1
- package/core/models/ConversationFilters.js +31 -0
- package/core/models/ExportFormat.js +8 -0
- package/core/models/RequestFilters.js +43 -0
- package/core/models/SessionFilters.js +23 -0
- package/core/models/index.js +8 -0
- package/core/repositories/AuditRepository.js +233 -0
- package/core/repositories/ConversationRepository.js +182 -0
- package/core/repositories/PacketRepository.js +237 -0
- package/core/repositories/SchemaRepository.js +107 -0
- package/core/repositories/SessionRepository.js +59 -0
- package/core/repositories/StatisticsRepository.js +54 -0
- package/core/repositories/index.js +10 -0
- package/core/services/AuditService.js +144 -0
- package/core/services/BackupService.js +222 -0
- package/core/services/ConfigDetectionService.js +89 -0
- package/core/services/ConfigFileService.js +210 -0
- package/core/services/ConfigPatchingService.js +137 -0
- package/core/services/ConfigService.js +250 -0
- package/core/services/ConfigTransformService.js +178 -0
- package/core/services/ConversationService.js +19 -0
- package/core/services/ExportService.js +117 -0
- package/core/services/LogService.js +64 -0
- package/core/services/McpClientService.js +235 -0
- package/core/services/McpDiscoveryService.js +107 -0
- package/core/services/RequestService.js +56 -0
- package/core/services/ScanCacheService.js +242 -0
- package/core/services/ScanService.js +167 -0
- package/core/services/ServerManagementService.js +206 -0
- package/core/services/SessionService.js +34 -0
- package/core/services/SettingsService.js +163 -0
- package/core/services/StatisticsService.js +64 -0
- package/core/services/TokenService.js +94 -0
- package/core/services/index.js +25 -0
- package/core/services/parsers/ConfigParserFactory.js +113 -0
- package/core/services/parsers/JsonConfigParser.js +66 -0
- package/core/services/parsers/LegacyJsonConfigParser.js +71 -0
- package/core/services/parsers/TomlConfigParser.js +87 -0
- package/core/services/parsers/index.js +4 -0
- package/{ui/server → core}/utils/scan-cache/directory.js +1 -1
- package/core/utils/validation.js +77 -0
- package/package.json +14 -11
- package/ui/dist/assets/index-CArYxKxS.js +35 -0
- package/ui/dist/index.html +1 -1
- package/ui/server/controllers/BackupController.js +129 -0
- package/ui/server/controllers/ConfigController.js +92 -0
- package/ui/server/controllers/ConversationController.js +41 -0
- package/ui/server/controllers/LogController.js +44 -0
- package/ui/server/controllers/McpClientController.js +60 -0
- package/ui/server/controllers/McpDiscoveryController.js +44 -0
- package/ui/server/controllers/RequestController.js +129 -0
- package/ui/server/controllers/ScanController.js +122 -0
- package/ui/server/controllers/ServerManagementController.js +134 -0
- package/ui/server/controllers/SessionController.js +57 -0
- package/ui/server/controllers/SettingsController.js +24 -0
- package/ui/server/controllers/StatisticsController.js +54 -0
- package/ui/server/controllers/TokenController.js +58 -0
- package/ui/server/controllers/index.js +17 -0
- package/ui/server/routes/backups/index.js +15 -9
- package/ui/server/routes/composite/index.js +62 -32
- package/ui/server/routes/composite/servers.js +20 -15
- package/ui/server/routes/config.js +13 -172
- package/ui/server/routes/conversations.js +9 -19
- package/ui/server/routes/help.js +4 -3
- package/ui/server/routes/logs.js +14 -26
- package/ui/server/routes/playground.js +11 -174
- package/ui/server/routes/requests.js +12 -232
- package/ui/server/routes/sessions.js +10 -21
- package/ui/server/routes/settings.js +10 -192
- package/ui/server/routes/smartscan.js +26 -15
- package/ui/server/routes/statistics.js +8 -79
- package/ui/server/setup.js +162 -0
- package/ui/server/swagger/paths/backups.js +151 -0
- package/ui/server/swagger/paths/components.js +76 -0
- package/ui/server/swagger/paths/config.js +117 -0
- package/ui/server/swagger/paths/conversations.js +29 -0
- package/ui/server/swagger/paths/help.js +82 -0
- package/ui/server/swagger/paths/logs.js +87 -0
- package/ui/server/swagger/paths/playground.js +49 -0
- package/ui/server/swagger/paths/requests.js +178 -0
- package/ui/server/swagger/paths/serverManagement.js +169 -0
- package/ui/server/swagger/paths/sessions.js +61 -0
- package/ui/server/swagger/paths/settings.js +31 -0
- package/ui/server/swagger/paths/smartScan/discovery.js +97 -0
- package/ui/server/swagger/paths/smartScan/index.js +13 -0
- package/ui/server/swagger/paths/smartScan/scans.js +151 -0
- package/ui/server/swagger/paths/smartScan/token.js +71 -0
- package/ui/server/swagger/paths/statistics.js +40 -0
- package/ui/server/swagger/paths.js +38 -0
- package/ui/server/swagger/swagger.js +37 -0
- package/ui/server/utils/cleanup.js +99 -0
- package/ui/server/utils/config.js +18 -96
- package/ui/server/utils/errorHandler.js +43 -0
- package/ui/server/utils/logger.js +2 -2
- package/ui/server/utils/paths.js +27 -30
- package/ui/server/utils/port.js +21 -21
- package/ui/server/utils/process.js +18 -10
- package/ui/server/utils/processState.js +17 -0
- package/ui/server/utils/signals.js +34 -0
- package/ui/server/websocket/broadcast.js +33 -0
- package/ui/server/websocket/handler.js +52 -0
- package/ui/server.js +51 -230
- package/ui/src/App.jsx +2 -0
- package/ui/src/CompositeSetup.jsx +23 -9
- package/ui/src/PacketFilters.jsx +17 -3
- package/ui/src/components/AlertModal.jsx +116 -0
- package/ui/src/components/App/ApiDocsButton.jsx +57 -0
- package/ui/src/components/App/useAppState.js +43 -1
- package/ui/src/components/BackupList.jsx +27 -3
- package/ui/src/utils/requestPairing.js +35 -36
- package/ui/src/utils/requestUtils.js +1 -0
- package/lib/common/db/init.js +0 -132
- package/lib/common/db/logger.js +0 -349
- package/lib/common/db/query.js +0 -403
- package/lib/common/logger.js +0 -90
- package/mcp-server/index.js +0 -138
- package/mcp-server/lib/server/external/config.js +0 -57
- package/mcp-server/lib/server/internal/handlers/prompts-get.js +0 -20
- package/mcp-server/lib/server/internal/handlers/prompts-list.js +0 -13
- package/mcp-server/lib/server/internal/handlers/resources-list.js +0 -13
- package/mcp-server/lib/server/internal/handlers/resources-read.js +0 -20
- package/mcp-server/lib/server/internal/handlers/tools-call.js +0 -35
- package/mcp-server/lib/server/internal/handlers/tools-list.js +0 -15
- package/mcp-server/lib/server/internal/run.js +0 -37
- package/mcp-server/mcp-shark.js +0 -22
- package/ui/dist/assets/index-CFHeMNwd.js +0 -35
- package/ui/server/routes/backups/deleteBackup.js +0 -54
- package/ui/server/routes/backups/listBackups.js +0 -75
- package/ui/server/routes/backups/restoreBackup.js +0 -83
- package/ui/server/routes/backups/viewBackup.js +0 -47
- package/ui/server/routes/composite/setup.js +0 -129
- package/ui/server/routes/composite/status.js +0 -7
- package/ui/server/routes/composite/stop.js +0 -39
- package/ui/server/routes/composite/utils.js +0 -45
- package/ui/server/routes/smartscan/discover.js +0 -118
- package/ui/server/routes/smartscan/scans/clearCache.js +0 -23
- package/ui/server/routes/smartscan/scans/createBatchScans.js +0 -124
- package/ui/server/routes/smartscan/scans/createScan.js +0 -43
- package/ui/server/routes/smartscan/scans/getCachedResults.js +0 -52
- package/ui/server/routes/smartscan/scans/getScan.js +0 -42
- package/ui/server/routes/smartscan/scans/listScans.js +0 -25
- package/ui/server/routes/smartscan/scans.js +0 -13
- package/ui/server/routes/smartscan/token.js +0 -57
- package/ui/server/utils/config-update.js +0 -240
- package/ui/server/utils/scan-cache/all-results.js +0 -197
- package/ui/server/utils/scan-cache/file-operations.js +0 -107
- package/ui/server/utils/scan-cache/hash.js +0 -47
- package/ui/server/utils/scan-cache/server-operations.js +0 -85
- package/ui/server/utils/scan-cache.js +0 -12
- package/ui/server/utils/smartscan-token.js +0 -43
- /package/{mcp-server/lib → core/mcp-server}/server/external/kv.js +0 -0
- /package/{mcp-server/lib → core/mcp-server}/server/internal/handlers/common.js +0 -0
- /package/{mcp-server/lib → core/mcp-server}/server/internal/session.js +0 -0
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { listAll } from '../../external/kv.js';
|
|
2
|
-
|
|
3
|
-
export function createPromptsListHandler(logger, mcpServers, requestedMcpServer) {
|
|
4
|
-
return async (req) => {
|
|
5
|
-
const path = req.path;
|
|
6
|
-
logger.debug('Prompts list', path);
|
|
7
|
-
|
|
8
|
-
const res = await listAll(mcpServers, requestedMcpServer, 'prompts');
|
|
9
|
-
const result = Array.isArray(res) ? { prompts: res } : res;
|
|
10
|
-
|
|
11
|
-
return result;
|
|
12
|
-
};
|
|
13
|
-
}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { listAll } from '../../external/kv.js';
|
|
2
|
-
|
|
3
|
-
export function createResourcesListHandler(logger, mcpServers, requestedMcpServer) {
|
|
4
|
-
return async (req) => {
|
|
5
|
-
const path = req.path;
|
|
6
|
-
logger.debug('Resources list', path);
|
|
7
|
-
|
|
8
|
-
const res = await listAll(mcpServers, requestedMcpServer, 'resources');
|
|
9
|
-
const result = Array.isArray(res) ? { resources: res } : res;
|
|
10
|
-
|
|
11
|
-
return result;
|
|
12
|
-
};
|
|
13
|
-
}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { getBy } from '../../external/kv.js';
|
|
2
|
-
import { InternalServerError } from './error.js';
|
|
3
|
-
|
|
4
|
-
export function createResourcesReadHandler(logger, mcpServers, requestedMcpServer) {
|
|
5
|
-
return async (req) => {
|
|
6
|
-
const path = req.path;
|
|
7
|
-
const uri = req.params.uri;
|
|
8
|
-
logger.debug('Resource read', path, uri);
|
|
9
|
-
|
|
10
|
-
const readResource = getBy(mcpServers, requestedMcpServer, uri, 'readResource');
|
|
11
|
-
if (!readResource) {
|
|
12
|
-
throw new InternalServerError(`Resource not found: ${uri}`);
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
const result = await readResource(uri);
|
|
16
|
-
logger.debug('Resource read result', result);
|
|
17
|
-
|
|
18
|
-
return result;
|
|
19
|
-
};
|
|
20
|
-
}
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import { getBy } from '../../external/kv.js';
|
|
2
|
-
import { InternalServerError } from './error.js';
|
|
3
|
-
|
|
4
|
-
const isAsyncIterable = (v) => v && typeof v[Symbol.asyncIterator] === 'function';
|
|
5
|
-
|
|
6
|
-
export function createToolsCallHandler(logger, mcpServers, requestedMcpServer) {
|
|
7
|
-
return async (req) => {
|
|
8
|
-
const path = req.path;
|
|
9
|
-
const { name, arguments: args } = req.params;
|
|
10
|
-
logger.debug('Tool call', path, name, args);
|
|
11
|
-
|
|
12
|
-
const callTool = getBy(mcpServers, requestedMcpServer, name, 'callTool', args || {});
|
|
13
|
-
if (!callTool) {
|
|
14
|
-
throw new InternalServerError(`Tool not found: ${name}`);
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
const result = await callTool({
|
|
18
|
-
...req.params,
|
|
19
|
-
name,
|
|
20
|
-
});
|
|
21
|
-
logger.debug('Tool call result', result);
|
|
22
|
-
|
|
23
|
-
if (isAsyncIterable(result)) {
|
|
24
|
-
async function* loggedStream() {
|
|
25
|
-
for await (const chunk of result) {
|
|
26
|
-
logger.debug('Tool call chunk forwarded', chunk);
|
|
27
|
-
yield chunk;
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
return loggedStream();
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
return result;
|
|
34
|
-
};
|
|
35
|
-
}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { listAll } from '../../external/kv.js';
|
|
2
|
-
|
|
3
|
-
export function createToolsListHandler(logger, mcpServers, requestedMcpServer) {
|
|
4
|
-
return async (req) => {
|
|
5
|
-
const path = req.path;
|
|
6
|
-
logger.debug('Listing tools', path);
|
|
7
|
-
|
|
8
|
-
const res = await listAll(mcpServers, requestedMcpServer, 'tools');
|
|
9
|
-
logger.debug('Tools list result', JSON.stringify(res));
|
|
10
|
-
|
|
11
|
-
const result = Array.isArray(res) ? { tools: res } : res;
|
|
12
|
-
|
|
13
|
-
return result;
|
|
14
|
-
};
|
|
15
|
-
}
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import cors from 'cors';
|
|
2
|
-
import express from 'express';
|
|
3
|
-
|
|
4
|
-
import { withSession } from './session.js';
|
|
5
|
-
|
|
6
|
-
export function getInternalServer(serverFactory, auditLogger, withAuditRequestResponseHandler) {
|
|
7
|
-
const app = express();
|
|
8
|
-
|
|
9
|
-
// Parse JSON body for POST requests
|
|
10
|
-
app.use(express.json());
|
|
11
|
-
app.use(
|
|
12
|
-
'/mcp',
|
|
13
|
-
cors({
|
|
14
|
-
origin: ['*'],
|
|
15
|
-
methods: ['*'],
|
|
16
|
-
allowedHeaders: ['*'],
|
|
17
|
-
exposedHeaders: ['*'],
|
|
18
|
-
})
|
|
19
|
-
);
|
|
20
|
-
|
|
21
|
-
app.all('/mcp/*', async (req, res) => {
|
|
22
|
-
await withSession(serverFactory, withAuditRequestResponseHandler, req, res, auditLogger);
|
|
23
|
-
});
|
|
24
|
-
|
|
25
|
-
// Catch-all for other routes (404)
|
|
26
|
-
app.use((_req, res) => {
|
|
27
|
-
res.status(404).json({ error: 'Not found' });
|
|
28
|
-
});
|
|
29
|
-
|
|
30
|
-
return app;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
export function runInternalServer(logger, port, app) {
|
|
34
|
-
app.listen(port, '0.0.0.0', () => {
|
|
35
|
-
logger.info(`MCP proxy HTTP server listening on http://localhost:${port}/mcp`);
|
|
36
|
-
});
|
|
37
|
-
}
|
package/mcp-server/mcp-shark.js
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import logger from '#common/logger';
|
|
2
|
-
// CLI entry point - uses the library
|
|
3
|
-
import { startMcpSharkServer } from './index.js';
|
|
4
|
-
|
|
5
|
-
async function main() {
|
|
6
|
-
try {
|
|
7
|
-
await startMcpSharkServer({
|
|
8
|
-
onReady: () => {
|
|
9
|
-
logger.info('[MCP-Shark] MCP server started successfully');
|
|
10
|
-
},
|
|
11
|
-
onError: (error) => {
|
|
12
|
-
logger.error({ error: error.message, stack: error.stack }, 'Error starting MCP server');
|
|
13
|
-
process.exit(1);
|
|
14
|
-
},
|
|
15
|
-
});
|
|
16
|
-
} catch (error) {
|
|
17
|
-
logger.error({ error: error.message, stack: error.stack }, 'Error starting MCP server');
|
|
18
|
-
process.exit(1);
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
main();
|