Crawl MCP
Um servidor MCP para crawling de artigos do WeChat. Suporta crawling único e em lote com múltiplos formatos de saída, projetado para ferramentas de IA como Cursor.
Documentação
Crawl-MCP Server
🚀 Ferramenta de extração de artigos do WeChat que realmente baixa imagens - Servidor de extração inteligente baseado no Model Context Protocol (MCP), projetado para Cursor IDE e ferramentas de IA.
🎉 Grande atualização v1.1.0: de "gerador de instruções" para "ferramenta de download real", com suporte completo à localização de imagens!
✨ Principais recursos
🎯 Funcionalidades principais (v1.1.0)
- Download real de imagens: ✅ Baixa imagens do WeChat de verdade, não apenas gera instruções
- Design de modo duplo: modo instrução (para aprendizado) + modo automático (para eficiência)
- Localização completa: download de imagens + atualização de caminhos + documentos Markdown utilizáveis offline
- Processamento inteligente: reconhecimento de domínio do WeChat, Headers corretos, controle de concorrência, mecanismo de tentativas
🔧 Recursos técnicos (v1.1.0)
- Processamento profissional de imagens:
- 🎯 Reconhecimento de domínio de imagens do WeChat (mmbiz.qpic.cn)
- 🎯 Headers HTTP corretos (Referer, User-Agent)
- 🎯 Processamento de parâmetros wx_fmt (jpeg, png, gif)
- 🎯 Controle de concorrência (download simultâneo de 3) + mecanismo de tentativas
- Suporte ao protocolo MCP: implementação completa do Model Context Protocol
- Arquitetura modular: ImageDownloader + ArticleProcessor + CrawlTool
- Suporte a TypeScript: definições de tipos completas e suporte a compilação
- Node.js 18+: usa a API fetch integrada, sem dependência de bibliotecas HTTP adicionais
🎮 Integração com Cursor IDE
- Instalação com um clique:
npx crawl-mcp-server@1.1.0 - Pronto para uso: sem configuração complexa, utilizável diretamente
- Suporte a ferramentas de IA: use IA diretamente no Cursor para extração completa
- Reconhecimento automático de ferramentas: o Agent chama automaticamente as ferramentas de extração relevantes
🚀 Início rápido
💻 Instalação e uso
Método 1: Executar diretamente com npx (recomendado)
# 使用最新的v1.1.0版本
npx crawl-mcp-server@1.1.0
Método 2: Instalação global
npm install -g crawl-mcp-server@1.1.0
crawl-mcp-server
Método 3: Instalação local no projeto
npm install crawl-mcp-server@1.1.0
npx crawl-mcp-server
💡 Dica: recomenda-se usar a versão
@1.1.0para garantir os recursos mais recentes de download de imagens
🔌 Configuração do Cursor IDE
-
Crie o arquivo de configuração MCP Crie
.cursor/mcp.jsonna raiz do projeto:{ "mcpServers": { "crawl-mcp": { "command": "npx", "args": ["-y", "crawl-mcp-server@1.1.0"], "env": { "NODE_ENV": "production" } } } } -
Reinicie o Cursor Reinicie o Cursor para que a configuração tenha efeito
-
Comece a usar Use o assistente de IA diretamente no Cursor para extração de páginas da web:
Modo instrução (recomendado para aprendizado):
请使用crawl mcp抓取这篇微信文章:https://mp.weixin.qq.com/s/xxxxxModo automático (prioriza eficiência):
我已经获取了HTML内容,请使用crawl mcp自动模式处理并下载图片
🛠️ Descrição das ferramentas MCP
1. crawl_wechat_article
Ferramenta de extração de artigo único
Parâmetros:
url(obrigatório): link do artigo do WeChatoutputFormat(opcional): formato de saída (markdown/json/html, padrão: markdown)strategy(opcional): estratégia de extração (basic/conservative/fast, padrão: basic)includeImages(opcional): se inclui imagens (padrão: true)
Exemplo:
{
"url": "https://mp.weixin.qq.com/s/example123",
"outputFormat": "markdown",
"strategy": "basic",
"includeImages": true
}
2. crawl_wechat_batch
Ferramenta de extração em lote de artigos
Parâmetros:
urls(obrigatório): array de links de artigosoutputFormat(opcional): formato de saídastrategy(opcional): estratégia de extraçãomaxConcurrent(opcional): número máximo de concorrência (padrão: 3)
Exemplo:
{
"urls": [
"https://mp.weixin.qq.com/s/example1",
"https://mp.weixin.qq.com/s/example2"
],
"outputFormat": "markdown",
"maxConcurrent": 2
}
3. crawl_get_status
Ferramenta de consulta de status
Parâmetros:
sessionId(opcional): ID da sessão; se não fornecido, retorna o status de todas as sessões
⚙️ Explicação das estratégias de extração
| Estratégia | Velocidade | Estabilidade | Cenário de uso |
|---|---|---|---|
| fast | ⚡ Mais rápido | 🔸 Normal | Rede boa, página simples |
| basic | 🚀 Médio | ⭐ Equilibrado | Na maioria dos casos (recomendado) |
| conservative | 🐌 Mais lento | 💎 Mais estável | Rede instável, páginas complexas |
📦 Estrutura do projeto
crawl-mcp/
├── src/
│ ├── core/ # 核心模块
│ │ ├── CrawlMCPServer.ts # MCP服务器
│ │ ├── CallOrchestrator.ts # 调用编排器
│ │ └── StateManager.ts # 状态管理
│ ├── adapters/ # 输出适配器
│ │ ├── MCPOutputAdapter.ts # MCP格式转换
│ │ └── FileOutputAdapter.ts # 文件输出
│ ├── clients/ # 客户端
│ │ └── PlaywrightMCPClient.ts # Playwright客户端
│ ├── processors/ # 内容处理器
│ │ ├── ContentExtractor.ts # 内容提取
│ │ ├── MarkdownConverter.ts # Markdown转换
│ │ └── ImageProcessor.ts # 图片处理
│ ├── tools/ # MCP工具定义
│ ├── types/ # TypeScript类型
│ └── utils/ # 工具函数
├── docs/ # 文档
├── examples/ # 示例代码
└── tests/ # 测试文件
🧪 Desenvolvimento e testes
Instalar dependências
pnpm install
Compilar o projeto
pnpm build
Executar testes
pnpm test
Desenvolvimento local
pnpm dev
📊 Cobertura de testes
- ✅ 25 testes todos aprovados
- 🧪 Testes unitários: verificação de funcionalidade dos componentes principais
- 🔗 Testes de integração: testes de integridade do protocolo MCP
- 📋 Testes de configuração: verificação de todos os arquivos de configuração
🤝 Guia de contribuição
- Faça um fork deste repositório
- Crie seu branch de recurso (
git checkout -b feature/AmazingFeature) - Faça commit das suas alterações (
git commit -m 'Add some AmazingFeature') - Envie para o branch (
git push origin feature/AmazingFeature) - Abra um Pull Request
📄 Licença
Este projeto é licenciado sob a licença MIT - consulte o arquivo LICENSE para obter detalhes.
🔗 Links relacionados
- 📦 Pacote NPM
- 🐙 Repositório GitHub
- 📖 Documentação da API
- 🛠️ Solução de problemas
- 📋 Guia de lançamento
📞 Suporte
Se você encontrar algum problema ou tiver sugestões, por favor:
- 🐛 Abra uma Issue
- 💬 Participe da discussão
- 📧 Entre em contato com o desenvolvedor
⭐ Se este projeto foi útil para você, dê-nos uma estrela!
Feito com ❤️ por wutongci