Context Scraper MCP Server

Um servidor para crawling web e extração de conteúdo usando a biblioteca Crawl4AI.

Documentação

Context Scraper MCP Server

Um servidor Model Context Protocol (MCP) baseado em Crawl4AI, que fornece recursos poderosos de raspagem de páginas web, busca acadêmica e pesquisa inteligente para o Amazon Q Developer e outras ferramentas de IA.

🚀 Recursos Principais

  • Raspagem inteligente de páginas web: Suporta vários modos de raspagem, como básico, stealth e disfarce de localização geográfica
  • Mecanismo de busca acadêmica: Integra bancos de dados acadêmicos como Google Scholar, arXiv e PubMed
  • Gerenciamento inteligente de configuração: Sistema de configuração flexível com suporte a ajustes em tempo de execução
  • Análise de IA experimental: Integração opcional com a API Claude para análise avançada de conteúdo

📦 Instalação

Pré-requisitos

  • Python 3.12+
  • uv (recomendado) ou pip

Método 1: Usando uv (recomendado)

# 1. 克隆项目
git clone https://github.com/ddipass/context-scraper-mcp-server.git
cd context-scraper-mcp-server

# 2. 使用 uv 同步依赖
uv sync

# 3. 激活虚拟环境
source .venv/bin/activate

# 4. 运行 Crawl4AI 设置
crawl4ai-setup

Método 2: Usando pip tradicional

# 1. 克隆项目
git clone https://github.com/ddipass/context-scraper-mcp-server.git
cd context-scraper-mcp-server

# 2. 创建虚拟环境
python -m venv .venv
source .venv/bin/activate  # Linux/macOS
# 或 .venv\Scripts\activate  # Windows

# 3. 安装项目依赖
pip install -e .

# 4. 安装浏览器依赖
python -m playwright install chromium

# 5. 运行 Crawl4AI 设置
crawl4ai-setup

Sobre o uv

Recomendamos usar uv - um gerenciador de pacotes Python moderno construído em Rust:

  • ⚡ Rápido: 10 a 100 vezes mais rápido que o pip tradicional
  • 🛡️ Confiável: Melhor resolução de dependências e detecção de conflitos
  • 🎯 Recomendado oficialmente pelo MCP: Ferramenta padrão recomendada pelo Python MCP SDK

Instalando o uv:

# macOS/Linux
curl -LsSf https://astral.sh/uv/install.sh | sh

# Windows
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"

# 或使用 pip
pip install uv

🔧 Configuração do MCP

Configuração do Amazon Q Developer

Adicione a seguinte configuração no arquivo ~/.aws/amazonq/mcp.json:

{
  "mcpServers": {
    "ContextScraper": {
      "command": "/absolute/path/to/context-scraper-mcp-server/.venv/bin/mcp",
      "args": [
        "run",
        "/absolute/path/to/context-scraper-mcp-server/server_v9.py"
      ],
      "cwd": "/absolute/path/to/context-scraper-mcp-server"
    }
  }
}

Importante: Substitua /absolute/path/to/context-scraper-mcp-server pelo caminho real do seu projeto.

Obtendo o caminho absoluto do projeto

cd context-scraper-mcp-server
pwd
# 将输出的路径复制到配置文件中

Verificando a configuração

Após iniciar o Amazon Q Developer, você deve ver a ferramenta ContextScraper disponível. Você pode testar com o seguinte comando:

使用 system_status 工具检查服务器状态

🛠️ Principais Ferramentas

🎓 Ferramentas de Busca Acadêmica

  • academic_search - Busca acadêmica em múltiplas fontes (Google Scholar, arXiv, PubMed)

🕷️ Ferramentas de Raspagem de Páginas Web

  • crawl - Raspagem básica de páginas web
  • crawl_stealth - Raspagem em modo stealth
  • crawl_with_geolocation - Raspagem com disfarce de localização geográfica
  • crawl_with_retry - Raspagem com mecanismo de nova tentativa
  • crawl_with_intelligence - Modo de raspagem inteligente

⚙️ Ferramentas de Gerenciamento de Configuração

  • configure_crawl_settings - Configuração de parâmetros de raspagem
  • quick_config_content_limit - Configuração rápida do limite de exibição de conteúdo
  • quick_config_word_threshold - Configuração rápida do limite de contagem de palavras
  • system_status - Monitoramento do status do sistema

🔬 Ferramentas Experimentais

  • experimental_claude_analysis - Análise de conteúdo com Claude AI (requer configuração da API)

💡 Exemplos de Uso

Busca Acadêmica

# 在 arXiv 搜索机器学习论文
result = await academic_search("machine learning transformers", "arxiv")

# 在 PubMed 搜索医学文献
result = await academic_search("COVID-19 vaccine effectiveness", "pubmed")

# 在 Google Scholar 搜索
result = await academic_search("climate change", "google_scholar")

Raspagem de Páginas Web

# 基础爬取
result = await crawl("https://example.com")

# 隐身模式爬取
result = await crawl_stealth("https://protected-site.com")

# 智能爬取
result = await crawl_with_intelligence("https://news-site.com", "smart")

# 地理位置伪装爬取
result = await crawl_with_geolocation("https://geo-restricted.com", "newyork")

# 重试机制爬取
result = await crawl_with_retry("https://unstable-site.com", max_retries=3)

Gerenciamento de Configuração

# 快速设置内容显示限制
result = await quick_config_content_limit(5000)

# 快速设置词数阈值
result = await quick_config_word_threshold(100)

# 查看系统状态
result = await system_status()

# 配置爬取参数
result = await configure_crawl_settings("update", "content_limits", markdown_display_limit=8000)

Funcionalidades Experimentais

# Claude AI 内容分析 (需要配置API)
result = await experimental_claude_analysis("分析这段文本的主要观点", "general", enable_claude=True)

📁 Estrutura do Projeto

context-scraper-mcp-server/
├── server_v9.py              # 🚀 主服务器文件 (当前版本)
├── server_v8.py              # V8 版本服务器
├── server_v7.py              # V7 版本服务器
├── v9_core/                  # 🧠 V9 核心模块
│   ├── intent_analyzer.py    #   🎯 用户意图分析引擎
│   ├── crawl_config_manager.py #   ⚙️ 爬取配置管理器
│   └── config_manager.py     #   📋 通用配置管理器
├── v9_config/                # 📋 V9 配置文件
│   └── crawl_config.json     #   🔧 爬取参数配置
├── config/                   # 🗂️ 通用配置目录
│   ├── claude_config_example.json # Claude API 配置示例
│   └── v6_config/            #   历史版本配置
├── docs/                     # 📚 文档目录
│   ├── architecture/         #   🏗️ 架构文档
│   ├── development/          #   🔧 开发文档
│   └── versions/             #   📋 版本文档
├── legacy/                   # 📦 历史版本和备份
├── .venv/                    # 🐍 Python 虚拟环境
├── pyproject.toml            # 📋 项目配置文件
├── uv.lock                   # 🔒 依赖锁定文件
└── README.md                 # 📖 项目说明文档

🔗 Dependências do Server V9

Estrutura de Dependências Principais

server_v9.py (主服务器)
├── v9_core/
│   ├── intent_analyzer.py    # 用户意图分析 (独立模块)
│   └── crawl_config_manager.py # 爬取配置管理 (独立模块)
├── v9_config/
│   └── crawl_config.json     # 配置文件 (JSON格式)
└── 外部依赖
    ├── crawl4ai             # 网页爬取引擎
    ├── mcp                  # Model Context Protocol
    └── aiohttp              # 异步HTTP客户端

Responsabilidades dos Módulos

  • server_v9.py - Servidor principal, integra todos os recursos V9 e fornece a interface de ferramentas MCP
  • intent_analyzer.py - Analisa a intenção do usuário, suporta vários tipos de intenção, como busca, raspagem e pesquisa
  • crawl_config_manager.py - Gerencia a configuração de raspagem, suporta ajuste dinâmico de parâmetros em tempo de execução
  • crawl_config.json - Armazena preferências do usuário e configurações do sistema

🚀 Recursos Principais do V9

🎯 Análise Inteligente de Intenção

  • Reconhecimento de múltiplas intenções: Identifica automaticamente tipos de intenção como busca, raspagem, pesquisa, extração, monitoramento e comparação
    • Função relacionada: analyze_user_intent() (v9_core/intent_analyzer.py)
  • Seleção inteligente do mecanismo de busca: Suporta três modos: especificação explícita, preferência implícita e seleção automática
    • Enumerações relacionadas: SearchEngineIntent, IntentType
  • Avaliação de confiança: Fornece uma pontuação de confiança para cada análise de intenção
    • Classe relacionada: UserIntent (contém o campo confidence)

⚙️ Gerenciamento Dinâmico de Configuração

  • Configuração em tempo de execução: Ajusta parâmetros de raspagem sem reiniciar
    • Funções relacionadas: configure_crawl_settings(), reload_crawl_config()
  • Configuração em camadas: Gerenciamento separado de limites de conteúdo, controle de qualidade, controle de tempo e preferências do usuário
    • Função relacionada: get_crawl_config() (v9_core/crawl_config_manager.py)
  • Persistência de configuração: Salva automaticamente as preferências de configuração do usuário
    • Arquivo de configuração: v9_config/crawl_config.json
  • Ferramentas de configuração rápida: Fornece interfaces convenientes para ajuste de parâmetros
    • Funções relacionadas: quick_config_content_limit(), quick_config_word_threshold()
  • Ambiente virtual automático: Ativa automaticamente o ambiente virtual do projeto na inicialização
    • Função relacionada: activate_virtual_environment() (server_v9.py)
  • Correção do diretório de trabalho: Alterna automaticamente para o diretório de trabalho correto
    • Local de implementação: script de inicialização server_v9.py

🕷️ Capacidades Aprimoradas de Raspagem

  • Raspagem em múltiplos modos: básico, stealth, disfarce de localização geográfica e mecanismo de nova tentativa
    • Funções relacionadas: crawl(), crawl_stealth(), crawl_with_geolocation(), crawl_with_retry()
  • Processamento inteligente de conteúdo: Filtra automaticamente ruídos e extrai o conteúdo principal
    • Função relacionada: crawl_with_intelligence()
  • Processamento em lote: Suporta raspagem simultânea de múltiplas URLs
    • Função relacionada: crawl_multiple() (se existir)

🎓 Integração de Busca Acadêmica

  • Múltiplas fontes de dados: Bancos de dados acadêmicos como Google Scholar, arXiv e PubMed
    • Função relacionada: academic_search()
  • Raspagem profunda: Suporta extração profunda de conteúdo dos resultados de busca
    • Parâmetro: deep_crawl_count em academic_search()
  • Otimização de resultados: Deduplicação inteligente e estruturação de conteúdo
    • Integrado às funções de busca acadêmica

🔧 Funcionalidades Experimentais

  • Análise com Claude AI: Integração opcional com a API Claude para análise avançada de conteúdo
    • Função relacionada: experimental_claude_analysis()
  • Monitoramento do status do sistema: Monitora em tempo real o status e o desempenho do servidor
    • Função relacionada: system_status()

⚙️ Configuração Avançada

Configuração da API Claude (Opcional)

Se precisar usar os recursos da API Claude, você pode configurar config/claude_config_example.json:

{
  "claude_api": {
    "api_key": "your-api-key-here",
    "base_url": "https://api.anthropic.com",
    "model": "claude-3-sonnet-20240229",
    "enabled": false,
    "timeout": 30,
    "max_tokens": 4000,
    "temperature": 0.7
  }
}

Configuração de Raspagem

Edite v9_config/crawl_config.json para ajustar os parâmetros de raspagem:

{
  "content_limits": {
    "markdown_display_limit": 3000,
    "word_count_threshold": 50
  },
  "quality_control": {
    "min_content_length": 100,
    "enable_content_filtering": true
  },
  "user_preferences": {
    "show_word_count": true,
    "show_crawl_info": true
  }
}

🎯 Cenários de Uso

  • Pesquisa acadêmica: Busca de literatura, análise de artigos e rastreamento de citações
  • Pesquisa de mercado: Análise de concorrência, relatórios do setor e monitoramento de tendências
  • Documentação técnica: Organização de documentação de API e coleta de materiais técnicos
  • Criação de conteúdo: Coleta de materiais, verificação de fatos e descoberta de inspiração

🔧 Solução de Problemas

Problemas Comuns

  1. Comando mcp não encontrado

    # 确保虚拟环境已激活
    source .venv/bin/activate
    which mcp
    
  2. Erro de configuração de caminho

    # 获取正确的绝对路径
    cd context-scraper-mcp-server
    pwd
    
  3. Problemas de permissão

    # 检查文件权限
    ls -la ~/.aws/amazonq/mcp.json
    chmod 644 ~/.aws/amazonq/mcp.json
    

Testando a Conexão

# 直接运行服务器测试
cd context-scraper-mcp-server
source .venv/bin/activate
.venv/bin/mcp run server_v9.py

🤝 Contribuições

Sinta-se à vontade para enviar Issues e Pull Requests!

📄 Licença

Este projeto é licenciado sob a licença MIT.

🙏 Agradecimentos

📚 Links Relacionados