Skip to main content
Glama

OpenAI SDK Knowledge MCP Server

by seratch
index.ts2.5 kB
// Main entry point for the OpenAI SDK Knowledge MCP Server // This Cloudflare Worker provides an MCP server with RAG capabilities for OpenAI SDK knowledge // Documentation: https://developers.cloudflare.com/workers/runtime-apis/handlers/ import { getGlobalTraceProvider, setDefaultOpenAITracingExporter, } from "@openai/agents"; import type { MessageBatch } from "@cloudflare/workers-types"; import { Env } from "@/env"; import { JobProcessor } from "@/pipeline/job-processor"; import { Logger } from "@/logger"; import { app } from "@/server"; // Default export required by Cloudflare Workers export default { // HTTP request handler - processes all incoming HTTP requests // https://developers.cloudflare.com/workers/runtime-apis/handlers/fetch/ async fetch( request: Request, env: Env, ctx: ExecutionContext, ): Promise<Response> { setDefaultOpenAITracingExporter(); try { // Delegate to Hono app for request handling return await app.fetch(request, env, ctx); } finally { // Flush OpenAI Agents SDK traces before response completes // This ensures telemetry data is properly sent to OpenAI // https://openai.github.io/openai-agents-js/guides/tracing ctx.waitUntil( (async () => { await getGlobalTraceProvider().forceFlush(); Logger.lazyDebug(() => "OpenAI Agents SDK traces flushed"); })(), ); } }, // Queue handler - processes background jobs via Cloudflare Queues // https://developers.cloudflare.com/queues/ async queue( batch: MessageBatch<{ jobId: number }>, env: Env, ctx: ExecutionContext, ) { setDefaultOpenAITracingExporter(); try { Logger.info(`Processing job queue`, { batch: batch.messages.map((msg) => msg.body.jobId), }); // Process each job in the batch sequentially // Jobs handle data collection from GitHub API and OpenAI forum const processor = new JobProcessor(env); for (const msg of batch.messages) { await processor.processJob(msg.body.jobId); } } finally { // Flush OpenAI Agents SDK traces before response completes // This ensures telemetry data is properly sent to OpenAI // https://openai.github.io/openai-agents-js/guides/tracing ctx.waitUntil( (async () => { await getGlobalTraceProvider().forceFlush(); Logger.lazyDebug(() => "OpenAI Agents SDK traces flushed"); })(), ); } }, };

Latest Blog Posts

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/seratch/openai-sdk-knowledge-org'

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