Skip to main content
Glama
benchmark.ts2.23 kB
// Performance comparison script console.log('=== MCP Server Performance Test ===\n'); const startTime = process.hrtime.bigint(); // Simulate MCP server startup import { Server } from '@modelcontextprotocol/sdk/server/index.js'; import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js'; import dotenv from 'dotenv'; import axios from 'axios'; // Time various operations const markers: Record<string, bigint> = { start: startTime, }; // Load env dotenv.config(); markers.envLoaded = process.hrtime.bigint(); // Import our modules const { getTeacherScheduleTool } = await import('../src/tools/teacherSchedule'); markers.toolsLoaded = process.hrtime.bigint(); // Create server instance const server = new Server( { name: 'perf-test', version: '1.0.0' }, { capabilities: { tools: {} } } ); markers.serverCreated = process.hrtime.bigint(); // Calculate timings const timings = { 'Environment Loading': Number(markers.envLoaded - markers.start) / 1_000_000, 'Tools Loading': Number(markers.toolsLoaded - markers.envLoaded) / 1_000_000, 'Server Creation': Number(markers.serverCreated - markers.toolsLoaded) / 1_000_000, 'Total Startup': Number(markers.serverCreated - markers.start) / 1_000_000, }; // Display results const runtime = typeof Bun !== 'undefined' ? 'Bun' : 'Node.js'; console.log(`Runtime: ${runtime} ${process.version}\n`); console.log('Startup Times (ms):'); Object.entries(timings).forEach(([key, value]) => { console.log(` ${key}: ${value.toFixed(2)}ms`); }); console.log('\nMemory Usage:'); const mem = process.memoryUsage(); console.log(` RSS: ${(mem.rss / 1024 / 1024).toFixed(2)} MB`); console.log(` Heap Used: ${(mem.heapUsed / 1024 / 1024).toFixed(2)} MB`); // Test actual API call (if env is configured) if (process.env.MINDBODY_API_KEY) { console.log('\nTesting API call...'); const apiStart = process.hrtime.bigint(); try { await getTeacherScheduleTool('Alexia Bauer'); const apiTime = Number(process.hrtime.bigint() - apiStart) / 1_000_000; console.log(` First API Call: ${apiTime.toFixed(2)}ms`); } catch (error: any) { console.log(` API Error: ${error.message}`); } } console.log('\n✨ Test complete!'); process.exit(0);

Latest Blog Posts

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/vespo92/MindbodyMCP'

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