Skip to main content
Glama

Cryptocurrency Daemon MCP Server

by raw391
config.ts1.58 kB
import { ServerConfig, DaemonConfig } from './types'; export function validateConfig(config: ServerConfig): void { if (!config.daemons || !Array.isArray(config.daemons)) { throw new Error('Configuration must include a "daemons" array'); } if (config.daemons.length === 0) { throw new Error('At least one daemon configuration is required'); } const nicknames = new Set<string>(); config.daemons.forEach((daemon, index) => { try { validateDaemonConfig(daemon); } catch (error) { throw new Error(`Daemon ${index + 1} (${daemon.nickname || 'unnamed'}): ${error.message}`); } if (nicknames.has(daemon.nickname)) { throw new Error(`Duplicate daemon nickname found: ${daemon.nickname}`); } nicknames.add(daemon.nickname); }); } function validateDaemonConfig(config: DaemonConfig): void { const required: (keyof DaemonConfig)[] = ['coinName', 'nickname', 'rpcEndpoint', 'rpcUser', 'rpcPassword']; required.forEach(field => { if (!config[field]) { throw new Error(`Missing required field: ${field}`); } }); // Validate RPC endpoint format const endpointMatch = config.rpcEndpoint.match(/^([^:]+):(\d+)$/); if (!endpointMatch) { throw new Error('RPC endpoint must be in format "host:port"'); } const [, host, portStr] = endpointMatch; const port = parseInt(portStr, 10); if (host.length === 0) { throw new Error('Invalid RPC host'); } if (isNaN(port) || port < 1 || port > 65535) { throw new Error('Invalid RPC port number (must be between 1-65535)'); } }

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/raw391/coin_daemon_mcp'

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