DataForSEO MCP Server

by dataforseo
Apache 2.0
21

Integrations

  • Provides access to Google SERP data through DataForSEO's SERP API, allowing retrieval of real-time search engine results including titles, descriptions, and URLs.

  • Supports server implementation built on Node.js, requiring v14 or higher for handling DataForSEO API requests and responses.

  • Offers a TypeScript-based implementation for creating and extending tools that interact with DataForSEO APIs.

Servidor MCP de DataForSEO

Implementación de servidor de Protocolo de Contexto de Modelo (MCP) para DataForSEO, que permite a Claude interactuar con API de DataForSEO seleccionadas y obtener datos de SEO a través de una interfaz estandarizada.

Características

  • API SERP: datos de páginas de resultados de motores de búsqueda (SERP) en tiempo real para Google, Bing y Yahoo;
  • API KEYWORDS_DATA: investigación de palabras clave y datos de flujo de clics, incluido el volumen de búsqueda, el costo por clic y otras métricas;
  • API ONPAGE: permite rastrear sitios web y páginas web según parámetros personalizables para obtener métricas de rendimiento SEO en la página;
  • API DATAFORSEO_LABS: datos sobre palabras clave, SERP y dominios basados en las bases de datos internas y algoritmos propietarios de DataForSEO.

Prerrequisitos

  • Node.js (v14 o superior)
  • Credenciales de la API de DataForSEO (inicio de sesión y contraseña de la API)

Instalación

  1. Clonar el repositorio:
git clone https://github.com/dataforseo/mcp-server-typescript cd mcp-server-typescript
  1. Instalar dependencias:
npm install
  1. Configurar variables de entorno:
# Required export DATAFORSEO_USERNAME=your_username export DATAFORSEO_PASSWORD=your_password # Optional: specify which modules to enable (comma-separated) # If not set, all modules will be enabled export ENABLED_MODULES="SERP,KEYWORDS_DATA,ONPAGE,DATAFORSEO_LABS"

Construyendo y funcionando

Construir el proyecto:

npm run build

Ejecutar el servidor:

node build/index.js

Módulos disponibles

Los siguientes módulos están disponibles para ser habilitados/deshabilitados:

  • SERP : datos SERP en tiempo real para Google, Bing y Yahoo;
  • KEYWORDS_DATA : investigación de palabras clave y datos de flujo de clics;
  • ONPAGE : rastrear sitios web y páginas web para obtener métricas de rendimiento SEO en la página;
  • DATAFORSEO_LABS : datos sobre palabras clave, SERP y dominios basados en las bases de datos y algoritmos de DataForSEO.

Agregar nuevas herramientas/módulos

Estructura del módulo

Cada módulo corresponde a una API específica de DataForSEO:

Opciones de implementación

Puedes:

  1. Agregar una nueva herramienta a un módulo existente
  2. Crear un módulo completamente nuevo

Agregar una nueva herramienta

A continuación se explica cómo agregar una nueva herramienta a cualquier módulo nuevo o preexistente:

// src/modules/your-module/tools/your-tool.tool.ts import { BaseTool } from '../../base.tool'; import { DataForSEOClient } from '../../../client/dataforseo.client'; import { z } from 'zod'; export class YourTool extends BaseTool { constructor(private client: DataForSEOClient) { super(client); // DataForSEO API returns extensive data with many fields, which can be overwhelming // for AI agents to process. We select only the most relevant fields to ensure // efficient and focused responses. this.fields = [ 'title', // Example: Include the title field 'description', // Example: Include the description field 'url', // Example: Include the URL field // Add more fields as needed ]; } getName() { return 'your-tool-name'; } getDescription() { return 'Description of what your tool does'; } getParams(): z.ZodRawShape { return { // Required parameters keyword: z.string().describe('The keyword to search for'), location: z.string().describe('Location in format "City,Region,Country" or just "Country"'), // Optional parameters fields: z.array(z.string()).optional().describe('Specific fields to return in the response. If not specified, all fields will be returned'), language: z.string().optional().describe('Language code (e.g., "en")'), }; } async handle(params: any) { try { // Make the API call const response = await this.client.makeRequest({ endpoint: '/v3/dataforseo_endpoint_path', method: 'POST', body: [{ // Your request parameters keyword: params.keyword, location: params.location, language: params.language, }], }); // Validate the response for errors this.validateResponse(response); //if the main data array is specified in tasks[0].result[:] field const result = this.handleDirectResult(response); //if main data array specified in tasks[0].result[0].items field const result = this.handleItemsResult(response); // Format and return the response return this.formatResponse(result); } catch (error) { // Handle and format any errors return this.formatErrorResponse(error); } } }

Creando un nuevo módulo

  1. Cree un nuevo directorio en src/modules/ para su módulo:
mkdir -p src/modules/your-module-name
  1. Crear archivos de módulo:
// src/modules/your-module-name/your-module-name.module.ts import { BaseModule } from '../base.module'; import { DataForSEOClient } from '../../client/dataforseo.client'; import { YourTool } from './tools/your-tool.tool'; export class YourModuleNameModule extends BaseModule { constructor(private client: DataForSEOClient) { super(); } getTools() { return { 'your-tool-name': new YourTool(this.client), }; } }
  1. Registre su módulo en src/config/modules.config.ts :
export const AVAILABLE_MODULES = [ 'SERP', 'KEYWORDS_DATA', 'ONPAGE', 'DATAFORSEO_LABS', 'YOUR_MODULE_NAME' // Add your module name here ] as const;
  1. Inicialice su módulo en src/index.ts :
if (isModuleEnabled('YOUR_MODULE_NAME', enabledModules)) { modules.push(new YourModuleNameModule(dataForSEOClient)); }

¿Qué puntos finales o API desea que admitamos a continuación?

Buscamos constantemente ampliar las capacidades de este servidor MCP. Si desea que algún punto final o API de DataForSEO sea compatible, por favor:

  1. Consulte la documentación de la API de DataForSEO para ver qué hay disponible
  2. Abra un problema en nuestro repositorio de GitHub con:
    • La API o el punto final que desea ver compatible;
    • Una breve descripción de su caso de uso;
    • Describe cualquier característica específica que te gustaría ver implementada.

¡Sus comentarios nos ayudan a priorizar qué API admitiremos a continuación!

Recursos

-
security - not tested
A
license - permissive license
-
quality - not tested

Un servidor de protocolo de contexto de modelo que permite a Claude interactuar con las API de DataForSEO, lo que permite el acceso a datos de SEO, incluidos SERP, investigación de palabras clave, métricas en la página y análisis de dominio.

  1. Características
    1. Prerrequisitos
      1. Instalación
        1. Construyendo y funcionando
          1. Módulos disponibles
            1. Agregar nuevas herramientas/módulos
              1. Estructura del módulo
              2. Opciones de implementación
              3. Agregar una nueva herramienta
              4. Creando un nuevo módulo
            2. ¿Qué puntos finales o API desea que admitamos a continuación?
              1. Recursos

                Related MCP Servers

                • -
                  security
                  A
                  license
                  -
                  quality
                  A Model Context Protocol server that enables web search, scraping, crawling, and content extraction through multiple engines including SearXNG, Firecrawl, and Tavily.
                  Last updated -
                  35
                  11
                  TypeScript
                  MIT License
                • -
                  security
                  F
                  license
                  -
                  quality
                  A Model Context Protocol server that enables Claude to perform Google Custom Search operations by connecting to Google's search API.
                  Last updated -
                  Python
                  • Linux
                • -
                  security
                  F
                  license
                  -
                  quality
                  A stdio-based server that enables interaction with the DataForSEO API through the Model Context Protocol, allowing users to fetch SEO data including search results, keywords data, backlinks, on-page analysis, and more.
                  Last updated -
                  145
                  JavaScript
                • -
                  security
                  A
                  license
                  -
                  quality
                  A Model Context Protocol server that enables Claude to perform web research by integrating Google search, extracting webpage content, and capturing screenshots.
                  Last updated -
                  854
                  4
                  MIT License
                  • Apple

                View all related MCP servers

                ID: mrhdc9pzer