Skip to main content
Glama
perf.auth-and-routing.test.ts1.73 kB
import '../setup/test-setup.js' import test from 'node:test' import { performance } from 'node:perf_hooks' import { MultiAuthManager } from '../../src/auth/multi-auth-manager.js' import { AuthStrategy } from '../../src/types/config.js' import { createMockServer } from '../utils/mock-http.js' import { RequestRouter } from '../../src/modules/request-router.js' import { CapabilityAggregator } from '../../src/modules/capability-aggregator.js' test('Perf: validateClientToken and routeCallTool throughput (smoke)', async (t) => { const mam = new MultiAuthManager({ authorization_endpoint: 'http://a', token_endpoint: 'http://t', client_id: 'x', redirect_uri: 'http://l', scopes: ['openid'] } as any) mam.registerServerAuth('s', AuthStrategy.BYPASS_AUTH) const N = 1000 const t0 = performance.now() for (let i = 0; i < N; i++) await mam.validateClientToken('opaque-token') const dt = performance.now() - t0 t.diagnostic(`validateClientToken x${N}: ${Math.round(dt)}ms (${Math.round((N/dt)*1000)} ops/sec)`) // eslint-disable-line const upstream = await createMockServer([ { method: 'POST', path: '/mcp/tools/call', handler: () => ({ body: { content: { ok: true } } }) }, ]) const servers = new Map<string, any>([[ 's', { id: 's', type: 'node', endpoint: upstream.url, config: {} as any, status: 'running', lastHealthCheck: 0 } ]]) const rr = new RequestRouter(servers as any, new CapabilityAggregator()) const M = 200 const t1 = performance.now() for (let i = 0; i < M; i++) await rr.routeCallTool({ name: 's.ping' }) const dt2 = performance.now() - t1 t.diagnostic(`routeCallTool x${M}: ${Math.round(dt2)}ms (${Math.round((M/dt2)*1000)} rps)`) // eslint-disable-line await upstream.close() })

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/Jakedismo/master-mcp-server'

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