Volver al blog

Dale a LangChain Agents 21 Herramientas Web en Vivo con MCP Sin Raspado

Ava Wilson
Ava Wilson

Expert in Web Scraping Technologies

10-Jun-2026

Puntos Clave:

  • Los agentes de LangChain obtienen 21 herramientas web en vivo a partir de una configuración del cliente. El paquete langchain-mcp-adapters conecta una aplicación LangChain al servidor Scrapeless MCP y devuelve toda la superficie de herramientas — control del navegador, scraping de páginas, búsqueda y tendencias de Google — como objetos StructuredTool listos para enlazar.
  • No se requiere Node en la ruta alojada. Apunta al cliente a https://api.scrapeless.com/mcp sobre HTTP transmitible con tu x-api-token; la ruta stdio (npx -y scrapeless-mcp-server) es la misma superficie para configuraciones locales.
  • Las herramientas funcionan antes de que se involucre algún modelo. get_tools() las enumera y ainvoke() las ejecuta directamente — scrape_markdown en una URL en vivo devuelve la página en markdown — por lo que el cableado es comprobable sin una clave LLM.
  • Los nombres difieren por transporte. El punto final alojado sirve nombres simples (browser_goto, scrape_markdown, google_search); el servidor stdio los nombra como scrapeless_*. Las mismas 21 herramientas de cualquier forma.
  • De herramientas a agente es un solo constructor. Une las herramientas devueltas a cualquier modelo de chat de LangChain y el agente puede buscar, navegar y raspar la web en vivo dentro de su bucle de razonamiento.
  • Gratis para comenzar. Nuevas cuentas de Scrapeless incluyen créditos de prueba gratuitos: regístrate en app.scrapeless.com.

Lo Que Puedes Hacer Con Esto

  • Agentes de investigación que leen la web en vivo. google_search para descubrimiento, scrape_markdown para texto limpio de la página — la mitad de recuperación de un bucle de agente, sin construir un raspador.
  • Agentes que controlan el navegador. Dieciséis herramientas browser_* (crear, ir a, hacer clic, escribir, desplazarse, captura de pantalla, instantánea, esperar) dan a un agente una sesión real de navegador en la nube para operar en contra de la detección.
  • Monitoreo de mercado y tendencias. google_trends más raspado programado convierten un pipeline de LangChain en un servicio de monitoreo.
  • RAG basado en herramientas. Obtén páginas como markdown a demanda en lugar de preindexar todo, y deja que el agente decida qué leer.
  • Una autenticación para todo. La misma clave API de Scrapeless que impulsa los actores de la API de Raspado impulsa la superficie de herramientas MCP.

Por Qué el Servidor MCP de Scrapeless

MCP (Modelo de Protocolo de Contexto) es la interfaz estándar para entregar herramientas a agentes, y LangChain lo habla a través del paquete adaptador oficial. Al otro lado de ese protocolo, el servidor MCP de Scrapeless expone la infraestructura de raspado como 21 herramientas tipadas: sesiones de navegador en la nube en el Navegador de Raspado, raspado de página de un solo disparo a HTML, markdown o captura de pantalla, y búsqueda y tendencias de Google. El agente obtiene capacidades; la representación, la anti-detección y el enrutamiento de proxy permanecen del lado del servidor.

La combinación importa porque los agentes de LangChain son tan útiles como sus herramientas. Un modelo que puede planificar pero no puede obtener una página en vivo responde a partir de datos de entrenamiento; el mismo modelo con esta superficie de herramientas lee la web sobre la que está razonando.


Requisitos Previos

  • Python 3.10+ y un entorno virtual.
  • Una cuenta de Scrapeless y clave API: regístrate en app.scrapeless.com.
  • Para el transporte stdio opcional: Node.js 18+ (la ruta HTTP alojada no necesita Node).
bash Copy
export SCRAPELESS_API_KEY=tu_token_api_aquí

Conectar

1. Instalar el adaptador

bash Copy
pip install langchain-mcp-adapters langchain-core

2. Configurar el cliente y verificar el conteo de herramientas

El punto final alojado es el camino más rápido — puro HTTPS, autenticado por el encabezado x-api-token:

python Copy
# handshake.py — conectar LangChain al servidor Scrapeless MCP, enumerar las herramientas
import asyncio
import os

from langchain_mcp_adapters.client import MultiServerMCPClient


async def main():
    client = MultiServerMCPClient({
        "scrapeless": {
            "transport": "streamable_http",
            "url": "https://api.scrapeless.com/mcp",
            "headers": {"x-api-token": os.environ["SCRAPELESS_API_KEY"]},
        }
    })
    tools = await client.get_tools()
    names = sorted(t.name for t in tools)
    print(f"número de herramientas: {len(names)}")
    print("nombres:", ", ".join(names))

asyncio.run(main())

Un apretón de manos correcto imprime 21 herramientas:

browser_click, browser_close, browser_create, browser_get_html, browser_get_text, browser_go_back, browser_go_forward, browser_goto, browser_press_key, browser_screenshot, browser_scroll, browser_scroll_to, browser_snapshot, browser_type, browser_wait, browser_wait_for, google_search, google_trends, scrape_html, scrape_markdown, scrape_screenshot

3. O ejecutar el servidor localmente a través de stdio

Los mismos buques de superficie como un paquete de npm para configuraciones locales: la forma de configuración estándar del MCP, con la clave pasada como una variable de entorno:

json Copy
{
  "scrapeless": {
    "command": "npx",
    "args": ["-y", "scrapeless-mcp-server"],
    "transport": "stdio",
    "env": { "SCRAPELESS_KEY": "tu_token_api_aqui" }
  }
}

Una diferencia a nivel de transporte a esperar: el servidor stdio nombra sus herramientas como scrapeless_*, mientras que el punto final hospedado las sirve desnudas. El código que busca herramientas por nombre debe coincidir en el sufijo.

Obtén tu clave API en el plan gratuito: app.scrapeless.com


Cómo usar esto: llama a una herramienta y luego pásasela a un agente

Los objetos devueltos son herramientas StructuredTool normales de LangChain, lo que significa que se ejecutan directamente — no se requiere modelo. La prueba más corta posible de que la conexión funciona de extremo a extremo:

python Copy
# invoke_tool.py — ejecutar una herramienta MCP directamente a través del adaptador
import asyncio
import os

from langchain_mcp_adapters.client import MultiServerMCPClient


async def main():
    client = MultiServerMCPClient({
        "scrapeless": {
            "transport": "streamable_http",
            "url": "https://api.scrapeless.com/mcp",
            "headers": {"x-api-token": os.environ["SCRAPELESS_API_KEY"]},
        }
    })
    tools = {t.name: t for t in await client.get_tools()}
    result = await tools["scrape_markdown"].ainvoke(
        {"url": "https://www.scrapeless.com/es/blog/best-llm-scrapers-2026"}
    )
    text = result if isinstance(result, str) else str(result)
    print(f"scrape_markdown devolvió {len(text):,} caracteres de markdown")

asyncio.run(main())

En una ejecución en vivo, esto retorna el artículo completo como markdown — decenas de miles de caracteres de texto limpio de página de una llamada a herramienta.

Vincular las herramientas a un agente es el mismo constructor que siempre ha sido en LangChain — trae el modelo de chat que usa tu pila (una clave API de modelo es el único requisito previo que esta guía no cubre):

python Copy
# agent.py — adjuntar las herramientas MCP a un agente LangChain (requiere una clave API de modelo)
from langchain.agents import create_agent

agent = create_agent(model, tools)  # `tools` de client.get_tools(), `model` = tu modelo de chat
result = agent.invoke({
    "messages": [{"role": "user", "content": "Busca Scrapeless y resume el resultado principal."}]
})

Desde la perspectiva del agente, las herramientas son solo funciones que puede llamar: planea, escoge google_search, lee, escoge scrape_markdown, lee de nuevo y responde con contenido en vivo.


La superficie de herramienta MCP de Scrapeless

Grupo Herramientas Qué hacen
Sesión del navegador browser_create, browser_goto, browser_click, browser_type, browser_press_key, browser_scroll, browser_scroll_to, browser_go_back, browser_go_forward, browser_wait, browser_wait_for, browser_snapshot, browser_get_html, browser_get_text, browser_screenshot, browser_close Controla un navegador en la nube anti-detección paso a paso — las sesiones persisten entre llamadas
Raspado de páginas scrape_html, scrape_markdown, scrape_screenshot Obtención única de cualquier URL como HTML bruto, markdown limpio o una imagen
Datos de Google google_search, google_trends Resultados de búsqueda estructurados y datos de tendencias

Lo que obtienes de regreso

Los resultados de las herramientas llegan como partes de contenido MCP que el adaptador expone a LangChain — para las herramientas de raspado, la carga útil es la propia página. La llamada scrape_markdown anterior devuelve el artículo renderizado como texto markdown listo para alimentar a un divisor, un resumidor o la propia ventana de contexto del agente. Las herramientas del navegador devuelven sus observaciones (instantáneas, texto extraído, capturas de pantalla) de la misma manera, lo que hace práctico el raspado en múltiples pasos dentro de un bucle de agente.


Conclusión: un bloque de configuración, un agente capaz de la web

La integración es genuinamente pequeña: instala el adaptador, proporciona a MultiServerMCPClient la URL hospedada y tu token, y get_tools() le entrega a LangChain 21 capacidades web en vivo. Verifica con el conteo de herramientas, pruébalo con un direct ainvoke, y luego vincula la misma lista a tu agente. La guía de integración de Mastra muestra el mismo servidor conectado a un marco de agente TypeScript — misma superficie, diferente anfitrión.

¿Listo para darle a tu agente la web en vivo?

Únete a nuestra comunidad para reclamar un plan gratuito y conectarte con desarrolladores que construyen canalizaciones para agentes: Discord · Telegram.
Regístrate en app.scrapeless.com para obtener créditos de prueba gratuita — los precios cubren los niveles actuales — y dirige tus agentes de LangChain a las páginas que deberían estar leyendo.


Preguntas Frecuentes

P: ¿Necesito Node.js?

Solo para el transporte stdio, que ejecuta el paquete npm localmente. El endpoint alojado https://api.scrapeless.com/mcp es HTTPS puro — las pilas solo de Python lo utilizan sin Node en ningún lugar.

P: ¿Cómo me autentico?

El endpoint alojado toma x-api-token: <tu clave> como un encabezado de solicitud; el servidor stdio lee SCRAPELESS_KEY de su entorno. La misma clave, ambos transportes — creada en el plan gratuito en app.scrapeless.com.

P: ¿Cómo verifico que la integración está realmente conectada?

Dos comprobaciones, ambas sin modelo: get_tools() devuelve 21 herramientas, y un ainvoke directo de scrape_markdown en una URL real devuelve la página en markdown. Si ambas pasan, la vinculación del agente es el único paso que queda.

P: ¿Por qué los nombres de las herramientas difieren entre mi servidor local y el endpoint alojado?

El paquete stdio nombra los espacios como scrapeless_*; el endpoint alojado los proporciona sin prefijo. Coincide con el sufijo si tu código necesita funcionar en ambos.

P: ¿Puedo usar las herramientas sin un agente?

Sí — son objetos StructuredTool y funcionan de manera independiente a través de ainvoke, lo que también las hace utilizables en cadenas simples de LangChain y nodos de LangGraph, no solo en agentes.

P: ¿Es legal el acceso web a través de las herramientas?

Las herramientas obtienen páginas accesibles públicamente a través de la infraestructura de Scrapeless. Las reglas varían según la jurisdicción y los términos del sitio — revisa los Términos de Servicio de los sitios que lee tu agente y consulta a un abogado para tu caso de uso. Nunca recolectes datos personales protegidos bajo GDPR o CCPA.

P: ¿Cuánto cuesta ejecutarlo?

Las llamadas a las herramientas utilizan la misma cuenta de Scrapeless basada en el uso que el resto de la plataforma, y las nuevas cuentas comienzan con créditos de prueba gratuita.

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.

Artículos más populares

Catalogar