WebScraping-AI MCP Server

Official

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

Integrations

  • Enables custom JavaScript execution on target web pages, including headless Chrome/Chromium rendering and the ability to run custom JS scripts with configurable timeout settings.

Servidor MCP de WebScraping.AI

Una implementación de servidor de Protocolo de contexto de modelo (MCP) que se integra con WebScraping.AI para capacidades de extracción de datos web.

Características

  • Respuesta a preguntas sobre el contenido de la página web
  • Extracción de datos estructurados de páginas web
  • Recuperación de contenido HTML con renderizado de JavaScript
  • Extracción de texto simple de páginas web
  • Extracción de contenido basada en selectores CSS
  • Múltiples tipos de proxy (centro de datos, residencial) con selección de país
  • Representación de JavaScript con Chrome/Chromium sin interfaz gráfica
  • Gestión de solicitudes concurrentes con limitación de velocidad
  • Ejecución de JavaScript personalizada en páginas de destino
  • Emulación de dispositivo (computadora de escritorio, móvil, tableta)
  • Monitoreo del uso de la cuenta

Instalación

Ejecutando con npx

env WEBSCRAPING_AI_API_KEY=your_api_key npx -y webscraping-ai-mcp

Instalación manual

# Clone the repository git clone https://github.com/webscraping-ai/webscraping-ai-mcp-server.git cd webscraping-ai-mcp-server # Install dependencies npm install # Run npm start

Configuración en Cursor

Nota: Requiere la versión de Cursor 0.45.6+

El servidor MCP de WebScraping.AI se puede configurar de dos maneras en Cursor:

  1. Configuración específica del proyecto (recomendada para proyectos de equipo): Cree un archivo .cursor/mcp.json en el directorio de su proyecto:
    { "servers": { "webscraping-ai": { "type": "command", "command": "npx -y webscraping-ai-mcp", "env": { "WEBSCRAPING_AI_API_KEY": "your-api-key", "WEBSCRAPING_AI_CONCURRENCY_LIMIT": "5" } } } }
  2. Configuración global (para uso personal en todos los proyectos): cree un archivo ~/.cursor/mcp.json en su directorio de inicio con el mismo formato de configuración que el anterior.

Si está usando Windows y tiene problemas, intente usar cmd /c "set WEBSCRAPING_AI_API_KEY=your-api-key && npx -y webscraping-ai-mcp" como comando.

Esta configuración hará que las herramientas WebScraping.AI estén disponibles para el agente de IA de Cursor automáticamente cuando sea relevante para las tareas de raspado web.

Ejecutándose en Claude Desktop

Agregue esto a su claude_desktop_config.json :

{ "mcpServers": { "mcp-server-webscraping-ai": { "command": "npx", "args": ["-y", "webscraping-ai-mcp"], "env": { "WEBSCRAPING_AI_API_KEY": "YOUR_API_KEY_HERE", "WEBSCRAPING_AI_CONCURRENCY_LIMIT": "5" } } } }

Configuración

Variables de entorno

Requerido

  • WEBSCRAPING_AI_API_KEY : Su clave API de WebScraping.AI
    • Requerido para todas las operaciones
    • Obtén tu clave API de WebScraping.AI

Configuración opcional

  • WEBSCRAPING_AI_CONCURRENCY_LIMIT : Número máximo de solicitudes simultáneas (predeterminado: 5 )
  • WEBSCRAPING_AI_DEFAULT_PROXY_TYPE : Tipo de proxy a utilizar (predeterminado: residential )
  • WEBSCRAPING_AI_DEFAULT_JS_RENDERING : Habilitar o deshabilitar la representación de JavaScript (valor predeterminado: true )
  • WEBSCRAPING_AI_DEFAULT_TIMEOUT : Tiempo máximo de recuperación de la página web en ms (predeterminado: 15000 , máximo: 30000 )
  • WEBSCRAPING_AI_DEFAULT_JS_TIMEOUT : Tiempo máximo de renderizado de JavaScript en ms (valor predeterminado: 2000 )

Ejemplos de configuración

Para uso estándar:

# Required export WEBSCRAPING_AI_API_KEY=your-api-key # Optional - customize behavior (default values) export WEBSCRAPING_AI_CONCURRENCY_LIMIT=5 export WEBSCRAPING_AI_DEFAULT_PROXY_TYPE=residential # datacenter or residential export WEBSCRAPING_AI_DEFAULT_JS_RENDERING=true export WEBSCRAPING_AI_DEFAULT_TIMEOUT=15000 export WEBSCRAPING_AI_DEFAULT_JS_TIMEOUT=2000

Herramientas disponibles

1. Herramienta de preguntas ( webscraping_ai_question )

Haga preguntas sobre el contenido de la página web.

{ "name": "webscraping_ai_question", "arguments": { "url": "https://example.com", "question": "What is the main topic of this page?", "timeout": 30000, "js": true, "js_timeout": 2000, "wait_for": ".content-loaded", "proxy": "datacenter", "country": "us" } }

Ejemplo de respuesta:

{ "content": [ { "type": "text", "text": "The main topic of this page is examples and documentation for HTML and web standards." } ], "isError": false }

2. Herramienta de campos ( webscraping_ai_fields )

Extraer datos estructurados de páginas web según instrucciones.

{ "name": "webscraping_ai_fields", "arguments": { "url": "https://example.com/product", "fields": { "title": "Extract the product title", "price": "Extract the product price", "description": "Extract the product description" }, "js": true, "timeout": 30000 } }

Ejemplo de respuesta:

{ "content": [ { "type": "text", "text": { "title": "Example Product", "price": "$99.99", "description": "This is an example product description." } } ], "isError": false }

3. Herramienta HTML ( webscraping_ai_html )

Obtenga el HTML completo de una página web con renderizado JavaScript.

{ "name": "webscraping_ai_html", "arguments": { "url": "https://example.com", "js": true, "timeout": 30000, "wait_for": "#content-loaded" } }

Ejemplo de respuesta:

{ "content": [ { "type": "text", "text": "<html>...[full HTML content]...</html>" } ], "isError": false }

4. Herramienta de texto ( webscraping_ai_text )

Extraer el contenido de texto visible de una página web.

{ "name": "webscraping_ai_text", "arguments": { "url": "https://example.com", "js": true, "timeout": 30000 } }

Ejemplo de respuesta:

{ "content": [ { "type": "text", "text": "Example Domain\nThis domain is for use in illustrative examples in documents..." } ], "isError": false }

5. Herramienta seleccionada ( webscraping_ai_selected )

Extraer contenido de un elemento específico usando un selector CSS.

{ "name": "webscraping_ai_selected", "arguments": { "url": "https://example.com", "selector": "div.main-content", "js": true, "timeout": 30000 } }

Ejemplo de respuesta:

{ "content": [ { "type": "text", "text": "<div class=\"main-content\">This is the main content of the page.</div>" } ], "isError": false }

6. Herramienta de selección múltiple ( webscraping_ai_selected_multiple )

Extraiga contenido de múltiples elementos usando selectores CSS.

{ "name": "webscraping_ai_selected_multiple", "arguments": { "url": "https://example.com", "selectors": ["div.header", "div.product-list", "div.footer"], "js": true, "timeout": 30000 } }

Ejemplo de respuesta:

{ "content": [ { "type": "text", "text": [ "<div class=\"header\">Header content</div>", "<div class=\"product-list\">Product list content</div>", "<div class=\"footer\">Footer content</div>" ] } ], "isError": false }

7. Herramienta de cuenta ( webscraping_ai_account )

Obtenga información sobre su cuenta de WebScraping.AI.

{ "name": "webscraping_ai_account", "arguments": {} }

Ejemplo de respuesta:

{ "content": [ { "type": "text", "text": { "requests": 5000, "remaining": 4500, "limit": 10000, "resets_at": "2023-12-31T23:59:59Z" } } ], "isError": false }

Opciones comunes para todas las herramientas

Las siguientes opciones se pueden utilizar con todas las herramientas de raspado:

  • timeout : tiempo máximo de recuperación de la página web en ms (15000 por defecto, el máximo es 30000)
  • js : Ejecutar JavaScript en la página usando un navegador sin interfaz gráfica (verdadero de forma predeterminada)
  • js_timeout : Tiempo máximo de renderizado de JavaScript en ms (2000 por defecto)
  • wait_for : selector CSS que se debe esperar antes de devolver el contenido de la página
  • proxy : Tipo de proxy, centro de datos o residencial (residencial por defecto)
  • country : País del proxy a utilizar (EE. UU. por defecto). Países compatibles: EE. UU., GB, DE, IT, FR, CA, ES, RU, JP, KR, IN
  • custom_proxy : Su propia URL de proxy en formato " http://usuario:contraseña@host:puerto "
  • device : Tipo de emulación de dispositivo. Valores admitidos: ordenador, móvil, tableta.
  • error_on_404 : Devuelve un error en el estado HTTP 404 en la página de destino (falso por defecto)
  • error_on_redirect : Devuelve un error al redireccionar a la página de destino (falso por defecto)
  • js_script : Código JavaScript personalizado para ejecutar en la página de destino

Manejo de errores

El servidor proporciona un manejo robusto de errores:

  • Reintentos automáticos para errores transitorios
  • Manejo del límite de velocidad con retroceso
  • Mensajes de error detallados
  • Resiliencia de la red

Ejemplo de respuesta de error:

{ "content": [ { "type": "text", "text": "API Error: 429 Too Many Requests" } ], "isError": true }

Integración con LLM

Este servidor implementa el Protocolo de Contexto de Modelo (MPP) , lo que lo hace compatible con cualquier plataforma LLM compatible con MCP. Puede configurar su LLM para usar estas herramientas en tareas de web scraping.

Ejemplo: Configuración de Claude con MCP

const { Claude } = require('@anthropic-ai/sdk'); const { Client } = require('@modelcontextprotocol/sdk/client/index.js'); const { StdioClientTransport } = require('@modelcontextprotocol/sdk/client/stdio.js'); const claude = new Claude({ apiKey: process.env.ANTHROPIC_API_KEY }); const transport = new StdioClientTransport({ command: 'npx', args: ['-y', 'webscraping-ai-mcp'], env: { WEBSCRAPING_AI_API_KEY: 'your-api-key' } }); const client = new Client({ name: 'claude-client', version: '1.0.0' }); await client.connect(transport); // Now you can use Claude with WebScraping.AI tools const tools = await client.listTools(); const response = await claude.complete({ prompt: 'What is the main topic of example.com?', tools: tools });

Desarrollo

# Clone the repository git clone https://github.com/webscraping-ai/webscraping-ai-mcp-server.git cd webscraping-ai-mcp-server # Install dependencies npm install # Run tests npm test # Add your .env file cp .env.example .env # Start the inspector npx @modelcontextprotocol/inspector node src/index.js

Contribuyendo

  1. Bifurcar el repositorio
  2. Crea tu rama de funciones
  3. Ejecutar pruebas: npm test
  4. Enviar una solicitud de extracción

Licencia

Licencia MIT: consulte el archivo de LICENCIA para obtener más detalles

ID: 741k1wuzkz