Skip to main content
Glama

Convex MCP server

Official
by get-convex
stream.ts1.61 kB
import { assert } from "chai"; import { wrapInTests } from "./testHelpers"; import { query } from "../_generated/server"; export default query(async () => { return await wrapInTests({ streamReadWrite, streamRoundTrip, }); }); async function streamReadWrite() { let controller: ReadableByteStreamController; const stream = new ReadableStream({ type: "bytes", start(c) { controller = c; }, }); const reader = stream.getReader(); const encoder = new TextEncoder(); controller!.enqueue(encoder.encode("hi ")); assert.deepEqual(await reader.read(), { value: encoder.encode("hi "), done: false, }); controller!.enqueue(encoder.encode("there!")); assert.deepEqual(await reader.read(), { value: encoder.encode("there!"), done: false, }); controller!.close(); assert.deepEqual(await reader.read(), { value: undefined, done: true }); } async function streamRoundTrip() { let controller: ReadableByteStreamController; const stream = new ReadableStream({ type: "bytes", start(c) { controller = c; }, }); // Send it to Rust and back. const reader = (stream as any)["_persist"]().getReader(); const encoder = new TextEncoder(); controller!.enqueue(encoder.encode("hi ")); assert.deepEqual(await reader.read(), { value: encoder.encode("hi "), done: false, }); controller!.enqueue(encoder.encode("there!")); assert.deepEqual(await reader.read(), { value: encoder.encode("there!"), done: false, }); controller!.close(); assert.deepEqual(await reader.read(), { value: undefined, 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/get-convex/convex-backend'

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