Skip to main content
Glama

Trading Simulator MCP Server

by recallnet
import chalk from 'chalk'; // Define types for configuration variables interface Config { TRADING_SIM_API_URL: string; TRADING_SIM_API_KEY: string | undefined; DEBUG: boolean; } // Define logger interface interface Logger { error: (...args: any[]) => void; warn: (...args: any[]) => void; info: (...args: any[]) => void; } // Custom logger implementation export const logger: Logger = { error: (...args: any[]) => process.stderr.write(`${chalk.red('[ERROR]')} ${args.join(' ')}\n`), warn: (...args: any[]) => process.stderr.write(`${chalk.yellow('[WARN]')} ${args.join(' ')}\n`), info: (...args: any[]) => process.stderr.write(`${chalk.blue('[INFO]')} ${args.join(' ')}\n`), }; // Export configuration object export const config: Config = { TRADING_SIM_API_URL: process.env.TRADING_SIM_API_URL || 'http://localhost:3000', TRADING_SIM_API_KEY: process.env.TRADING_SIM_API_KEY || undefined, DEBUG: process.env.DEBUG === 'true', }; // Ensure URL doesn't have trailing slash if (config.TRADING_SIM_API_URL.endsWith('/')) { config.TRADING_SIM_API_URL = config.TRADING_SIM_API_URL.slice(0, -1); } // Validate environment export function validateEnv(): void { const recommendedVars: (keyof Config)[] = ['TRADING_SIM_API_URL', 'DEBUG']; const missing: string[] = recommendedVars.filter((v) => !process.env[v]); if (missing.length > 0) { logger.warn(`Missing recommended variables: ${missing.join(', ')}. Using defaults.`); } if (!config.TRADING_SIM_API_KEY) { logger.error('Missing required API key (TRADING_SIM_API_KEY). Please provide an API key to use the trading simulator.'); return; } } // Debug startup message if (config.DEBUG) { logger.info('Starting environment setup...'); }

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/recallnet/trading-simulator-mcp'

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