UNPKG

apex-data-for-seo

Version:

A comprehensive MCP server for DataForSEO API

63 lines 2.3 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createServer = createServer; // Try different import styles to be more resilient let McpServer; let StdioServerTransport; try { // Try CommonJS style import first const sdk = require('@modelcontextprotocol/sdk'); McpServer = sdk.McpServer; StdioServerTransport = sdk.StdioServerTransport; } catch (error) { try { // Fall back to ESM style const sdk = require('@modelcontextprotocol/sdk/server/mcp'); McpServer = sdk.McpServer; StdioServerTransport = require('@modelcontextprotocol/sdk/server/stdio').StdioServerTransport; } catch (e) { console.error('Error importing MCP SDK:', e); process.exit(1); } } const client_1 = require("./client"); const tools_1 = require("./tools"); async function createServer() { // Get authentication credentials from environment variables const dataForSeoLogin = process.env.DATAFORSEO_LOGIN; const dataForSeoPassword = process.env.DATAFORSEO_PASSWORD; if (!dataForSeoLogin || !dataForSeoPassword) { console.error("Error: DataForSEO API credentials not provided"); console.error("Please set DATAFORSEO_LOGIN and DATAFORSEO_PASSWORD environment variables"); process.exit(1); } // Create an MCP server const server = new McpServer({ name: "DataForSEO MCP Server", version: "1.0.0", }); // Setup API client const apiClient = new client_1.DataForSeoClient(dataForSeoLogin, dataForSeoPassword); // Register all tools (0, tools_1.registerTools)(server, apiClient); // Start receiving messages on stdin and sending messages on stdout const transport = new StdioServerTransport(); console.error("DataForSEO MCP Server starting..."); await server.connect(transport); console.error("DataForSEO MCP Server connected"); return server; } // This function is called when the script is run directly async function main() { await createServer(); } // Only run main if this file is executed directly (not imported) if (require.main === module) { main().catch((error) => { console.error("Error in DataForSEO MCP Server:", error); process.exit(1); }); } //# sourceMappingURL=index.js.map