Skip to main content
Glama

OP.GG MCP Server

Official
by opgginc
index.ts1.82 kB
#!/usr/bin/env node import { Client } from "@modelcontextprotocol/sdk/client/index.js"; import { Server } from "@modelcontextprotocol/sdk/server/index.js"; import { EventSource } from "eventsource"; import { setTimeout } from "node:timers"; import util from "node:util"; import { proxyServer } from "./proxy-server.js"; import { StreamableHTTPClientTransport } from '@modelcontextprotocol/sdk/client/streamableHttp.js'; import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js"; util.inspect.defaultOptions.depth = 8; if (!("EventSource" in global)) { // @ts-expect-error - figure out how to use --experimental-eventsource with vitest global.EventSource = EventSource; } const proxy = async (url: string): Promise<void> => { const client = new Client( { name: "ssl-client", version: "1.0.0", }, { capabilities: {}, }, ); const transport = new StreamableHTTPClientTransport(new URL(url)); await client.connect(transport); const serverVersion = client.getServerVersion() as { name: string; version: string; }; const serverCapabilities = client.getServerCapabilities() as {}; const server = new Server(serverVersion, { capabilities: serverCapabilities, }); const stdioTransport = new StdioServerTransport(); await server.connect(stdioTransport); await proxyServer({ server, client, serverCapabilities, }); }; const main = async () => { process.on("SIGINT", () => { console.info("SIGINT received, shutting down"); setTimeout(() => { process.exit(0); }, 1000); }); try { await proxy("https://mcp-api.op.gg/mcp"); } catch (error) { console.error("could not start the proxy", error); setTimeout(() => { process.exit(1); }, 1000); } }; await main();

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/opgginc/opgg-mcp'

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