Skip to main content
Glama
streaming.js949 B
/** * @returns {import('types').Deferred & { promise: Promise<any> }}} */ function defer() { let fulfil; let reject; const promise = new Promise((f, r) => { fulfil = f; reject = r; }); // @ts-expect-error return { promise, fulfil, reject }; } /** * Create an async iterator and a function to push values into it * @returns {{ * iterator: AsyncIterable<any>; * push: (value: any) => void; * done: () => void; * }} */ export function create_async_iterator() { const deferred = [defer()]; return { iterator: { [Symbol.asyncIterator]() { return { next: async () => { const next = await deferred[0].promise; if (!next.done) deferred.shift(); return next; } }; } }, push: (value) => { deferred[deferred.length - 1].fulfil({ value, done: false }); deferred.push(defer()); }, done: () => { deferred[deferred.length - 1].fulfil({ done: true }); } }; }

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/MatheusgVentura/Project-One'

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