Skip to main content
Glama

mcp-omnisearch

handlers.ts2.67 kB
import { McpServer } from 'tmcp'; import type { GenericSchema } from 'valibot'; import { available_providers } from './tools.js'; export const setup_handlers = (server: McpServer<GenericSchema>) => { // Provider Status Resource server.resource( { name: 'provider-status', description: 'Current status of all search providers', uri: 'omnisearch://providers/status', }, async () => { return { contents: [ { uri: 'omnisearch://providers/status', mimeType: 'application/json', text: JSON.stringify( { status: 'operational', providers: { search: Array.from(available_providers.search), ai_response: Array.from( available_providers.ai_response, ), processing: Array.from( available_providers.processing, ), enhancement: Array.from( available_providers.enhancement, ), }, available_count: { search: available_providers.search.size, ai_response: available_providers.ai_response.size, processing: available_providers.processing.size, enhancement: available_providers.enhancement.size, total: available_providers.search.size + available_providers.ai_response.size + available_providers.processing.size + available_providers.enhancement.size, }, }, null, 2, ), }, ], }; }, ); // Provider Info Resource Template server.resource( { name: 'provider-info', description: 'Information about a specific search provider', uri: 'omnisearch://search/{provider}/info', }, async (uri) => { // Handle provider info template const providerMatch = uri.match( /^omnisearch:\/\/search\/([^/]+)\/info$/, ); if (providerMatch) { const providerName = providerMatch[1]; // Check if provider is available const isAvailable = available_providers.search.has(providerName) || available_providers.ai_response.has(providerName); if (!isAvailable) { throw new Error( `Provider not available: ${providerName} (missing API key)`, ); } return { contents: [ { uri, mimeType: 'application/json', text: JSON.stringify( { name: providerName, status: 'active', capabilities: ['web_search', 'news_search'], rate_limits: { requests_per_minute: 60, requests_per_day: 1000, }, }, null, 2, ), }, ], }; } throw new Error(`Unknown resource URI: ${uri}`); }, ); };

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/spences10/mcp-omnisearch'

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