Skip to main content
Glama

DataForSEO MCP Server

Official
by dataforseo

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.

Related MCP server: Google Search MCP Server

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,BACKLINKS,BUSINESS_DATA,DOMAIN_ANALYTICS" # Optional: enable full API responses # If not set or set to false, the server will filter and transform API responses to a more concise format # If set to true, the server will return the full, unmodified API responses export DATAFORSEO_FULL_RESPONSE="false"

Instalación como paquete NPM

Puedes instalar el paquete globalmente:

npm install -g dataforseo-mcp-server

O ejecutarlo directamente sin instalación:

npx dataforseo-mcp-server

Recuerde configurar las variables de entorno antes de ejecutar el comando:

# Required environment variables export DATAFORSEO_USERNAME=your_username export DATAFORSEO_PASSWORD=your_password # Run with npx npx dataforseo-mcp-server

Construyendo y funcionando

Construir el proyecto:

npm run build

Ejecutar el servidor:

npm start

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;

  • BACKLINKS : datos sobre enlaces entrantes, dominios de referencia y páginas de referencia para cualquier dominio, subdominio o página web;

  • BUSINESS_DATA : basado en reseñas de empresas e información de empresas compartida públicamente en las siguientes plataformas: Google, Trustpilot, Tripadvisor;

  • DOMAIN_ANALYTICS : ayuda a identificar todas las posibles tecnologías utilizadas para crear sitios web y ofrece datos Whois;

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

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/dataforseo/mcp-server-typescript'

If you have feedback or need assistance with the MCP directory API, please join our Discord server