Skip to main content
Glama

TaskFlow MCP

sanitize.ts1.19 kB
export function sanitizeString(input: string): string { if (typeof input !== "string") { return String(input); } return input // "instructions.mdnnFiles" -> "instructions.md\n\nFiles" .replace(/\.md(nn)(?=[A-Z])/g, ".md\n\n") // "analyze:n-" -> "analyze:\n-" .replace(/:n(-)/g, ":\n$1") // "XnnY" -> "X\n\nY" when Y is capitalized .replace(/(\w)(nn)(?=[A-Z])/g, "$1\n\n") // ":n-" or " n-" -> "\n-" .replace(/(:|\s)(n)(-)/g, "$1\n$3") // ":(n)(?=[-*•])" -> ":\n" .replace(/(:)(n)(?=[-*•])/g, "$1\n") // Preserve literal \n sequences .replace(/\\n/g, "\n"); } /** * Recursive sanitizer for bulk structures. * Use this OR per-field sanitizeString — not both. */ export function sanitizeTaskData<T>(data: T): T { if (typeof data === "string") { return sanitizeString(data) as unknown as T; } if (Array.isArray(data)) { return data.map((item) => sanitizeTaskData(item)) as unknown as T; } if (data && typeof data === "object") { const sanitized: any = {}; for (const [k, v] of Object.entries(data as any)) { sanitized[k] = sanitizeTaskData(v); } return sanitized; } return data; }

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/pinkpixel-dev/taskflow-mcp'

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