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
Related MCP server: baidu-ai-search
Instalación
Ejecutando con npx
env WEBSCRAPING_AI_API_KEY=your_api_key npx -y webscraping-ai-mcpInstalació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 startConfiguració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:
Configuración específica del proyecto (recomendada para proyectos de equipo): Cree un archivo
.cursor/mcp.jsonen 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" } } } }Configuración global (para uso personal en todos los proyectos): cree un archivo
~/.cursor/mcp.jsonen 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.AIRequerido 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=2000Herramientas 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áginaproxy: 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, INcustom_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.jsContribuyendo
Bifurcar el repositorio
Crea tu rama de funciones
Ejecutar pruebas:
npm testEnviar una solicitud de extracción
Licencia
Licencia MIT: consulte el archivo de LICENCIA para obtener más detalles
Resources
Looking for Admin?
Admins can modify the Dockerfile, update the server description, and track usage metrics. If you are the server author, to access the admin panel.