UNPKG

mcp-omnisearch

Version:

MCP server for integrating Omnisearch with LLMs

23 lines (22 loc) 1.17 kB
import { ErrorType, ProviderError, } from '../../common/types.js'; import { ExaContentsProvider } from '../processing/exa_contents/index.js'; import { ExaSimilarProvider } from '../processing/exa_similar/index.js'; export class UnifiedExaProcessProvider { constructor() { this.name = 'exa_process'; this.description = 'Extract content with Exa. Modes: contents (full content from result IDs), similar (find similar pages).'; this.providers = new Map(); this.providers.set('contents', new ExaContentsProvider()); this.providers.set('similar', new ExaSimilarProvider()); } async process_content(url, extract_depth = 'basic', mode = 'contents') { if (!mode) { throw new ProviderError(ErrorType.INVALID_INPUT, 'Mode parameter is required', this.name); } const selectedProvider = this.providers.get(mode); if (!selectedProvider) { throw new ProviderError(ErrorType.INVALID_INPUT, `Invalid mode: ${mode}. Valid options: ${Array.from(this.providers.keys()).join(', ')}`, this.name); } return selectedProvider.process_content(url, extract_depth); } }