apex-data-for-seo
Version:
A comprehensive MCP server for DataForSEO API
63 lines • 2.3 kB
JavaScript
;
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