Skip to main content
Glama
parsing.ts1.62 kB
export function splitNumbers( str: string | undefined, delimiter: string, expectedCount: number ): number[] | null { if (!str) return null; const parts = str.split(delimiter).map(s => s.trim()).filter(Boolean); if (parts.length < expectedCount) return null; const numbers = parts.slice(0, expectedCount).map(Number); if (numbers.some(isNaN)) return null; return numbers; } export function parsePair( str: string | undefined, defaults: [number, number] = [0, 0] ): [number, number] { const result = splitNumbers(str, ' ', 2); if (!result) return defaults; return [result[0], result[1]]; } export function parseTriple( str: string | undefined, defaults: [number, number, number] = [1, 1, 1] ): [number, number, number] { const result = splitNumbers(str, ' ', 3); if (!result) return defaults; return [result[0], result[1], result[2]]; } export function arrayAt<T>( arr: T[] | undefined, index: number, defaultValue: T ): T { if (!arr || index < 0 || index >= arr.length) return defaultValue; return arr[index]; } export function last<T>(arr: T[] | undefined): T | undefined { if (!arr || arr.length === 0) return undefined; return arr[arr.length - 1]; } export function captureGroup( str: string, pattern: RegExp, groupIndex: number = 1 ): string | null { const match = str.match(pattern); if (!match || match.length <= groupIndex) return null; return match[groupIndex]; } export function parsePenetration(str: string | undefined): number { if (!str) return 0; const values = str.split(' ').filter(Boolean).map(Number); return values[0] ?? 0; }

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/Revenant30102000/wotblitz-mcp'

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