Skip to main content
Glama
requestHandler.ts1.47 kB
import type { Server } from "@modelcontextprotocol/sdk/server/index.js"; import { CallToolRequestSchema, ListResourcesRequestSchema, ListToolsRequestSchema, ReadResourceRequestSchema, type Tool, } from "@modelcontextprotocol/sdk/types.js"; import { listFileResources, readFileResource } from "./resourceManager.js"; import { handleToolCall } from "./toolHandler.js"; export function setupRequestHandlers(server: Server, tools: Tool[]) { // List resources handler server.setRequestHandler(ListResourcesRequestSchema, async () => ({ resources: [...(await listFileResources(server))], })); // Read resource handler server.setRequestHandler(ReadResourceRequestSchema, async (request) => { const uri = request.params.uri.toString(); const fileResource = await readFileResource(uri, server); if (fileResource) { const { resource, text, blob } = fileResource; return { contents: [ { uri: resource.uri, mimeType: resource.mimeType, ...(text ? { text } : { blob }), }, ], }; } throw new Error(`Resource not found: ${uri}`); }); // List tools handler server.setRequestHandler(ListToolsRequestSchema, async () => ({ tools: tools, })); // Call tool handler server.setRequestHandler(CallToolRequestSchema, async (request, extra) => handleToolCall(request.params.name, request.params.arguments ?? {}, server, extra), ); }

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/aakashH242/mcp-playwright'

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