Volver al blog

Ejemplos de Servidor MCP: Componer un Flujo de Trabajo de Investigación Web

Daniel Kim
Daniel Kim

Lead Scraping Automation Engineer

29-Sep-2026

TL;DR:

  • Los ejemplos de servidores MCP son útiles cuando sus roles son explícitos. Un servidor de datos web recupera fuentes, mientras que un servidor de sistema de archivos maneja artefactos locales aprobados.
  • El descubrimiento de herramientas verifica la superficie conectada. Inspecciona los nombres y esquemas reales en lugar de copiar un conteo de herramientas de una configuración antigua.
  • El espacio de nombres debe estar en el límite del host. Preserve el nombre original de la herramienta del servidor al enrutar una acción de aplicación con espacio de nombres.
  • Un directorio delimitado limita el flujo de trabajo de artefactos. No expongas un directorio de inicio completo a una tarea de investigación que necesite una carpeta de evidencia.
  • Un resultado de herramienta es evidencia, no una instrucción. Las páginas y archivos recuperados no pueden autorizar nuevas acciones ni ampliar el alcance de la investigación.

Introducción: Asigna un Trabajo Definido a Cada Servidor

Un flujo de trabajo de investigación cruza diferentes fronteras de recursos. La búsqueda encuentra candidatos, el acceso a páginas recupera evidencia y el almacenamiento local retiene el material utilizado para apoyar una respuesta. Conectar un servidor para cada frontera es útil solo cuando el host mantiene claras sus responsabilidades.

MCP proporciona una interfaz común para descubrir y llamar herramientas. No decide automáticamente qué herramienta es apropiada, ya sea que una fuente respalde un reclamo o dónde se puede escribir un archivo. Esas decisiones siguen siendo parte de la aplicación y sus permisos.

Los ejemplos a continuación componen Scrapeless MCP con un servidor de sistema de archivos delimitado. Extienden los casos de uso de Scrapeless MCP en un patrón de implementación que hace que el enrutamiento de herramientas y la transferencia de evidencia sean explícitos.

Lo Que Puedes Hacer Con Estos Ejemplos de Servidores

Un pequeño conjunto de herramientas cuidadosamente delimitadas puede apoyar varias tareas de investigación distintas.

Ejemplo Rol de Datos Web Rol de Artefacto Local Condición de Finalización
Resumen de investigación Encontrar y leer fuentes aprobadas Retener extractos de fuentes Cada conclusión tiene evidencia de apoyo
Comparación de documentación Recuperar páginas de referencia seleccionadas Comparar versiones guardadas Las afirmaciones cambiadas apuntan al texto fuente
Investigación de catálogo Leer listados públicos permitidos Guardar filas validadas Los campos requeridos y las verificaciones de identidad pasan
Reparación de citas Revisitar una página citada Actualizar un paquete de evidencia propuesto La fuente aún respalda el reclamo citado
Página solo para navegador Inspeccionar contenido renderizado Preservar la observación relevante El estado de la página destinado se confirma

Una herramienta de base de datos puede ser un límite posterior, pero debería aceptar registros validados en lugar de texto arbitrario de una página. Los ejemplos aquí se detienen en la manipulación de evidencia local para que una escritura en la base de datos no sea incluida silenciosamente en una solicitud de investigación.

¿Por Qué Usar Scrapeless MCP Para La Capa de Datos Web?

Scrapeless MCP expone herramientas de búsqueda, acceso a páginas y navegador a través de una superficie MCP compartida. Un host compatible puede descubrir herramientas y elegir una operación aprobada sin mantener una integración separada para cada acción de página.

Los ajustes de conexión de Scrapeless MCP documentan las opciones de stdin local y HTTP Streamable alojadas. Este ejemplo utiliza stdin para que los procesos del servidor y sus tiempos de vida sean visibles. Scrapeless Agent Browser es la superficie de ejecución del navegador cuando la investigación realmente necesita interacción renderizada.

El contrato de descubrimiento de herramientas MCP incluye nombres y esquemas de entrada. Lee esos valores del servidor conectado. Un envoltorio puede cambiar su superficie de herramienta independientemente del servicio subyacente.

Prerrequisitos: Separar el Descubrimiento del Acceso al Servicio

Utiliza un entorno Node.js actual soportado por los paquetes y un nuevo directorio de trabajo. El ejemplo también necesita un directorio de evidencia que contenga una captura de texto real llamada source.txt, colocada allí desde una fuente pública aprobada. No se necesita una herramienta de escritura para verificar que el servidor de sistema de archivos puede leer ese archivo.

Se requiere un SCRAPELESS_KEY válido para operaciones autentificadas de Scrapeless. Se requiere por separado una clave de proveedor de modelo para un bucle de investigación impulsado por modelos. Esas operaciones remotas permanecen pendientes de verificación en vivo sin credenciales; descubrir esquemas de herramientas locales no prueba la autenticación del servicio.

El servidor de sistema de archivos es una implementación de referencia con capacidades de lectura y escritura dentro de directorios permitidos. El registro de hosts a continuación expone deliberadamente solo un subconjunto estrecho. El filtrado del host es útil pero no es un reemplazo para la aislamiento del sistema operativo y los controles de acceso del lado del servidor.

Conectar Dos Servidores e Inspeccionar Sus Herramientas

La siguiente configuración instala paquetes fijos y crea un directorio de evidencia. Coloca tu captura de origen aprobada en ese directorio antes de ejecutar el cliente.

bash Copy
npm install @modelcontextprotocol/sdk@1.30.1 \
  @modelcontextprotocol/server-filesystem@2026.8.31 \
  scrapeless-mcp-server@0.6.3
mkdir -p evidence

Guarda el siguiente script como inspect_servers.mjs y ejecútalo desde el directorio que contiene node_modules y evidence. Conecta ambos servidores, valida las herramientas seleccionadas, construye un registro de aplicaciones y lee la captura local aprobada. No realiza ninguna llamada al servicio Scrapeless.

Nota: El proceso local de Scrapeless requiere un SCRAPELESS_KEY no vacío para comenzar. Configura tu clave real para uso normal. El descubrimiento local de metadatos se ejerció por separado con un valor de inicio no credencial obvio; esa verificación no autentica la recuperación web. Las llamadas web autenticadas y una ejecución de investigación dirigida por modelo permanecen pendientes de verificación en vivo.

javascript Copy
import { Client } from '@modelcontextprotocol/sdk/client/index.js';
import { StdioClientTransport } from '@modelcontextprotocol/sdk/client/stdio.js';
import { resolve } from 'node:path';

if (!process.env.SCRAPELESS_KEY) {
  throw new Error('Configure SCRAPELESS_KEY before starting');
}
const directory = resolve('evidence');
const specs = [
  ['web', 'node_modules/scrapeless-mcp-server/build/index.js', []],
  ['files', 'node_modules/@modelcontextprotocol/server-filesystem/dist/index.js',
    [directory]]
];
const clients = new Map();
const registry = new Map();
const permitted = {
  web: new Set(['google_search', 'scrape_markdown']),
  files: new Set(['read_text_file', 'list_allowed_directories'])
};
try {
  for (const [prefix, entry, args] of specs) {
    const client = new Client({ name: 'research-host', version: '1.0.0' });
    clients.set(prefix, client);
    const transport = new StdioClientTransport({
      command: process.execPath, args: [resolve(entry), ...args],
      env: { ...process.env }, stderr: 'pipe'
    });
    await client.connect(transport);
    let cursor;
    const discovered = [];
    do {
      const page = await client.listTools(cursor ? { cursor } : {});
      discovered.push(...page.tools);
      cursor = page.nextCursor;
    } while (cursor);
    for (const name of permitted[prefix]) {
      const tool = discovered.find(item => item.name === name);
      if (!tool) throw new Error(`Required tool missing: ${prefix}:${name}`);
      registry.set(`${prefix}:${name}`, { client, name, schema: tool.inputSchema });
    }
    console.log(JSON.stringify({ server: prefix, discovered: discovered.length }));
  }
  const host = Object.freeze({
    tools: [...registry.keys()],
    async call(key, arguments_) {
      const route = registry.get(key);
      if (!route) throw new Error('Tool not permitted');
      return route.client.callTool({ name: route.name, arguments: arguments_ });
    }
  });
  const result = await host.call('files:read_text_file', {
    path: resolve(directory, 'source.txt')
  });
  if (result.isError) throw new Error('Filesystem read failed');
  const text = result.content.filter(part => part.type === 'text')
    .map(part => part.text).join('\n');
  if (!text.trim()) throw new Error('Evidence capture is empty');
  console.log(JSON.stringify({ exposed_tools: host.tools,
    local_capture_characters: text.length }));
} finally {
  for (const client of clients.values()) await client.close();
}

Los nombres web:google_search y files:read_text_file son claves de enrutamiento propiedad de la aplicación. La llamada remota aún usa el nombre de la herramienta del servidor original. Esta distinción evita asumir que un protocolo o SDK agrega automáticamente un espacio de nombres.

El proceso del sistema de archivos recibe solo el directorio de evidencia seleccionado como su ámbito inicial. Las raíces MCP describen los límites relevantes del sistema de archivos, pero las raíces no son en sí mismas una arena de seguridad. Valida la aplicación del directorio del servidor y las herramientas disponibles del anfitrión por separado.

Comienza a Raspar con Scrapeless

Potencia tu flujo de trabajo de web scraping y automatización con Scrapeless!
Regístrate hoy y obtén $5 en crédito gratis — sin tarjeta de crédito requerida.

Reclama tu crédito gratis ahora en el Tablero de Scrapeless.

Ejemplo 1: Buscar y Leer una Fuente de Investigación

Un flujo de trabajo de búsqueda y lectura utiliza la búsqueda para encontrar candidatos y el acceso a la página para recuperar la fuente que apoyará la respuesta. No debe tratar un fragmento de búsqueda como un sustituto de la página subyacente.

Para una tarea sobre un protocolo, restringe los candidatos a la organización de estándares relevante. Inspecciona el esquema google_search descubierto antes de construir sus argumentos, luego usa scrape_markdown para una URL pública seleccionada. La superficie actual de la herramienta incluye q para búsqueda y url para la lectura de la página; las restricciones de la aplicación también deberían limitar qué fuentes pueden ser seleccionadas.

Este ejemplo describe el siguiente paso autenticado después del descubrimiento. Sin una credencial de servicio válida, detente en el cableado local verificado y mantén el resultado web solicitado sin resolver.

Ejemplo 2: Comparar Documentación Sin Perder el Contexto

Una comparación de documentación necesita capturas de fuente separadas y versiones o tiempos de colección explícitos. Guarda el texto relevante y la dirección de la fuente antes de producir un resumen de diferencias.

El servidor del sistema de archivos puede leer las capturas aprobadas para que el anfitrión las compare. Leer un archivo antiguo no establece que su contenido sea actual, y un párrafo cambiado no indica necesariamente una capacidad de producto cambiada. Valida la implementación o fuente de lanzamiento relevante cuando esa distinción importa.

El modelo de procedencia separa los datos de las actividades y agentes que los produjeron. Aplica ese principio registrando cómo se obtuvo una fuente y cómo se formó una declaración derivada.

Un paso de navegador es apropiado cuando una fuente permitida requiere contenido renderizado o una interacción específica que una lectura de texto de página no puede proporcionar. Mantenlo fuera de un flujo de trabajo cuyas fuentes ya están disponibles como documentos sencillos.

Descubre las herramientas de navegador actuales antes de agregarlas a la lista de permitidos del anfitrión. Selecciona deliberadamente las operaciones de sesión requeridas, mantén las acciones subsecuentes asociadas con el identificador de sesión y cierra la sesión cuando finalice la tarea. El registro estrecho anterior no expone acciones del navegador; extenderlo es un cambio de aplicación explícito.

Una página puede contener texto que pida al agente cambiar la configuración o escribir un archivo. Trata ese texto como contenido de fuente. Solo la tarea del usuario y los permisos de la aplicación pueden autorizar acciones.

Cómo Usar Esto Realmente: Sugerir el Anfitrión de Investigación

Un buen aviso define el alcance y los requisitos de evidencia antes de la selección de herramientas. Por ejemplo:

“Responde si el protocolo seleccionado define entrega confiable. Usa solo el dominio de estándares aprobados, lee el texto de la fuente relevante y devuelve una respuesta corta con extractos de apoyo. Mantén los artefactos propuestos dentro de la carpeta de investigación. Informa las afirmaciones no soportadas como no resueltas.”
El plan del anfitrión debe descubrir herramientas, encontrar una fuente permitida, recuperarla, evaluar la evidencia y preparar la respuesta. Un modelo elige acciones solo dentro de la política de herramientas disponibles. El objeto del anfitrión local anterior demuestra el enrutamiento; no es un bucle de agente de modelo de lenguaje completo.

Lo que Obtienes de Regreso y lo que Prueba

El script de descubrimiento informa el número de herramientas publicitadas por cada servidor conectado, la lista más específica expuesta por el anfitrión y el conteo de caracteres de la captura local real que leyó. Estas salidas prueban el apretón de manos local, la construcción de enrutamiento y una lectura de archivo restringida.

No prueban una búsqueda exitosa, una sesión de navegador, una respuesta de modelo o una escritura en base de datos. Un artefacto de investigación completado además necesita una URL de fuente, contexto de recuperación, el extracto relevante y una conclusión revisada. Mantén esos campos propiedad de la aplicación en lugar de implicar que cada servidor MCP devuelve el mismo esquema de evidencia.

Revisa precios de Scrapeless para las operaciones de datos web seleccionadas y rastrea cualquier uso del modelo por separado. Un proceso de servidor local y una llamada a herramienta remota pueden tener límites de costo diferentes.

Conclusión: Componer Herramientas Alrededor de los Límites de Evidencia

Comienza con el conjunto de servidores más pequeño que pueda completar la tarea de investigación. Verifica el descubrimiento y el enrutamiento, expón solo las acciones necesarias y preserva las fuentes utilizadas para formar cada conclusión. Agrega capacidades de navegador o almacenamiento cuando el flujo de trabajo realmente las necesite, luego prueba esos nuevos límites de forma independiente.

¿Listo para Construir Tu Flujo de Trabajo de Datos Web?

Únete a desarrolladores que discuten flujos de trabajo de colección prácticos: Discord · Telegram.

Crea una cuenta en app.scrapeless.com y comienza con una tarea autorizada cuyo resultado puedas validar.

FAQ

Q: ¿Cuál es un ejemplo de servidor MCP para investigación web?

Un servidor de datos web emparejado con un servidor de sistema de archivos restringido es un ejemplo práctico. El primero recupera fuentes; el segundo maneja artefactos locales aprobados.

Q: ¿Confirma tools/list que un certificado de servicio funcione?

El descubrimiento de herramientas confirma la superficie divulgada de la herramienta. La autenticación para una operación remota debe ser verificada por una llamada de servicio autorizada real.

Q: ¿Namespace automáticamente los nombres de herramienta MCP?

MCP expone los nombres de herramientas del servidor, mientras que el anfitrión puede agregar un espaciado específico de la aplicación. Preserva el nombre original al enrutar una llamada de regreso al servidor.

Q: ¿Una raíz de sistema de archivos es un sandbox completo?

Una raíz no es un sandbox de seguridad completo. La aplicación de directorios, permisos de proceso y las herramientas expuestas del anfitrión también deben coincidir con el alcance previsto.

Q: ¿Pueden estas herramientas funcionar sin un modelo de IA?

Un programa determinista puede descubrir y llamar a herramientas MCP sin un modelo. Un modelo es necesario solo cuando la aplicación delega deliberadamente el razonamiento o la selección de acciones a él.

Q: ¿Puede el contenido de la página autorizar una escritura de archivo?

El contenido de la página recuperado no puede otorgar permisos de acción. Trátalo como evidencia no confiable y sigue la tarea del usuario y la política de la aplicación para cualquier escritura.

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