Skip to main content
Glama

MCPMan

by semistrict
test.ts2.58 kB
import { command, positional, string } from "cmd-ts"; import { loadConfig } from "../../config/loader.js"; import { UpstreamServerManager } from "../../mcp/upstream-server-manager.js"; export const testCommand = command({ name: "test", description: "Test connection to a specific server", args: { server: positional({ type: string, displayName: "server", description: "Name of the server to test", }), }, handler: async (args) => { const serverName = args.server; try { const config = await loadConfig(); // Check if server exists in config if (!config.servers[serverName]) { throw new Error(`Server '${serverName}' not found in configuration`); } const serverConfig = config.servers[serverName]; if (!serverConfig) { throw new Error(`Server '${serverName}' not found in configuration`); } console.log(`Testing connection to server '${serverName}'...`); // Show config details if (serverConfig.transport === "stdio") { console.log(`Transport: stdio`); console.log(`Command: ${serverConfig.command} ${serverConfig.args.join(" ")}`); } else if (serverConfig.transport === "http") { console.log(`Transport: http`); console.log(`URL: ${serverConfig.url}`); } // Test connection const upstreamServerManager = new UpstreamServerManager(config); await upstreamServerManager.connectAll(); const managedServer = upstreamServerManager.getManagedServer(serverName); if (!managedServer || !managedServer.isConnected()) { console.log("✗ Failed to connect"); await upstreamServerManager.disconnect(); return; } console.log("✓ Connected successfully"); // Test tool listing try { const result = await managedServer.listTools(); const tools = result.tools || []; console.log(`✓ Listed tools (${tools.length} available)`); if (tools.length > 0) { console.log("\nAvailable tools:"); for (const tool of tools) { console.log(` - ${tool.name}: ${tool.description || "No description"}`); } } } catch (error) { console.log( `✗ Failed to list tools: ${error instanceof Error ? error.message : String(error)}` ); } await upstreamServerManager.disconnect(); } catch (error) { console.error(`Test 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