La Guía Completa de Web Scraping en Zencoder con Scrapeless MCP Server
Expert Network Defense Engineer
Conclusiones Clave:
- Un servidor MCP, cada agente Zencoder. Zencoder ejecuta el Agente de Codificación, Agente de Pruebas Unitarias, Agente de Preguntas, Agente de Pruebas E2E, Agente de Información del Repositorio y Agente de Desarrollo Web dentro de la extensión de VS Code y el plugin de JetBrains. Añadir el Servidor MCP de Scrapeless a cualquiera de los clientes proporciona a cada uno de esos agentes un navegador en la nube reforzado, proxies residenciales en más de 195 países, un scraper de SERP y auxiliares de Markdown/Captura de Pantalla en un solo bloque de configuración.
- El agente deja de ser bloqueado. Zencoder incluye potentes funcionalidades de Grokking de Repositorios y generación de código, pero su obtención web predeterminada choca con los mismos contenedores de JavaScript y puertas anti-bot que cualquier solicitud HTTP anónima sufriría. Redirigir a través del Navegador de Scraping de Scrapeless sustituye la renderización de JavaScript del lado de la nube, la salida de proxy residencial y la huellaje anti-detección en cada sesión.
- 20 herramientas MCP, un namespace. Primitivas del navegador (
browser_create,browser_goto,browser_get_html,browser_get_text,browser_snapshot,browser_click,browser_type,browser_press_key,browser_scroll,browser_screenshot,browser_close), ayudantes de página de una sola vez (scrape_html,scrape_markdown,scrape_screenshot) y herramientas de datos de Google (google_search,google_trends). El planificador del agente las compone por turno. - Dos esquemas de configuración, un servidor. VS Code lee
"zencoder.mcpServers"desettings.jsony actualmente solo admite stdio. JetBrains 2.13+ utiliza un esquema de objeto simple y admite stdio, HTTP transmisible y transportes OAuth2. La misma entrada de servidorscrapelessse integra en ambos — solo cambia la clave envolvente. - Habilidades y MCP se componen. El sistema de Habilidades de Zencoder (
~/.zencoder/skills/<nombre>/SKILL.md, encabezado YAML + markdown) enseña a un agente cómo usar una herramienta; MCP define qué herramientas existen. Son aditivas — instala ambas y el agente obtiene la superficie de herramientas más el manual para utilizarlas. - Independiente del modelo por diseño. Zencoder redirige entre Haiku 4.5, Sonnet 4.6, Opus 4.6, Opus 4.7, Gemini 3 Pro, Gemini 3 Flash, GPT-5.4 y GPT-5.2 a través del mismo ciclo de agentes. La integración de Scrapeless MCP funciona de la misma manera a través de todos ellos — el protocolo es el contrato.
- Gratis para empezar. Nuevas cuentas Scrapeless incluyen tiempo de ejecución gratuito del Navegador de Scraping — regístrate en app.scrapeless.com. Precios completos en scrapeless.com/en/pricing.
Introducción: el agente solo es tan útil como su acceso a la web en vivo
Zencoder es una plataforma de orquestación de codificación AI construida en torno a un flujo de trabajo de múltiples agentes: Agente de Codificación para implementación, Agente de Información del Repositorio para contexto de código, Agente de Pruebas Unitarias para cobertura, Agente de Pruebas E2E para pruebas en el navegador, Agente de Preguntas para explicaciones y Agente de Desarrollo Web para trabajo de UI. Se presenta en dos superficies: una extensión de Visual Studio Code y un plugin de JetBrains. Para el código local, la imagen está completa: Zencoder lee el repositorio, planifica el cambio y escribe la diferencia.
En el momento en que una tarea necesita datos web públicos y actuales, la imagen se vuelve más delgada. La obtención web predeterminada de Zencoder devuelve el mismo shell de JavaScript que cualquiera solicitud HTTP anónima, y en los sitios comerciales, el DOM renderizado vive detrás de desafíos anti-bot, SERPs protegidos por proxies residenciales y aplicaciones de una sola página solo en JavaScript que ninguna obtención sin cabeza puede alcanzar sin ayuda. Un aviso como "abre esta página de precios del competidor y extrae la cuadrícula del plan" deja de ser determinista una vez que el sitio objetivo está detrás de Cloudflare Turnstile.
Este post integra el Servidor MCP de Scrapeless en Zencoder a través de un solo bloque de configuración. Después de la conexión, cada agente Zencoder tiene 20 herramientas MCP mapeadas a un navegador en la nube reforzado, un scraper de Google Search, un scraper de Google Trends y ayudantes de HTML/Markdown/Captura de Pantalla de una sola vez. El agente elige qué herramienta usar por turno; el navegador en la nube maneja la renderización de JavaScript, la salida de proxy residencial y la huellaje anti-detección; el IDE sigue encargándose de la generación de código, el árbol de archivos y la terminal. Para la misma superficie de Scrapeless en Google Antigravity, consulta el tutorial de integración de Antigravity; para la referencia canónica del servidor MCP, consulta el tutorial del servidor MCP para Google Maps.
Lo Que Puedes Hacer Con Esto
- Investigación de API y bibliotecas en vivo dentro del IDE. Pide al Agente de Codificación que obtenga la página de documentos actual para una biblioteca a través de
scrape_markdowny razona en función del texto renderizado en lugar de contra una memoria de corte de entrenamiento de la API. - Instantáneas de precios de competidores en el espacio de trabajo. Inserta URL de competidores en el chat del agente; recibe filas de precios estructurados que el agente puede pegar en un archivo de comparación junto al código que las consume.
- Ingesta de conjuntos de datos públicos en el proyecto que se está construyendo. Hacer que el agente recorra una lista de directorios, extraiga registros tipados y los escriba directamente en un archivo JSON, una semilla SQL o un tipo de TypeScript junto a la capa del modelo.
- SERP consciente de la región y señales de tendencias. Utiliza
google_searchygoogle_trendsdesde dentro del bucle del agente para proporcionar pruebas específicas del locale a las características, textos A/B o plantillas de contenido. - Corporas de Markdown para RAG y documentos del proyecto.
scrape_markdowndevuelve páginas de editoriales como markdown limpio que el agente puede dividir, incrustar o almacenar como contexto local del proyecto. - Referencias visuales para trabajo de diseño y UX.
scrape_screenshotybrowser_screenshotcapturan páginas renderizadas para diferenciar visualmente, referencia de diseño o insumos de diseño que el Agente de Desarrollo Web puede adjuntar a la conversación. - Ejecuciones multi-agente desde un solo aviso. El Agente de Información del Repositorio recopila contexto de la base de código, el Agente de Codificación ejecuta la cadena
browser_*, y el Agente de Pruebas Unitarias verifica la forma del fixture resultante, todo dentro de un mismo turno de Zencoder.
En Scrapeless, solo accedemos a datos disponibles públicamente mientras cumplimos estrictamente con las leyes, regulaciones y políticas de privacidad de sitios web aplicables. El contenido de esta publicación es solo para fines de demostración.
Por qué Scrapeless MCP Server
Scrapeless MCP Server es la superficie de nivel de protocolo frente al Navegador de Scraping de Scrapeless: un navegador en la nube personalizable y anti-detección diseñado para agentes de IA, además de las herramientas de datos de Scrapeless (Google Search, Google Trends, ayudantes de scraping a nivel de página). Para Zencoder específicamente, ofrece:
- Renderizado de JavaScript del lado de la nube. El navegador en la nube es Chromium completo con la página hidratada antes de la extracción, por lo que las SPAs, los feeds de desplazamiento infinito y los paneles cargados de manera perezosa son objetivos de primera clase para
browser_goto+browser_get_html. - Proxies residenciales en más de 195 países. Las consultas geográficas devuelven los listados que un usuario local vería. La región del proxy se establece en la cuenta de Scrapeless; la selección de región por consulta se expone a través de la CLI de
scrapeless-scraping-browserpara flujos que lo necesiten. - Impresión digital anti-detección en cada sesión. UA, zona horaria, idioma, resolución de pantalla, WebGL y canvas aleatorizados por sesión, de modo que las sesiones de desplazamiento largo se renderizan de manera idéntica al tráfico orgánico.
- Persistencia de sesión. El ID de tarea
browser_createse reutiliza en las siguientes llamadasbrowser_*en el mismo turno del agente; las cookies, la posición de desplazamiento y el historial de navegación viven dentro de una sola sesión de navegador en la nube. - Un espacio de nombres MCP. Cada operación que el agente necesita es una única llamada a la herramienta — descubrible desde el panel de Herramientas del Agente de Zencoder, validada por el esquema y asociada a los avisos por descripción.
- Tiempo de ejecución gratuito en nuevas cuentas. Obtén una clave de API en el plan gratuito en app.scrapeless.com. La superficie completa de herramientas MCP está documentada en github.com/scrapeless-ai/scrapeless-mcp-server y la documentación de la plataforma se encuentra en docs.scrapeless.com.
Prerrequisitos
- Zencoder instalado. Ya sea la extensión de VS Code o el plugin de JetBrains (soporte completo de stdio + HTTP transmisible + OAuth2 MCP desde JetBrains 2.13+).
- Una cuenta de Scrapeless y una clave de API — regístrate en app.scrapeless.com y copia la clave desde Ajustes → Gestión de claves API.
- Node.js 18 o superior en la estación de trabajo. Zencoder genera
npx scrapeless-mcp-servercomo un proceso hijo para el modo stdio. - Familiaridad básica con la edición de JSON — la configuración de MCP de Zencoder vive en
settings.json.
Instalación
La configuración consta de cinco sub-pasos. El esquema JSON difiere entre VS Code y JetBrains; elige la sección que coincide con el IDE que estás configurando.
1. Obtén tu clave de API de Scrapeless
Regístrate en app.scrapeless.com, abre el panel de control y desde Ajustes → Gestión de claves API crea una clave. Copia el valor, que se incluirá en la configuración de MCP en el paso 3.
2. Abre la configuración de MCP de Zencoder
Opción A — Interfaz de usuario de Herramientas del Agente (sugerida para ambos IDEs):
- Haz clic en el menú … más opciones en la parte superior derecha del panel de chat de Zencoder.
- Selecciona Herramientas del Agente.
- Abre la pestaña Personalizada y haz clic en Agregar MCP Personalizado.
- Completa el formulario de configuración (nombre, comando, args, env). La interfaz lo escribirá en
settings.jsonpor ti.
Opción B — Editar settings.json directamente:
- VS Code: Abre el menú … en el chat de Zencoder → Ajustes → desplázate a la sección Servidores MCP → haz clic en Editar en settings.json.
- JetBrains: Abre Archivo → Ajustes (o IDE de JetBrains → Ajustes en macOS) → expande Herramientas → Zencoder → Servidores MCP.
3. Agrega el servidor MCP de Scrapeless
El esquema JSON es diferente entre los dos IDEs — VS Code envuelve las entradas dentro de una clave de nivel superior "zencoder.mcpServers"; JetBrains utiliza un objeto simple.
VS Code — modo stdio (actualmente el único transporte soportado en VS Code):
json
"zencoder.mcpServers": {
"scrapeless": {
"command": "npx",
"args": ["-y", "scrapeless-mcp-server"],
"env": {
"SCRAPELESS_KEY": "TU_CLAVE_SCRAPELESS"
}
}
}
JetBrains — modo stdio:
json
{
"scrapeless": {
"command": "npx",
"args": ["-y", "scrapeless-mcp-server"],
"env": {
"SCRAPELESS_KEY": "TU_CLAVE_SCRAPELESS"
}
}
}
Guarda el archivo. En la primera ejecución, npx -y scrapeless-mcp-server descarga el paquete; reinicios posteriores reutilizan la versión en caché.
4. O usa el modo de transmisión HTTP (solo JetBrains 2.13+)
JetBrains 2.13+ soporta stdio, HTTP transmitible y transportes MCP OAuth2; VS Code actualmente solo usa stdio (HTTP transmitible y OAuth2 están documentados como "próximamente" en la documentación de Zencoder). Para un agente remoto que se ejecuta en un contenedor de desarrollo alojado o en un sandbox CI donde npx no puede iniciar de manera confiable un proceso hijo de larga duración, los usuarios de JetBrains pueden apuntar Zencoder al punto final MCP alojado en Scrapeless:
json
{
"scrapeless": {
"type": "streamable-http",
"url": "https://api.scrapeless.com/mcp",
"headers": {
"x-api-token": "TU_CLAVE_SCRAPELESS"
}
}
}
La misma TU_CLAVE_SCRAPELESS funciona en ambos modos. Los usuarios de VS Code permanecen en el bloque stdio en el paso 3 hasta que Zencoder implemente HTTP transmitible para VS Code.
5. Verifica la conexión
Aplica los cambios — JetBrains requiere reabrir el proyecto después de editar la configuración; VS Code generalmente detecta el cambio al recargar. Asegúrate de que el Agente de Codificación esté habilitado. En una nueva sesión de chat de Zencoder, escribe:
"Abre https://example.com con la herramienta del navegador Scrapeless y dime el título de la página."
El agente debería llamar a browser_create, luego browser_goto, luego browser_get_text (o browser_get_html), y responder con "Ejemplo de Dominio". Si eso regresa limpio, el servidor MCP está conectado, la clave API es válida y el navegador en la nube es accesible.
Si no lo hace, los fallos y soluciones comunes en la primera ejecución son:
| Síntoma | Causa probable | Solución |
|---|---|---|
scrapeless no listado en Herramientas del Agente |
Configuración no cargada | Reabre el proyecto (JetBrains) o recarga la ventana (VS Code); verifica de nuevo la ruta JSON y que el archivo se analice |
Fallo de autenticación / 401 del servidor |
Clave API incorrecta o expirada | Vuelve a copiar desde el panel de control, pégalo en env.SCRAPELESS_KEY, reinicia Zencoder |
npx se cuelga en la primera invocación |
Red npm lenta o tiempo de espera del registro | Ejecuta npx -y scrapeless-mcp-server una vez en una terminal para pre-caché del paquete, luego reinicia Zencoder |
Errores initialize response / connection closed durante el inicio de MCP |
No se escribió JSON a stdout durante el apretón de manos JSON-RPC | Utiliza una versión actual de scrapeless-mcp-server (logs en stderr, JSON-RPC en stdout) y confirma que ningún wrapper de shell esté inyectando banners de inicio |
Llamada de herramienta devuelve HTML Acceso Denegado |
Pool de proxy devolvió una IP marcada en la asignación | Pide al agente que llame a browser_close y luego browser_create nuevamente; asignaciones subsecuentes tienen éxito |
Cómo usar esto: solicita a tu agente de Zencoder
Después de la instalación, el agente posee el bucle de descubrimiento → extracción. El servidor MCP le entrega a Zencoder una lista de herramientas tipada; el agente lee las descripciones de herramientas y compone las llamadas turno por turno en base al aviso. No hay un tools.json que autorizar y ninguna llamada MCP manual que emitir desde el lado del IDE.
Zencoder reserva los accesos directos @ solo para las Integraciones Nativas incorporadas — @Jira funciona porque Jira es una integración nativa; los servidores MCP no se dirigen con @<nombre_del_servidor>. El planificador del agente compara el aviso con las descripciones de herramientas, así que formula la solicitud en términos de la acción ("renderiza la página en…", "busca en Google…", "raspa esa URL como markdown") y se llama a la herramienta Scrapeless correcta.
Solicitudes que puedes pegar
| Escribes | Lo que hace el agente |
|---|---|
"Busca en Google benchmarks de bases de datos vectoriales 2026 y devuelve los 10 mejores resultados como JSON." |
google_search → lista de resultados tipados. |
"Renderiza la página de la documentación de React en https://react.dev/learn/synchronizing-with-effects y dame el markdown." |
scrape_markdown → página del editor como markdown. |
"Abre https://pricing.example.com, desplaza la tabla de planes y devuelve nombre, precio y lista de características como JSON." |
browser_create → browser_goto → browser_scroll → browser_get_html → extracción tipada. |
"Obtén los temas de búsqueda de tendencia para herramientas de desarrollador en EE. UU. desde Google Trends." |
google_trends. |
"Toma una captura de pantalla de toda la página de https://example.com/landing y guárdala junto a landing.tsx." |
scrape_screenshot → escritura de archivo en el espacio de trabajo. |
"Abre https://www.google.com/search?q=mortgage+rates y devuelve las tarjetas del SERP." |
La región predeterminada de la cuenta controla la salida del proxy; fija una región diferente con múltiples claves API (ver FAQ). |
| "Para cada resultado en la búsqueda anterior de Google, renderiza la página en markdown y resumela en dos oraciones." | Cadena google_search → scrape_markdown × N → resumen LLM. |
"Toma una instantánea de la página principal de https://example.com y reporta el árbol de accesibilidad." |
browser_snapshot. |
Ejemplo trabajado: extracción de página de precios dentro de Zencoder
Escribes:
"Usa la herramienta de navegador Scrapeless para abrir
https://example-saas.com/pricing, desplaza la cuadrícula de planes hasta el fondo y devuelve el nombre, precio y características por plan como JSON. Guarda el resultado enpricing.jsonen el espacio de trabajo abierto."
El plan del agente (en inglés simple):
- Llamar a
browser_createpara crear una sesión de navegador en la nube. - Llamar a
browser_gotocon la URL de precios. - Llamar a
browser_wait_forcontra el hito de la tarjeta del plan para que la extracción se realice contra el DOM hidratado en lugar de la shell SPA. - Llamar a
browser_scrollpara mostrar cualquier nivel debajo del pliegue, luegobrowser_get_html. - Analizar las tarjetas de los planes en un arreglo JSON; tratar cualquier campo ausente en una tarjeta como
nullen lugar de fallar en la extracción. - Llamar a
browser_closecon elsessionIddevuelto porbrowser_create. - Escribir el arreglo en
pricing.jsonusando la herramienta de archivos incorporada de Zencoder.
Lo que obtienes de vuelta (forma ilustrativa):
json
[
{
"name": "Starter",
"price": "$0 / mes",
"features": ["1 asiento", "1,000 eventos/mes", "Soporte comunitario"]
},
{
"name": "Pro",
"price": "$29 / mes",
"features": ["10 asientos", "100K eventos/mes", "Soporte por correo electrónico", "Dominios personalizados"]
},
{
"name": "Business",
"price": "Contactar ventas",
"features": ["Asientos ilimitados", "Volumen de eventos personalizado", "SLA", "SSO/SAML"]
}
]
// El esquema refleja lo que emite el agente cuando se le solicita extraer una cuadrícula de precios.
// Los valores de campo son muestras ilustrativas.
Zencoder coloca pricing.json en el árbol del espacio de trabajo y muestra cada llamada a la herramienta MCP en el rastreo de la conversación, de modo que el flujo por pasos sea auditable.
Modelando indicaciones: controla lo que se devuelve
| Fraseo | Efecto |
|---|---|
| "…devuelve JSON" / "…como markdown" | Formato de salida. |
| "…campos: nombre, precio solo" | Restringe la extracción. |
"…y guárdalo en <ruta> en el espacio de trabajo" |
Activa la herramienta de archivos incorporada de Zencoder después de la extracción. |
| "…haz clic en cada tarjeta antes de extraer" | Activa un browser_click por fila + re-extracción. |
| "…usa la captura de pantalla de la página si la extracción HTML falla" | Recurre a scrape_screenshot y a la extracción multimodal. |
| "…intenta de nuevo una vez si la primera respuesta está vacía" | Activa browser_close + browser_create para intentar de nuevo en una nueva sesión. |
Obtén tu clave API en el plan gratuito: app.scrapeless.com
La superficie de herramientas MCP de Scrapeless
La lista completa de herramientas que Zencoder descubre cuando el servidor scrapeless se conecta:
| Herramienta | Propósito |
|---|---|
browser_create |
Crea una sesión de navegador en la nube, devuelve un sessionId. |
browser_goto |
Navega a una URL dentro de la sesión activa. |
browser_wait_for |
Bloquea hasta que se renderice un selector. |
browser_wait |
Duerme durante una duración (ms). |
browser_get_html |
Devuelve el DOM renderizado como un payload de texto. |
browser_get_text |
Devuelve el texto visible de la página. |
browser_snapshot |
Devuelve el árbol de accesibilidad de la página actual. |
browser_click |
Hace clic en un selector. |
browser_type |
Escribe en una entrada. |
browser_press_key |
Genera eventos de teclado (Tab, Enter, End, PageDown, …). |
browser_scroll |
Desplaza el documento activo. |
browser_scroll_to |
Desplaza a coordenadas absolutas (x, y). |
browser_screenshot |
Captura una captura de pantalla de la página activa. |
browser_go_back / browser_go_forward |
Historial de navegación. |
browser_close |
Libera la sesión de navegador en la nube (requiere sessionId — el argumento es estrictamente camelCase). |
scrape_html |
Fetch de un URL de un solo uso, devuelve HTML renderizado (no se requiere sesión). |
scrape_markdown |
Fetch de un URL de un solo uso, devuelve markdown limpio. |
scrape_screenshot |
Captura de pantalla de un URL de un solo uso. |
google_search |
Scraper de SERP, devuelve filas de resultados ingresados. |
google_trends |
Payload de tendencias para un tema en una región. |
Las herramientas browser_* comparten el estado a través del sessionId devuelto por browser_create. Las herramientas scrape_* y de Google son sin estado y rutas a través de la API de Scrapeless directamente sin crear una sesión. Los argumentos de la herramienta usan camelCase en toda la superficie (sessionId, proxyCountry).
Cinco flujos de trabajo que financian la integración
Cada bloque a continuación es un flujo de trabajo impulsado por indicaciones dentro de Zencoder. El Agente de Información del Repositorio reúne el contexto del proyecto, el Agente de Codificación ejecuta la cadena MCP, y el Agente de Pruebas Unitarias verifica la forma del resultado — todo dentro de un turno de chat.
1. Señales SERP en vivo y de tendencias para trabajo de características
Una copia de la bandera de función a menudo depende de lo que los usuarios están buscando actualmente. Pida al agente que llame a google_trends para el tema en la región objetivo, luego google_search para los términos principales, y luego escriba el resultado en un archivo de ajuste que la aplicación en ejecución consuma. Todo el bucle se ejecuta dentro de un turno de Zencoder y se actualiza cada vez que se vuelve a emitir el aviso.
2. Rastreador de precios de competidores en un archivo de comparación
Coloque una lista de URL de precios de competidores en el chat y pida al agente que extraiga el nombre del plan, el precio y las características clave por página, elimine duplicados por plan y escriba la tabla fusionada en competitors.md en el espacio de trabajo. Las ejecuciones posteriores difieren del snapshot anterior y solo actualizan las filas que cambiaron.
3. Listas de leads de directorios públicos en el proyecto
Para prototipos de generación de leads, el Agente de Codificación recorre un directorio público (una lista de proveedores de software, negocios locales o profesionales licenciados), llama a browser_goto por cada página de detalles, extrae filas de contacto y escribe los registros como un seed.sql o leads.json junto a la capa de modelo. La salida de proxy residencial y el renderizado de JS ocurre en la capa del navegador en la nube.
4. Corpu de RAG desde páginas de editores
Para un pipeline de incrustación que se está construyendo dentro de Zencoder, el agente recorre una lista de URL de semillas, llama a scrape_markdown por página, divide el markdown en fragmentos y escribe cada par de fragmento + URL en corpus.jsonl. Dado que el markdown ya está limpio, los límites de fragmentos se encuentran en encabezados y párrafos en lugar de en medio de etiquetas.
5. Activos de regresión visual para el Agente de Desarrollo Web
Para una refactorización de UI, pida al Agente de Desarrollo Web que tome una captura de pantalla completa scrape_screenshot de staging y producción para cada página en routes.ts, luego compare los pares. Las capturas de pantalla regresan como archivos en el espacio de trabajo; la diferencia se guarda en la conversación.
Las habilidades son independientes de MCP — y se componen
Zencoder envía un sistema de habilidades junto con MCP. Una habilidad vive en ~/.zencoder/skills/<nombre>/SKILL.md con metadatos YAML (nombre, descripción) y un cuerpo en markdown que enseña al agente cuándo y cómo usar una herramienta. Las habilidades pueden incluir scripts y recursos junto con el archivo SKILL.md.
MCP define qué herramientas existen; las habilidades definen cómo usarlas bien. Los dos son aditivos: instalar una habilidad que enseñe al agente a componer browser_create → browser_goto → browser_wait_for → browser_get_html en un patrón limpio de descubrimiento → extracción aumenta la tasa de éxito de los avisos de lenguaje natural contra la misma superficie de herramientas de MCP. El blog no asume que alguna habilidad Scrapeless preconstruida se envíe en el ecosistema de Zencoder; los usuarios que desean una pueden crear una en ~/.zencoder/skills/scrapeless/SKILL.md contra la lista de herramientas anterior.
Lo que hay que saber antes de ir a producción
- La disciplina de stdout es importante. El transporte stdio de MCP utiliza stdout para JSON-RPC. Un servidor que escriba texto no JSON en stdout rompe el apretón de manos. La construcción actual de
scrapeless-mcp-serverescribe registros en stderr; si se está utilizando un fork personalizado, audite el destino del registro. - El control de región por llamada no está en la superficie de MCP. El navegador en la nube se enruta a través de la región configurada de la cuenta de Scrapeless. Los flujos de trabajo que necesitan fijación de región por consulta (resultados de EE.UU. vs DE vs JP) llaman al
scrapeless-scraping-browserCLI con--proxy-countryo mantienen varias claves API para diferentes regiones predeterminadas. - VS Code es solo stdio hoy. Los transportes de Streamable-HTTP y OAuth2 se registran como "próximamente" para VS Code en la documentación de Zencoder. JetBrains 2.13+ tiene los tres. Un patrón de configuración cruzada de IDE que necesita HTTP debe permanecer en JetBrains o esperar la actualización de VS Code.
- JetBrains requiere que se reabra el proyecto después de editar
settings.json; VS Code generalmente recoge el cambio al recargar. - Concurrencia. Mantenga ≤ 3 sesiones concurrentes por host para ejecuciones estables. Para trabajos por lotes que necesiten mayor dispersión, impulse el CLI desde un grupo de trabajadores en lugar de emitir llamadas MCP en paralelo desde un único agente.
- Forma de respuesta de MCP. Las respuestas de herramientas regresan como
content[0].text(texto plano). Las herramientas de datos sin estado que devuelven texto (google_search,google_trends,scrape_html,scrape_markdown) prefijan su carga útil conResponse:\n\nantes del cuerpo; el planificador de Zencoder maneja el prefijo automáticamente, pero los scripts personalizados que analizan la respuesta en bruto necesitan eliminarlo.scrape_screenshotdevuelve la imagen binaria directamente. Las herramientasbrowser_*devuelven sus cargas útiles de texto sin el prefijo. - Scrapeless se instala directamente desde el paquete, no a través de la Biblioteca MCP de Zencoder. A la fecha de escritura, Scrapeless no está listado en el catálogo de la Biblioteca MCP en IDE; pegue el bloque JSON del paso 3 en lugar de buscar en la Biblioteca. La ruta de la Biblioteca MCP también está disponible para los MCP preconstruidos que Zencoder envía con configuración de un clic.
Conclusión: amplía el alcance de tus agentes de Zencoder a través de la web pública.
Conectando el Servidor MCP sin Desperdicios de Scrapeless a Zencoder se colapsa en un solo bloque JSON — "zencoder.mcpServers" en settings.json en VS Code, un objeto básico en JetBrains — y una recarga. Después de eso, cada agente de Zencoder tiene un navegador en la nube endurecido, salida a través de un proxy residencial, un scraper SERP de Google, un scraper de Tendencias y ayudantes de HTML/Markdown/Screenshot de un solo uso — accesibles a través de prompts en lenguaje natural. El IDE sigue gestionando la generación de código, el árbol de archivos y la terminal; el navegador en la nube mantiene al agente en páginas reales y renderizadas.
Para la misma superficie de Scrapeless en Google Antigravity, consulta la guía de integración de Antigravity. Para la superficie de herramienta de servidor MCP canónica y un ejemplo práctico de Google Maps, consulta la guía del servidor MCP. Para superficies de agente que prefieren el camino CDP en bruto sobre MCP, consulta el post de integración de Hermes. La categoría de nueva cuenta en Scrapeless incluye un tiempo de ejecución gratuito del Navegador de Scraping; las rutas de actualización después de que se consuma el tiempo de ejecución gratuito están en scrapeless.com/en/pricing. El patrón se mantiene consistente en cada superficie de agente: fija el transporte correcto para el IDE host, toma una instantánea o renderiza antes de extraer, persiste la sesión a través de vueltas de múltiples pasos y trata los campos ausentes como anulables.
¿Listo para construir tu canal de datos potenciado por IA?
Únete a nuestra comunidad para reclamar un plan gratuito y conectarte con desarrolladores que construyen canales de datos impulsados por Zencoder en Scrapeless: Discord · Telegram.
Regístrate en app.scrapeless.com para obtener tiempo de ejecución gratuito del Navegador de Scraping y adapta los patrones anteriores a los espacios de trabajo, regiones y páginas que tus agentes de Zencoder necesitan.
Preguntas Frecuentes
Q1: ¿Qué superficies de Zencoder son compatibles con el servidor MCP de Scrapeless?
Tanto la extensión de VS Code como el plugin de JetBrains. El esquema JSON difiere (VS Code envuelve las entradas en "zencoder.mcpServers"; JetBrains utiliza un objeto básico), y JetBrains 2.13+ admite transportes stdio + HTTP transmitible + OAuth2, mientras que VS Code es actualmente solo stdio.
Q2: ¿Es legal hacer scraping con Zencoder + Scrapeless?
Hacer scraping de datos públicamente visibles está permitido en general en la mayoría de las jurisdicciones, pero las reglas varían según el país y los términos de servicio del sitio. Revisa los Términos de Servicio del sitio objetivo, respeta robots.txt donde corresponda, no recolectes datos personales sin una base legal y consulta a un abogado para canales de escala comercial.
Q3: ¿Necesito un proxy residencial?
Sí, para cualquier sitio con protección anti-bots significativa — la mayoría de los minoristas, mercados, SERPs y grandes páginas de destino de SaaS. El servidor MCP de Scrapeless enruta cada llamada browser_* y scrape_* a través de la piscina residencial por defecto; no se necesita configuración de proxy separada para que la llamada funcione.
Q4: ¿Puedo elegir una región de proxy residencial por solicitud desde la superficie MCP?
No desde la herramienta browser_create de MCP — la sesión del navegador en la nube utiliza la región de proxy configurada en la cuenta de Scrapeless. Para la selección de región por consulta (EE. UU. vs DE vs JP), controla el navegador en la nube a través del scrapeless-scraping-browser CLI con --proxy-country, o mantiene múltiples claves de API para diferentes regiones predeterminadas.
Q5: ¿modo stdio vs modo HTTP transmitible — cuál pertenece a Zencoder?
Hoy en día, VS Code es solo stdio; JetBrains 2.13+ admite ambos. Stdio es el predeterminado correcto para una estación de trabajo de desarrollador — Zencoder genera npx scrapeless-mcp-server como un proceso hijo y comunica JSON-RPC a través de su stdin/stdout. Streamable-HTTP (solo JetBrains) es el predeterminado correcto cuando el host se ejecuta en un contenedor de dev alojado o en un sandbox de CI donde el host no puede mantener un proceso hijo de larga duración vivo. Ambos modos usan la misma clave de API.
Q6: VS Code usa "zencoder.mcpServers" pero JetBrains usa un objeto básico — ¿por qué la diferencia?
Así es como están conectados los dos paneles de configuración de Zencoder. El settings.json de VS Code es el archivo de configuración global del IDE con claves con un espacio de nombres de extensión, por lo que Zencoder utiliza "zencoder.mcpServers". JetBrains expone la sección de Servidores MCP directamente bajo Herramientas → Zencoder → Servidores MCP, por lo que el JSON que el usuario pega es solo el objeto interno. Las claves command/args/env/type/url/headers son idénticas en ambos IDE — solo cambia el envoltorio.
Q7: ¿Cómo mantengo la clave de API fuera del archivo JSON?
Usa un marcador de posición en el JSON e inyecta el valor a través de una variable de entorno del sistema operativo. Establece SCRAPELESS_KEY en el shell que lanza Zencoder (export SCRAPELESS_KEY=... en macOS/Linux o [Environment]::SetEnvironmentVariable("SCRAPELESS_KEY", "...", "User") en Windows PowerShell), luego referencia ${SCRAPELESS_KEY} en el bloque env de la configuración. Reinicia Zencoder para que la nueva variable se propague.
Q8: La primera llamada browser_create devuelve error del sistema 10054 o 503. ¿Qué hago ahora?
Ambos son errores transitorios de inicio de sesión en el pool de proxies residenciales de Scrapeless. Un solo reintento suele tener éxito: pida al agente que llame a browser_close (si se creó una sesión) y browser_create nuevamente, o envuelva la llamada en un bucle de reintento de 2 a 3 intentos.
P9: ¿Cómo decide Zencoder qué herramienta de Scrapeless llamar?
Cada herramienta de MCP tiene un nombre y un esquema; el planificador de Zencoder lee las descripciones y las empareja con el aviso. No hay un atajo @<servername> para los servidores MCP — @Jira y @GitHub dirigen a Integraciones Nativas, no a MCP. Formule la tarea de manera natural ("raspar esta URL como markdown", "buscar en Google X") y se seleccionará la herramienta adecuada de Scrapeless.
P10: ¿Se requieren habilidades, o son solo un complemento?
Opcional. El servidor MCP por sí solo le da al agente todas las herramientas de Scrapeless. Una habilidad en ~/.zencoder/skills/scrapeless/SKILL.md aumenta la tasa de éxito de aviso a la herramienta correcta al enseñar al agente el patrón de descubrir → extraer, pero la integración funciona de punta a punta sin una.
P11: ¿Puedo ejecutar esto sin Zencoder?
Sí. El servidor MCP de Scrapeless es un servidor MCP estándar, que se puede llamar desde Claude Desktop, Claude Code, Cursor, OpenAI Codex CLI, Gemini CLI, VS Code + GitHub Copilot Chat, Google Antigravity, o cualquier cliente personalizado construido contra el MCP TypeScript SDK. El mismo fragmento de JSON se puede usar en cada uno (con la clave de envoltura ajustada según el cliente). Para superficies que no son MCP, el navegador en la nube también es accesible a través del scrapeless-scraping-browser CLI y el punto de enlace WSS en wss://browser.scrapeless.com/browser.
En Scrapeless, solo accedemos a datos disponibles públicamente y cumplimos estrictamente con las leyes, regulaciones y políticas de privacidad del sitio web aplicables. El contenido de este blog es sólo para fines de demostración y no implica ninguna actividad ilegal o infractora. No ofrecemos garantías y renunciamos a toda responsabilidad por el uso de la información de este blog o enlaces de terceros. Antes de realizar cualquier actividad de scraping, consulte a su asesor legal y revise los términos de servicio del sitio web de destino u obtenga los permisos necesarios.



