Skip to main content
Glama
index.ts1.71 kB
import type { Server } from "@modelcontextprotocol/sdk/server/index.js"; import { ListResourcesRequestSchema, ReadResourceRequestSchema } from "@modelcontextprotocol/sdk/types.js"; import { DatabaseService } from "../services/database.js"; import { resource as statusResource } from "./status.js"; import { logger } from '../services/logger.js'; // Register all available resources const resources = [ statusResource ]; // Export resources for server capabilities export const resourceCapabilities = { resources: Object.fromEntries( resources.map(r => [r.name, { uri: r.uri, name: r.name, type: r.type, description: r.description }]) ) }; export function setupResourceHandlers(server: Server, db: DatabaseService) { // Register resource list handler server.setRequestHandler(ListResourcesRequestSchema, async () => { try { return { resources: Object.values(resourceCapabilities.resources) }; } catch (error) { // Log the error but don't fail - return default resources if (error instanceof Error) { logger.error("Critical error listing resources:", error.message); } else { logger.error("Critical error listing resources:", error); } // Return empty list on error return { resources: [] }; } }); // Register resource read handler server.setRequestHandler(ReadResourceRequestSchema, async (request) => { const { uri } = request.params; // Find matching resource const resource = resources.find(r => r.uri === uri); if (!resource) { throw new Error(`Unknown resource: ${uri}`); } // Handle the resource request return resource.handler(db); }); }

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/turbot/steampipe-mcp'

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