Context Scraper MCP Server

Un servidor para rastreo web y extracción de contenido utilizando la librería Crawl4AI.

Documentación

Context Scraper MCP Server

Un servidor Model Context Protocol (MCP) basado en Crawl4AI que proporciona potentes capacidades de raspado web, búsqueda académica e investigación inteligente para Amazon Q Developer y otras herramientas de IA.

🚀 Características principales

  • Raspado web inteligente: Soporta múltiples modos de raspado, incluyendo básico, sigiloso y suplantación de ubicación geográfica
  • Motor de búsqueda académica: Integra Google Scholar, arXiv, PubMed y otras bases de datos académicas
  • Gestión inteligente de configuración: Sistema de configuración flexible con ajustes en tiempo de ejecución
  • Análisis de IA experimental: Integración opcional con la API de Claude para análisis avanzado de contenido

📦 Instalación

Requisitos previos

  • Python 3.12+
  • uv (recomendado) o pip

Método 1: Usar 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: Usar 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

Acerca de uv

Recomendamos usar uv - un gestor de paquetes de Python moderno construido en Rust:

  • ⚡ Rápido: 10-100 veces más rápido que pip tradicional
  • 🛡️ Confiabilidad: Mejor resolución de dependencias y detección de conflictos
  • 🎯 Recomendado por MCP: Herramienta estándar recomendada por el SDK de Python de MCP

Instalación de 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

🔧 Configuración de MCP

Configuración de Amazon Q Developer

Agrega la siguiente configuración al archivo ~/.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: Reemplaza /absolute/path/to/context-scraper-mcp-server con la ruta real de tu proyecto.

Obtener la ruta absoluta del proyecto

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

Verificar la configuración

Después de iniciar Amazon Q Developer, deberías ver la herramienta ContextScraper disponible. Puedes probarla con el siguiente comando:

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

🛠️ Herramientas principales

🎓 Herramienta de búsqueda académica

  • academic_search - Búsqueda académica de múltiples fuentes (Google Scholar, arXiv, PubMed)

🕷️ Herramientas de raspado web

  • crawl - Raspado web básico
  • crawl_stealth - Raspado en modo sigiloso
  • crawl_with_geolocation - Raspado con suplantación de ubicación geográfica
  • crawl_with_retry - Raspado con mecanismo de reintentos
  • crawl_with_intelligence - Modo de raspado inteligente

⚙️ Herramientas de gestión de configuración

  • configure_crawl_settings - Configuración de parámetros de raspado
  • quick_config_content_limit - Configuración rápida de límites de visualización de contenido
  • quick_config_word_threshold - Configuración rápida de umbral de recuento de palabras
  • system_status - Monitoreo del estado del sistema

🔬 Herramientas experimentales

  • experimental_claude_analysis - Análisis de contenido con Claude AI (requiere configuración de API)

💡 Ejemplos de uso

Búsqueda 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")

Raspado 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)

Gestión de configuración

# 快速设置内容显示限制
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 experimentales

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

📁 Estructura del proyecto

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                 # 📖 项目说明文档

🔗 Dependencias del Server V9

Estructura de dependencias principales

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 de los módulos

  • server_v9.py - Servidor principal, integra todas las funcionalidades V9 y proporciona la interfaz de herramientas MCP
  • intent_analyzer.py - Analiza la intención del usuario, soporta múltiples tipos de intención como búsqueda, raspado e investigación
  • crawl_config_manager.py - Gestiona la configuración de raspado, soporta ajuste dinámico de parámetros en tiempo de ejecución
  • crawl_config.json - Almacena preferencias del usuario y configuración del sistema

🚀 Funcionalidades principales de V9

🎯 Análisis inteligente de intención

  • Reconocimiento de múltiples intenciones: Identifica automáticamente tipos de intención como búsqueda, raspado, investigación, extracción, monitoreo y comparación
    • Función relacionada: analyze_user_intent() (v9_core/intent_analyzer.py)
  • Selección inteligente del motor de búsqueda: Soporta tres modos: especificación explícita, preferencia implícita y selección automática
    • Enumeraciones relacionadas: SearchEngineIntent, IntentType
  • Evaluación de confianza: Proporciona puntuaciones de confianza para cada análisis de intención
    • Clase relacionada: UserIntent (incluye el campo confidence)

⚙️ Gestión dinámica de configuración

  • Configuración en tiempo de ejecución: Ajusta los parámetros de raspado sin necesidad de reiniciar
    • Funciones relacionadas: configure_crawl_settings(), reload_crawl_config()
  • Configuración por capas: Gestión separada de límites de contenido, control de calidad, control de tiempo y preferencias del usuario
    • Función relacionada: get_crawl_config() (v9_core/crawl_config_manager.py)
  • Persistencia de configuración: Guarda automáticamente las preferencias de configuración del usuario
    • Archivo de configuración: v9_config/crawl_config.json
  • Herramientas de configuración rápida: Proporciona interfaces convenientes para ajuste de parámetros
    • Funciones relacionadas: quick_config_content_limit(), quick_config_word_threshold()
  • Entorno virtual automático: Activa automáticamente el entorno virtual del proyecto al iniciar
    • Función relacionada: activate_virtual_environment() (server_v9.py)
  • Corrección del directorio de trabajo: Cambia automáticamente al directorio de trabajo correcto
    • Ubicación de implementación: script de inicio server_v9.py

🕷️ Capacidades de raspado mejoradas

  • Raspado multimodo: Básico, sigiloso, suplantación de ubicación geográfica y mecanismo de reintentos
    • Funciones relacionadas: crawl(), crawl_stealth(), crawl_with_geolocation(), crawl_with_retry()
  • Procesamiento inteligente de contenido: Filtra automáticamente el ruido y extrae el contenido principal
    • Función relacionada: crawl_with_intelligence()
  • Procesamiento por lotes: Soporta raspado concurrente de múltiples URL
    • Función relacionada: crawl_multiple() (si existe)

🎓 Integración de búsqueda académica

  • Múltiples fuentes de datos: Google Scholar, arXiv, PubMed y otras bases de datos académicas
    • Función relacionada: academic_search()
  • Raspado profundo: Soporta extracción profunda de contenido de los resultados de búsqueda
    • Parámetro: deep_crawl_count en academic_search()
  • Optimización de resultados: Deduplicación inteligente y estructuración de contenido
    • Integrado en la función de búsqueda académica

🔧 Funcionalidades experimentales

  • Análisis con Claude AI: Integración opcional con la API de Claude para análisis avanzado de contenido
    • Función relacionada: experimental_claude_analysis()
  • Monitoreo del estado del sistema: Monitoreo en tiempo real del estado y rendimiento del servidor
    • Función relacionada: system_status()

⚙️ Configuración avanzada

Configuración de la API de Claude (opcional)

Si necesitas usar las funcionalidades de la API de Claude, puedes 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
  }
}

Configuración de raspado

Edita v9_config/crawl_config.json para ajustar los parámetros de raspado:

{
  "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
  }
}

🎯 Casos de uso

  • Investigación académica: Búsqueda de literatura, análisis de artículos, seguimiento de citas
  • Investigación de mercado: Análisis de competencia, informes de la industria, monitoreo de tendencias
  • Documentación técnica: Organización de documentación de API, recopilación de material técnico
  • Creación de contenido: Recopilación de material, verificación de hechos, descubrimiento de inspiración

🔧 Solución de problemas

Problemas comunes

  1. No se encuentra el comando mcp

    # 确保虚拟环境已激活
    source .venv/bin/activate
    which mcp
    
  2. Error de configuración de ruta

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

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

Probar la conexión

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

🤝 Contribuciones

¡Las contribuciones son bienvenidas! Envía Issues y Pull Requests.

📄 Licencia

Este proyecto está bajo la licencia MIT.

🙏 Agradecimientos

📚 Enlaces relacionados