Skip to main content
Glama

mcp-server-cloudflare

Official
by cloudflare
poll.ts834 B
type PollOptions<T> = { taskFn: () => Promise<T> checkFn?: (result: T) => boolean intervalSeconds?: number maxWaitSeconds?: number onError?: (error: unknown) => void } const sleep = (ms: number) => new Promise((resolve) => setTimeout(resolve, ms)) export async function pollUntilReady<T>({ taskFn, checkFn = (result: T) => Boolean(result), intervalSeconds = 5, maxWaitSeconds = 60, onError = () => {}, }: PollOptions<T>): Promise<T> { let elapsed = 0 let result: T | null = null while (elapsed < maxWaitSeconds) { try { result = await taskFn() if (checkFn(result)) break } catch (error) { onError(error) } await sleep(intervalSeconds * 1000) elapsed += intervalSeconds } if (result === null || !checkFn(result)) { throw new Error('Polling timed out or condition not met') } return result }

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

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