Saltar al contenido

CrawlForge TeamEquipo de Ingeniería

10 min de lectura

Cómo hacer scraping de webs con agentes de GitHub Copilot en VS Code

El modo agente de GitHub Copilot en VS Code puede leer tu repo, ejecutar comandos de terminal y editar archivos, pero no puede obtener páginas web en vivo de forma fiable. Añade CrawlForge MCP y Copilot gana 31 herramientas de scraping, desde fetch_url hasta deep_research.

Jsonc
// .vscode/mcp.json
{
  "servers": {
    "crawlforge": {
      "type": "stdio",
      "command": "crawlforge-mcp-server",
      "env": { "CRAWLFORGE_API_KEY": "cf_live_your_key" }
    }
  }
}

Esta guía recorre paso a paso cómo habilitar el web scraping en los agentes de GitHub Copilot, con ejemplos funcionales en TypeScript y solución de problemas para los fallos más comunes.

Tabla de contenidos

El problema: el acceso web limitado de Copilot

Copilot Chat tiene un participante @web, pero reescribe tu consulta como una búsqueda en Bing: sin acceso a la página en crudo, sin extracción estructurada, sin evasión anti-bot. En modo agente, Copilot puede ejecutar comandos de shell, así que podrías canalizar curl | pandoc a través de una llamada a herramienta, pero eso se pierde las páginas renderizadas con JavaScript y activa los sistemas anti-bot en cuestión de minutos.

MCP resuelve esto. Desde que VS Code 1.102 lanzó soporte MCP de disponibilidad general a mediados de 2025, los agentes de Copilot pueden llamar a cualquier MCP server que registres. CrawlForge expone 31 herramientas de scraping como MCP, por lo que el scraping se convierte en una acción de agente de primera clase.

Requisitos previos

  • VS Code 1.102+ -- code --version
  • Suscripción a GitHub Copilot (Individual, Business o Enterprise) con el modo agente habilitado
  • Node.js 18+
  • Cuenta de CrawlForge -- gratuita en crawlforge.dev/signup

Paso 1: instala CrawlForge MCP

Bash
npm install -g crawlforge-mcp-server
crawlforge-mcp-server --version
# crawlforge-mcp-server 4.8.1

Paso 2: habilita el modo agente de Copilot

  1. Abre la configuración de VS Code (Cmd+, / Ctrl+,).
  2. Busca chat.agent.enabled y actívalo.
  3. Abre Copilot Chat (Ctrl+Alt+I / Cmd+Ctrl+I) y cambia el desplegable de modo de "Ask" a "Agent".

El modo agente es lo que habilita las llamadas a herramientas MCP. En los modos "Ask" o "Edit", Copilot ignora los MCP servers registrados.

Paso 3: registra el MCP server

VS Code admite MCP en dos ámbitos:

  • Workspace -- .vscode/mcp.json en la raíz del repo (compartido en equipo vía git)
  • Usuario -- editable mediante el comando "MCP: Add Server" de la paleta de comandos (personal)

Para scraping en equipo, usa la configuración de workspace:

Jsonc
// .vscode/mcp.json
{
  "servers": {
    "crawlforge": {
      "type": "stdio",
      "command": "crawlforge-mcp-server",
      "env": {
        "CRAWLFORGE_API_KEY": "${env:CRAWLFORGE_API_KEY}"
      }
    }
  }
}

Luego exporta la key en tu shell (no la subas al repo):

Bash
export CRAWLFORGE_API_KEY="cf_live_your_key_here"

O usa ${input:apiKey} y VS Code te lo pedirá una vez por workspace.

Paso 4: verifica que las herramientas estén disponibles

  1. Abre Copilot Chat.
  2. Haz clic en el icono de herramientas en la cabecera del chat.
  3. Confirma que crawlforge aparece listado con 31 herramientas. Desmarca las que quieras ocultar.

Si la lista está vacía, ve a Solución de problemas.

Paso 5: tu primer scrape

En Copilot Chat (modo agente), pega:

#crawlforge Fetch https://news.ycombinator.com and list the top 5 story titles with their URLs.

La pista #crawlforge empuja a Copilot hacia la herramienta correcta. Copilot llama a fetch_url (1 credit), recibe el HTML, parsea los títulos y los devuelve en línea.

Ejemplo completo: genera un cliente REST a partir de docs en vivo

Aquí tienes un flujo de trabajo concreto: autogenerar un cliente tipado de Stripe a partir de la documentación en vivo.

Pide al agente de Copilot:

#crawlforge Use extract_content on https://docs.stripe.com/api/charges/create. Then in src/clients/stripe-charges.ts, write a typed function createCharge(params) that calls the Stripe API with the exact fields documented on that page. Add a Zod schema for params.

Copilot emite esta llamada MCP:

Typescript
// What Copilot sends via MCP to CrawlForge
{
  "tool": "extract_content",
  "arguments": {
    "url": "https://docs.stripe.com/api/charges/create",
    "options": { "format": "markdown" }
  }
}
// Response: clean markdown of the endpoint docs

Copilot lee el markdown y escribe:

Typescript
// src/clients/stripe-charges.ts
import { z } from 'zod';

export const CreateChargeParams = z.object({
  amount: z.number().int().positive(),
  currency: z.string().length(3),
  source: z.string().optional(),
  customer: z.string().optional(),
  description: z.string().max(500).optional(),
  receipt_email: z.string().email().optional(),
  statement_descriptor: z.string().max(22).optional(),
});

export type CreateChargeParams = z.infer<typeof CreateChargeParams>;

export async function createCharge(params: CreateChargeParams) {
  const validated = CreateChargeParams.parse(params);
  const body = new URLSearchParams();
  for (const [key, value] of Object.entries(validated)) {
    if (value !== undefined) body.append(key, String(value));
  }

  const response = await fetch('https://api.stripe.com/v1/charges', {
    method: 'POST',
    headers: {
      'Authorization': `Bearer ${process.env.STRIPE_SECRET_KEY}`,
      'Content-Type': 'application/x-www-form-urlencoded',
    },
    body,
  });

  if (!response.ok) {
    const error = await response.json();
    throw new Error(`Stripe error: ${error.error?.message ?? response.statusText}`);
  }

  return response.json();
}

Coste: 2 credits (una llamada a extract_content). Repítelo para cada endpoint de Stripe y tendrás un cliente tipado completo derivado de las docs en vivo.

Avanzado: flujos de trabajo con múltiples herramientas

Los agentes de Copilot destacan encadenando herramientas. Ejemplo de prompt:

#crawlforge 1) search_web for "OpenTelemetry Node.js auto-instrumentation 2026" 2) extract_content from the top 3 results 3) Summarize the differences into docs/otel-options.md with a decision matrix.

Copilot ejecuta las tres llamadas MCP secuencialmente, encadena los resultados y escribe el markdown. Coste total: ~11 credits (5 + 2 + 2 + 2).

Referencia rápida de credits

TareaHerramientaCredits
Obtención de HTML estáticofetch_url1
Texto limpio de artículoextract_content2
Campos por selector CSSscrape_structured2
Descubrir URLsmap_site2
Búsqueda websearch_web5
Evasión anti-botstealth_mode5
Investigación profundadeep_research10

Solución de problemas

La lista de herramientas está vacía -- El modo agente está desactivado. Habilita chat.agent.enabled en la configuración y cambia el modo del chat a "Agent".

"Spawn ENOENT: crawlforge-mcp-server" -- VS Code no encuentra el binario. Usa una ruta absoluta en .vscode/mcp.json: "command": "/usr/local/bin/crawlforge-mcp-server".

Copilot ignora el MCP server -- Antepón #crawlforge a tu prompt o nombra una herramienta explícitamente: "Usa fetch_url para...". A veces Copilot elige herramientas integradas por defecto.

401 Unauthorized -- La variable de entorno no llega al servidor. Comprueba echo $CRAWLFORGE_API_KEY en el mismo shell que lanzó VS Code. En macOS, VS Code lanzado desde la GUI no hereda el entorno del shell: lánzalo con code . desde la terminal.

La configuración MCP del workspace no se carga -- VS Code no confía automáticamente en .vscode/mcp.json. Abre el archivo, haz clic en la notificación "Trust" y luego recarga la ventana.

Próximos pasos

Empieza gratis con 1.000 credits en crawlforge.dev/signup.

Pruébalo tú mismo — sin necesidad de registrarte

Explora las 31 herramientas de scraping y extracción de CrawlForge en el playground y luego empieza gratis con 1,000 credits.

1,000 credits gratis • Por única vez • No se requiere tarjeta de crédito

Etiquetas

  • GitHub-Copilot
  • VS-Code
  • web-scraping
  • MCP
  • tutorial
  • agent-mode
  • AI-agents

Sobre el autor

CrawlForge Team

Equipo de Ingeniería

Construimos el MCP server de web scraping más completo. Creamos herramientas que ayudan a los desarrolladores a extraer, analizar y transformar datos web para aplicaciones de IA.

Newsletter

Mantente al día con los últimos artículos

Recibe tutoriales, novedades del producto y consejos de web scraping en tu bandeja de entrada.

Sin spam. Cancela tu suscripción cuando quieras.

FAQ

Preguntas frecuentes

01¿GitHub Copilot admite MCP servers?

Sí, desde VS Code 1.102 (mediados de 2025). Los MCP servers funcionan en Copilot Chat cuando cambias al modo agente. La configuración vive en .vscode/mcp.json (workspace) o mediante el comando "MCP: Add Server" de la paleta de comandos (ámbito de usuario).

02¿Necesito una suscripción de pago a Copilot para usar CrawlForge MCP?

Necesitas una suscripción a Copilot (Individual, Business o Enterprise) para acceder al modo agente y a las llamadas a herramientas MCP. CrawlForge en sí tiene un nivel gratuito con 1.000 credits por única vez, sin necesidad de tarjeta de crédito.

03¿Por qué Copilot ignora mis herramientas de CrawlForge?

Dos causas comunes: el modo del chat está en Ask o Edit en lugar de Agent, o Copilot eligió una herramienta integrada. Cambia al modo Agent en el desplegable del chat y haz referencia explícita a #crawlforge o a un nombre de herramienta específico como scrape_structured en tu prompt.

04¿Cómo comparto la configuración MCP con mi equipo?

Sube .vscode/mcp.json a tu repo. Usa ${env:CRAWLFORGE_API_KEY} o ${input:apiKey} para que las keys individuales queden fuera del control de versiones. Tus compañeros ejecutan el mismo export CRAWLFORGE_API_KEY=... una vez y, a partir de ahí, Copilot recoge la configuración compartida automáticamente.

05¿Cuál es la diferencia entre @web y una herramienta MCP de CrawlForge?

@web le hace una pregunta a Bing y devuelve una respuesta resumida: sin acceso a la página en crudo, sin extracción estructurada, sin control sobre qué URLs se obtienen. Las herramientas MCP de CrawlForge le dan a Copilot acceso directo a 20 primitivas de scraping: obtener HTML en crudo, seleccionar campos específicos por CSS, evadir anti-bot y ejecutar investigación multifuente con citas.

Sigue leyendo

Artículos relacionados