#!/usr/bin/env npx tsx import { MCPRegistryService } from '../src/main/services/mcp-registry-service'; /** * Test that the registry service correctly handles servers without package names */ async function testRegistryPackageMapping() { console.log('šŸ” Testing Registry Package Mapping\n'); const registryService = MCPRegistryService.getInstance(); console.log('šŸ“Œ Searching for Reddit server...'); const searchResults = await registryService.searchServers({ query: 'Reddit' }); const redditServer = searchResults.servers.find(s => s.name === 'Reddit'); if (!redditServer) { console.log('āŒ Reddit server not found in search results'); return; } console.log('āœ… Found Reddit server:'); console.log(` Name: ${redditServer.name}`); console.log(` Package Name: ${redditServer.packageName || 'NOT SET'}`); console.log(` Description: ${redditServer.description}`); console.log(` Repository: ${redditServer.repository?.url || 'None'}`); console.log(''); const isInstallable = registryService.isServerInstallable(redditServer); console.log(`šŸ“Š Server installable: ${isInstallable}`); if (!isInstallable) { console.log('āŒ Reddit server is not installable (this is correct if no package mapping)'); console.log(' This prevents the server from showing up with an invalid config'); } else if (redditServer.packageName === 'reddit-mcp') { console.log('āœ… Package name correctly mapped to "reddit-mcp"'); } else { console.log('āš ļø Server is installable but package name may be incorrect'); } console.log('\nšŸ“Œ Converting to MCP Config:'); const mcpConfig = registryService.convertToMCPConfig(redditServer); console.log(` Command: ${mcpConfig.config?.command}`); console.log(` Args: ${JSON.stringify(mcpConfig.config?.args)}`); console.log('\nšŸ“Œ Testing Wikipedia server (should work):'); const wikiResults = await registryService.searchServers({ query: 'Wikipedia' }); const wikiServer = wikiResults.servers.find(s => s.name === 'Wikipedia'); if (wikiServer) { console.log(` Name: ${wikiServer.name}`); console.log(` Package Name: ${wikiServer.packageName || 'NOT SET'}`); console.log(` Installable: ${registryService.isServerInstallable(wikiServer)}`); const wikiConfig = registryService.convertToMCPConfig(wikiServer); console.log(` Config: npx ${wikiConfig.config?.args?.join(' ')}`); } } testRegistryPackageMapping().catch(console.error);