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ásicocrawl_stealth- Raspado en modo sigilosocrawl_with_geolocation- Raspado con suplantación de ubicación geográficacrawl_with_retry- Raspado con mecanismo de reintentoscrawl_with_intelligence- Modo de raspado inteligente
⚙️ Herramientas de gestión de configuración
configure_crawl_settings- Configuración de parámetros de raspadoquick_config_content_limit- Configuración rápida de límites de visualización de contenidoquick_config_word_threshold- Configuración rápida de umbral de recuento de palabrassystem_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 MCPintent_analyzer.py- Analiza la intención del usuario, soporta múltiples tipos de intención como búsqueda, raspado e investigacióncrawl_config_manager.py- Gestiona la configuración de raspado, soporta ajuste dinámico de parámetros en tiempo de ejecucióncrawl_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)
- Función relacionada:
- 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
- Enumeraciones relacionadas:
- Evaluación de confianza: Proporciona puntuaciones de confianza para cada análisis de intención
- Clase relacionada:
UserIntent(incluye el campo confidence)
- Clase relacionada:
⚙️ 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()
- Funciones relacionadas:
- 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)
- Función relacionada:
- Persistencia de configuración: Guarda automáticamente las preferencias de configuración del usuario
- Archivo de configuración:
v9_config/crawl_config.json
- Archivo de configuración:
- Herramientas de configuración rápida: Proporciona interfaces convenientes para ajuste de parámetros
- Funciones relacionadas:
quick_config_content_limit(),quick_config_word_threshold()
- Funciones relacionadas:
- Entorno virtual automático: Activa automáticamente el entorno virtual del proyecto al iniciar
- Función relacionada:
activate_virtual_environment()(server_v9.py)
- Función relacionada:
- 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()
- Funciones relacionadas:
- Procesamiento inteligente de contenido: Filtra automáticamente el ruido y extrae el contenido principal
- Función relacionada:
crawl_with_intelligence()
- Función relacionada:
- Procesamiento por lotes: Soporta raspado concurrente de múltiples URL
- Función relacionada:
crawl_multiple()(si existe)
- Función relacionada:
🎓 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()
- Función relacionada:
- Raspado profundo: Soporta extracción profunda de contenido de los resultados de búsqueda
- Parámetro:
deep_crawl_countenacademic_search()
- Parámetro:
- 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()
- Función relacionada:
- Monitoreo del estado del sistema: Monitoreo en tiempo real del estado y rendimiento del servidor
- Función relacionada:
system_status()
- Función relacionada:
⚙️ 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
-
No se encuentra el comando mcp
# 确保虚拟环境已激活 source .venv/bin/activate which mcp -
Error de configuración de ruta
# 获取正确的绝对路径 cd context-scraper-mcp-server pwd -
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
- Crawl4AI - Potente biblioteca de raspado web
- Model Context Protocol - Estándar de integración de herramientas de IA