Skip to main content
Glama

MCPMan

by semistrict
validate.ts2.11 kB
import { command } from "cmd-ts"; import { ConfigError, loadConfig } from "../../config/loader.js"; import { UpstreamServerManager } from "../../mcp/upstream-server-manager.js"; export const validateCommand = command({ name: "validate", description: "Validate MCPMan configuration and test server connections", args: {}, handler: async () => { try { // Validate config syntax console.log("Validating configuration..."); const config = await loadConfig(); console.log("✓ Configuration is valid"); // Test server connections console.log("\nTesting server connections..."); const upstreamServerManager = new UpstreamServerManager(config); const serverNames = Object.keys(config.servers).filter( (name) => config.servers[name]?.autoConnect !== false ); if (serverNames.length === 0) { console.log("No auto-connect servers to test"); return; } // Connect to all servers await upstreamServerManager.connectAll(); // Check each server for (const serverName of serverNames) { const managedServer = upstreamServerManager.getManagedServer(serverName); if (managedServer?.isConnected()) { try { // Try to list tools to verify connection await managedServer.listTools(); console.log(`✓ ${serverName}: Connected`); } catch (error) { console.log( `✗ ${serverName}: Failed to list tools - ${error instanceof Error ? error.message : String(error)}` ); } } else { console.log(`✗ ${serverName}: Not connected`); } } // Clean up connections await upstreamServerManager.disconnect(); } catch (error) { if (error instanceof ConfigError) { console.error(`Configuration error: ${error.message}`); process.exit(1); } else { console.error( `Validation failed: ${error instanceof Error ? error.message : String(error)}` ); process.exit(1); } } }, });

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/semistrict/mcpman'

If you have feedback or need assistance with the MCP directory API, please join our Discord server