Skip to main content
Glama
prisma

Prisma MCP Server

Official
by prisma
generatorHandler.ts2.06 kB
import readline from 'node:readline' import type { GeneratorConfig, GeneratorManifest, GeneratorOptions } from '@prisma/generator' import * as JsonRpc from './json-rpc' export interface Handler { onGenerate(options: GeneratorOptions): Promise<any> onManifest?(config: GeneratorConfig): GeneratorManifest | Promise<GeneratorManifest> } export function generatorHandler(handler: Handler): void { const stdinInterface = readline.createInterface({ input: process.stdin, crlfDelay: Infinity, }) stdinInterface.on('line', async (line: string) => { const json = JSON.parse(line) if (json.method === 'generate' && json.params) { try { const result = await handler.onGenerate(json.params) respond({ jsonrpc: '2.0', result: result, id: json.id, }) } catch (_e) { const e = _e as Error respond({ jsonrpc: '2.0', error: { code: -32000, message: e.message, data: { stack: e.stack, }, }, id: json.id, }) } } if (json.method === 'getManifest') { if (handler.onManifest) { try { const manifest = await handler.onManifest(json.params) respond({ jsonrpc: '2.0', result: { manifest, }, id: json.id, }) } catch (_e) { const e = _e as Error respond({ jsonrpc: '2.0', error: { code: -32000, message: e.message, data: { stack: e.stack, }, }, id: json.id, }) } } else { respond({ jsonrpc: '2.0', result: { manifest: null, }, id: json.id, }) } } }) process.stdin.resume() } function respond(response: JsonRpc.Response): void { process.stderr.write(JSON.stringify(response) + '\n') }

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/prisma/prisma'

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