UNPKG

dataforseo-mcp-server

Version:

A Model Context Protocol (MCP) server for the DataForSEO API, enabling modular and extensible integration of DataForSEO endpoints with support for both HTTP and SSE transports.

44 lines (43 loc) 2.32 kB
import { SerpApiModule } from '../modules/serp/serp-api.module.js'; import { AiOptimizationApiModule } from '../modules/ai-optimization/ai-optimization-api-module.js'; import { KeywordsDataApiModule } from '../modules/keywords-data/keywords-data-api.module.js'; import { OnPageApiModule } from '../modules/onpage/onpage-api.module.js'; import { DataForSEOLabsApi } from '../modules/dataforseo-labs/dataforseo-labs-api.module.js'; import { BacklinksApiModule } from '../modules/backlinks/backlinks-api.module.js'; import { BusinessDataApiModule } from '../modules/business-data-api/business-data-api.module.js'; import { DomainAnalyticsApiModule } from '../modules/domain-analytics/domain-analytics-api.module.js'; import { isModuleEnabled } from '../config/modules.config.js'; import { ContentAnalysisApiModule } from '../modules/content-analysis/content-analysis-api.module.js'; export class ModuleLoaderService { static loadModules(dataForSEOClient, enabledModules) { const modules = []; if (isModuleEnabled('AI_OPTIMIZATION', enabledModules)) { modules.push(new AiOptimizationApiModule(dataForSEOClient)); } if (isModuleEnabled('SERP', enabledModules)) { modules.push(new SerpApiModule(dataForSEOClient)); } if (isModuleEnabled('KEYWORDS_DATA', enabledModules)) { modules.push(new KeywordsDataApiModule(dataForSEOClient)); } if (isModuleEnabled('ONPAGE', enabledModules)) { modules.push(new OnPageApiModule(dataForSEOClient)); } if (isModuleEnabled('DATAFORSEO_LABS', enabledModules)) { modules.push(new DataForSEOLabsApi(dataForSEOClient)); } if (isModuleEnabled('BACKLINKS', enabledModules)) { modules.push(new BacklinksApiModule(dataForSEOClient)); } if (isModuleEnabled('BUSINESS_DATA', enabledModules)) { modules.push(new BusinessDataApiModule(dataForSEOClient)); } if (isModuleEnabled('DOMAIN_ANALYTICS', enabledModules)) { modules.push(new DomainAnalyticsApiModule(dataForSEOClient)); } if (isModuleEnabled('CONTENT_ANALYSIS', enabledModules)) { modules.push(new ContentAnalysisApiModule(dataForSEOClient)); } return modules; } }