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 webcrawl_stealth- Raspagem em modo stealthcrawl_with_geolocation- Raspagem com disfarce de localização geográficacrawl_with_retry- Raspagem com mecanismo de nova tentativacrawl_with_intelligence- Modo de raspagem inteligente
⚙️ Ferramentas de Gerenciamento de Configuração
configure_crawl_settings- Configuração de parâmetros de raspagemquick_config_content_limit- Configuração rápida do limite de exibição de conteúdoquick_config_word_threshold- Configuração rápida do limite de contagem de palavrassystem_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 MCPintent_analyzer.py- Analisa a intenção do usuário, suporta vários tipos de intenção, como busca, raspagem e pesquisacrawl_config_manager.py- Gerencia a configuração de raspagem, suporta ajuste dinâmico de parâmetros em tempo de execuçãocrawl_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)
- Função relacionada:
- 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
- Enumerações relacionadas:
- 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)
- Classe relacionada:
⚙️ 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()
- Funções relacionadas:
- 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)
- Função relacionada:
- 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
- Arquivo de configuração:
- 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()
- Funções relacionadas:
- Ambiente virtual automático: Ativa automaticamente o ambiente virtual do projeto na inicialização
- Função relacionada:
activate_virtual_environment()(server_v9.py)
- Função relacionada:
- 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()
- Funções relacionadas:
- Processamento inteligente de conteúdo: Filtra automaticamente ruídos e extrai o conteúdo principal
- Função relacionada:
crawl_with_intelligence()
- Função relacionada:
- Processamento em lote: Suporta raspagem simultânea de múltiplas URLs
- Função relacionada:
crawl_multiple()(se existir)
- Função relacionada:
🎓 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()
- Função relacionada:
- Raspagem profunda: Suporta extração profunda de conteúdo dos resultados de busca
- Parâmetro:
deep_crawl_countemacademic_search()
- Parâmetro:
- 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()
- Função relacionada:
- Monitoramento do status do sistema: Monitora em tempo real o status e o desempenho do servidor
- Função relacionada:
system_status()
- Função relacionada:
⚙️ 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
-
Comando mcp não encontrado
# 确保虚拟环境已激活 source .venv/bin/activate which mcp -
Erro de configuração de caminho
# 获取正确的绝对路径 cd context-scraper-mcp-server pwd -
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
- Crawl4AI - Poderosa biblioteca de raspagem de páginas web
- Model Context Protocol - Padrão de integração de ferramentas de IA