De volta ao blog

Exemplos de Servidor MCP: Compor um Fluxo de Trabalho de Pesquisa na Web

Daniel Kim
Daniel Kim

Lead Scraping Automation Engineer

29-Sep-2026

TL;DR:

  • Exemplos de servidor MCP tornam-se úteis quando seus papéis são explícitos. Um servidor de dados web recupera fontes, enquanto um servidor de sistema de arquivos lida com artefatos locais aprovados.
  • A descoberta de ferramentas verifica a superfície conectada. Inspecione os nomes e esquemas reais em vez de copiar uma contagem de ferramentas de uma configuração antiga.
  • O espaço de nomes pertence à fronteira do host. Preserve o nome original da ferramenta do servidor ao direcionar uma ação de aplicativo com espaço de nomes.
  • Um diretório escopado limita o fluxo de trabalho do artefato. Não exponha um diretório home inteiro a uma tarefa de pesquisa que precisa de uma pasta de evidência.
  • Um resultado de ferramenta é uma evidência, não uma instrução. Páginas e arquivos recuperados não podem autorizar novas ações ou expandir o escopo da pesquisa.

Introdução: Dê a Cada Servidor um Trabalho Definido

Um fluxo de trabalho de pesquisa cruza diferentes fronteiras de recursos. A busca encontra candidatos, o acesso à página recupera evidências e o armazenamento local retém o material usado para apoiar uma resposta. Conectar um servidor para cada fronteira é útil apenas quando o host mantém suas responsabilidades claras.

O MCP fornece uma interface comum para descobrir e chamar ferramentas. Ele não decide automaticamente qual ferramenta é apropriada, se uma fonte apoia uma reivindicação ou onde um arquivo pode ser escrito. Essas decisões permanecem parte do aplicativo e suas permissões.

Os exemplos abaixo compõem o Scrapeless MCP com um servidor de sistema de arquivos escopado. Eles estendem os casos de uso do Scrapeless MCP em um padrão de implementação que torna o direcionamento de ferramentas e a transferência de evidências explícitos.

O Que Você Pode Fazer com Esses Exemplos de Servidor

Um pequeno conjunto de ferramentas cuidadosamente escopadas pode suportar várias tarefas de pesquisa distintas.

Exemplo Papel de Dados Web Papel de Artefato Local Condição de Conclusão
Breve de pesquisa Encontrar e ler fontes aprovadas Reter trechos de fontes Cada conclusão tem evidências de apoio
Comparação de documentação Recuperar páginas de referência selecionadas Comparar versões salvas Mudanças nas reivindicações apontam para o texto da fonte
Investigação de catálogo Ler listagens públicas permitidas Salvar linhas validadas Campos obrigatórios e verificações de identidade passam
Reparação de citação Revisitar uma página citada Atualizar um pacote de evidência proposto A fonte ainda apoia a reivindicação citada
Página apenas para navegador Inspecionar conteúdo renderizado Preservar a observação relevante O estado da página pretendido é confirmado

Uma ferramenta de banco de dados pode ser uma fronteira posterior, mas deve aceitar registros validados em vez de texto arbitrário de uma página. Os exemplos aqui param no manuseio de evidências locais, então uma escrita no banco de dados não é silenciosamente incluída em um pedido de pesquisa.

Por Que Usar Scrapeless MCP para a Camada de Dados Web?

O Scrapeless MCP expõe ferramentas de busca, acesso a páginas e navegador através de uma superfície MCP compartilhada. Um host compatível pode descobrir ferramentas e escolher uma operação aprovada sem manter uma integração separada para cada ação de página.

As configurações de conexão do Scrapeless MCP documentam opções stdio locais e HTTP Streamable hospedado. Este exemplo usa stdio para que os processos do servidor e suas durações sejam visíveis. Scrapeless Agent Browser é a superfície de execução do navegador quando a pesquisa realmente precisa de interação renderizada.

O contrato de descoberta de ferramentas MCP inclui nomes e esquemas de entrada. Leia esses valores do servidor conectado. Um wrapper pode mudar sua superfície de ferramenta independentemente do serviço subjacente.

Pré-requisitos: Separe a Descoberta do Acesso ao Serviço

Use um ambiente Node.js atual suportado pelos pacotes e um novo diretório de trabalho. O exemplo também precisa de um diretório de evidências contendo uma captura de texto real chamada source.txt, colocada lá de uma fonte pública aprovada. Nenhuma ferramenta de escrita é necessária para verificar se o servidor de sistema de arquivos pode ler esse arquivo.

Um válido SCRAPELESS_KEY é necessário para operações Scrapeless autenticadas. Uma chave de provedor de modelo é separadamente necessária para um loop de pesquisa orientado por modelo. Essas operações remotas permanecem pendentes de verificação ao vivo sem credenciais; descobrir esquemas de ferramentas locais não prova a autenticação do serviço.

O servidor de sistema de arquivos é uma implementação de referência com capacidades de leitura e escrita dentro de diretórios permitidos. O registro do host abaixo expõe deliberadamente apenas um subconjunto estreito. O filtro de host é útil, mas não é um substituto para isolamento do sistema operacional e controles de acesso do lado do servidor.

Conectar Dois Servidores e Inspecionar Seus Ferramentas

A configuração a seguir instala pacotes fixos e cria um diretório de evidências. Coloque sua captura de fonte aprovada nesse diretório antes de executar o 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

Salve o próximo script como inspect_servers.mjs e execute-o a partir do diretório que contém node_modules e evidence. Ele conecta ambos os servidores, valida as ferramentas selecionadas, constrói um registro de aplicativo e lê a captura local aprovada. Não faz nenhuma chamada de serviço Scrapeless.

Nota: O processo local Scrapeless requer um SCRAPELESS_KEY não vazio para começar. Configure sua chave real para uso normal. A descoberta local de metadados foi exercitada separadamente com um valor de inicialização não credencial óbvio; essa verificação não autentica a recuperação da web. Chamadas web autenticadas e uma execução de pesquisa orientada por modelo permanecem pendentes de verificação ao 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();
}

Os nomes web:google_search e files:read_text_file são chaves de roteamento de propriedade do aplicativo. A chamada remota ainda utiliza o nome da ferramenta do servidor original. Essa distinção evita a suposição de que um protocolo ou SDK adiciona automaticamente um namespace.

O processo de sistema de arquivos recebe apenas o diretório de evidências selecionadas como seu escopo inicial. Raízes MCP descrevem os limites relevantes do sistema de arquivos, mas as raízes não são, por si mesmas, um sandbox de segurança. Valide a aplicação do diretório do servidor e as ferramentas disponíveis do host separadamente.

Comece a Extrair com Scrapeless

Potencialize seu fluxo de trabalho de extração da web e automação com Scrapeless!
Inscreva-se hoje e ganhe $5 em crédito grátis — sem necessidade de cartão de crédito.

Reivindique seu crédito grátis agora no Painel do Scrapeless.

Exemplo 1: Pesquisar e Ler uma Fonte de Pesquisa

Um fluxo de trabalho de pesquisa-e-leitura usa pesquisa para encontrar candidatos e acesso à página para recuperar a fonte que suportará a resposta. Não deve tratar um trecho de pesquisa como um substituto para a página subjacente.

Para uma tarefa sobre um protocolo, restrinja os candidatos à organização de padrões relevante. Inspecione o esquema google_search descoberto antes de construir seus argumentos, em seguida, use scrape_markdown para uma URL pública selecionada. A superfície da ferramenta atual inclui q para pesquisa e url para leitura de página; as restrições do aplicativo também devem limitar quais fontes podem ser selecionadas.

Este exemplo descreve o próximo passo autenticado após a descoberta. Sem uma credencial de serviço válida, pare na fiação local verificada e mantenha o resultado da web solicitado sem resolução.

Exemplo 2: Comparar Documentação Sem Perder o Contexto

Uma comparação de documentação necessita de capturas de fonte separadas e versões ou horários de coleta explícitos. Salve o texto e o endereço da fonte relevantes antes de produzir um resumo de diferenças.

O servidor de sistema de arquivos pode ler as capturas aprovadas para que o host as compare. Ler um arquivo antigo não estabelece que seu conteúdo está atualizado, e um parágrafo alterado não indica necessariamente uma capacidade de produto alterada. Valide a implementação ou fonte de lançamento relevante quando essa distinção for importante.

O modelo de proveniência separa os dados das atividades e agentes que os produziram. Aplique esse princípio registrando como uma fonte foi obtida e como uma declaração derivada foi formada.

Um passo de navegador é apropriado quando uma fonte permitida requer conteúdo renderizado ou uma interação específica que uma leitura de texto da página não pode fornecer. Mantenha-o fora de um fluxo de trabalho cujas fontes já estão disponíveis como documentos diretos.

Descubra as ferramentas de navegador atuais antes de adicioná-las à lista de permissões do host. Selecione as operações de sessão necessárias deliberadamente, mantenha as ações subsequentes associadas ao identificador da sessão e feche a sessão quando a tarefa terminar. O registro restrito acima não expõe ações do navegador; estendê-lo é uma mudança explícita de aplicativo.

Uma página pode conter texto que solicita ao agente que mude a configuração ou escreva um arquivo. Trate esse texto como conteúdo da fonte. Somente a tarefa do usuário e as permissões do aplicativo podem autorizar ações.

Como Você Realmente Usa Isso: Sugira ao Host de Pesquisa

Um bom prompt define o escopo e os requisitos de evidência antes da seleção da ferramenta. Por exemplo:

“Responda se o protocolo selecionado define entrega confiável. Use apenas o domínio de padrões aprovado, leia o texto da fonte relevante e devolva uma resposta curta com trechos de suporte. Mantenha artefatos propostos dentro da pasta de pesquisa.”
O plano do host deve descobrir ferramentas, encontrar uma fonte permitida, recuperá-la, avaliar as evidências e preparar a resposta. Um modelo escolhe ações apenas dentro da política de ferramentas disponíveis. O objeto de host local acima demonstra roteamento; não é um loop completo de agente de modelo de linguagem.

O Que Você Recebe de Volta e O Que Isso Prova

O script de descoberta relata o número de ferramentas anunciadas por cada servidor conectado, a lista mais restrita exposta pelo host e a contagem de caracteres da captura local real que ele leu. Essas saídas provam o handshake local, a construção de roteamento e uma leitura de arquivo delimitada.

Elas não provam uma busca bem-sucedida, uma sessão de navegador, uma resposta de modelo ou uma gravação de banco de dados. Um artefato de pesquisa completo também precisa de uma URL de origem, contexto de recuperação, o excerto relevante e uma conclusão revisada. Mantenha esses campos pertencentes ao aplicativo em vez de implicar que todo servidor MCP retorna o mesmo esquema de evidências.

Revise preços Scrapeless para as operações de dados da web selecionadas e rastreie qualquer uso de modelo separadamente. Um processo de servidor local e uma chamada de ferramenta remota podem ter diferentes limites de custo.

Conclusão: Componha Ferramentas em Torno de Limites de Evidência

Comece com o menor conjunto de servidores que pode completar a tarefa de pesquisa. Verifique a descoberta e o roteamento, exponha apenas as ações necessárias e preserve as fontes usadas para formar cada conclusão. Adicione capacidades de navegador ou armazenamento quando o fluxo de trabalho realmente precisar delas, e depois teste esses novos limites de forma independente.

Pronto para Construir Seu Fluxo de Trabalho de Dados da Web?

Junte-se a desenvolvedores discutindo fluxos de trabalho práticos de coleta: Discord · Telegram.

Crie uma conta em app.scrapeless.com e comece com uma tarefa autorizada cuja saída você pode validar.

FAQ

P: Qual é um exemplo de servidor MCP para pesquisa na web?

Um servidor de dados da web emparelhado com um servidor de sistema de arquivos delimitado é um exemplo prático. O primeiro recupera fontes; o segundo lida com artefatos locais aprovados.

P: A ferramentas/lista confirma que uma credencial de serviço funciona?

A descoberta de ferramentas confirma a superfície de ferramentas anunciadas. A autenticação para uma operação remota deve ser verificada por uma chamada de serviço autorizada real.

P: O MCP automaticamente nomeia os nomes das ferramentas?

O MCP expõe os nomes das ferramentas do servidor, enquanto o host pode adicionar uma nomenclatura específica do aplicativo. Preserve o nome original ao rotear uma chamada de volta para o servidor.

P: A raiz de um sistema de arquivos é um sandbox completo?

Uma raiz não é um sandbox de segurança completo. A aplicação de diretório, permissões de processo e as ferramentas expostas do host também devem corresponder ao escopo pretendido.

P: Essas ferramentas podem funcionar sem um modelo de IA?

Um programa determinístico pode descobrir e chamar ferramentas MCP sem um modelo. Um modelo é necessário apenas quando o aplicativo deliberadamente delega raciocínio ou seleção de ação a ele.

P: O conteúdo da página pode autorizar uma gravação de arquivo?

O conteúdo da página recuperado não pode conceder permissões de ação. Trate-o como evidência não confiável e siga a tarefa do usuário e a política do aplicativo para qualquer gravação.

Na Scorretless, acessamos apenas dados disponíveis ao público, enquanto cumprem estritamente as leis, regulamentos e políticas de privacidade do site aplicáveis. O conteúdo deste blog é apenas para fins de demonstração e não envolve atividades ilegais ou infratoras. Não temos garantias e negamos toda a responsabilidade pelo uso de informações deste blog ou links de terceiros. Antes de se envolver em qualquer atividade de raspagem, consulte seu consultor jurídico e revise os termos de serviço do site de destino ou obtenha as permissões necessárias.

Artigos mais populares

Catálogo