Crawl MCP
Un servidor MCP para rastrear artículos de WeChat. Admite rastreo individual y por lotes con múltiples formatos de salida, diseñado para herramientas de IA como Cursor.
Documentación
Servidor Crawl-MCP
🚀 Herramienta de extracción de artículos de WeChat que realmente descarga imágenes - Servidor de extracción inteligente basado en el Protocolo de Contexto de Modelo (MCP), diseñado para Cursor IDE y herramientas de IA.
🎉 Actualización importante v1.1.0: ¡Actualizado de "generador de instrucciones" a "herramienta de descarga real", con soporte completo para localización de imágenes!
✨ Características principales
🎯 Funciones principales (v1.1.0)
- Descarga real de imágenes: ✅ Descarga imágenes de WeChat de verdad, no solo genera instrucciones
- Diseño de doble modo: Modo instrucción (para aprender) + Modo automático (para eficiencia)
- Localización completa: Descarga de imágenes + actualización de rutas + documento Markdown utilizable sin conexión
- Procesamiento inteligente: Reconocimiento de dominios de WeChat, encabezados correctos, control de concurrencia, mecanismo de reintentos
🔧 Características técnicas (v1.1.0)
- Procesamiento profesional de imágenes:
- 🎯 Reconocimiento de dominios de imágenes de WeChat (mmbiz.qpic.cn)
- 🎯 Encabezados HTTP correctos (Referer, User-Agent)
- 🎯 Manejo de parámetros wx_fmt (jpeg, png, gif)
- 🎯 Control de concurrencia (descarga de 3 a la vez) + mecanismo de reintentos
- Soporte de protocolo MCP: Implementación completa del Protocolo de Contexto de Modelo
- Arquitectura modular: ImageDownloader + ArticleProcessor + CrawlTool
- Soporte de TypeScript: Definiciones de tipos y soporte de compilación completos
- Node.js 18+: Usa la API fetch integrada, sin dependencias adicionales de bibliotecas HTTP
🎮 Integración con Cursor IDE
- Instalación con un clic:
npx crawl-mcp-server@1.1.0 - Listo para usar: Sin configuración compleja, utilizable directamente
- Soporte para herramientas de IA: Usa IA directamente en Cursor para extracción completa
- Reconocimiento automático de herramientas: El agente llama automáticamente a las herramientas de extracción relevantes
🚀 Inicio rápido
💻 Instalación y uso
Método 1: Ejecución directa con npx (recomendado)
# 使用最新的v1.1.0版本
npx crawl-mcp-server@1.1.0
Método 2: Instalación global
npm install -g crawl-mcp-server@1.1.0
crawl-mcp-server
Método 3: Instalación local en el proyecto
npm install crawl-mcp-server@1.1.0
npx crawl-mcp-server
💡 Consejo: Se recomienda usar la versión
@1.1.0para asegurar las funciones más recientes de descarga de imágenes
🔌 Configuración de Cursor IDE
-
Crear archivo de configuración MCP Crea
.cursor/mcp.jsonen la raíz del proyecto:{ "mcpServers": { "crawl-mcp": { "command": "npx", "args": ["-y", "crawl-mcp-server@1.1.0"], "env": { "NODE_ENV": "production" } } } } -
Reiniciar Cursor Reinicia Cursor para que la configuración surta efecto
-
Comenzar a usar Usa el asistente de IA directamente en Cursor para la extracción web:
Modo instrucción (recomendado para aprender):
请使用crawl mcp抓取这篇微信文章:https://mp.weixin.qq.com/s/xxxxxModo automático (prioriza la eficiencia):
我已经获取了HTML内容,请使用crawl mcp自动模式处理并下载图片
🛠️ Descripción de herramientas MCP
1. crawl_wechat_article
Herramienta de extracción de un solo artículo
Parámetros:
url(obligatorio): Enlace del artículo de WeChatoutputFormat(opcional): Formato de salida (markdown/json/html, predeterminado: markdown)strategy(opcional): Estrategia de extracción (basic/conservative/fast, predeterminado: basic)includeImages(opcional): Incluir imágenes o no (predeterminado: true)
Ejemplo:
{
"url": "https://mp.weixin.qq.com/s/example123",
"outputFormat": "markdown",
"strategy": "basic",
"includeImages": true
}
2. crawl_wechat_batch
Herramienta de extracción por lotes de artículos
Parámetros:
urls(obligatorio): Matriz de enlaces de artículosoutputFormat(opcional): Formato de salidastrategy(opcional): Estrategia de extracciónmaxConcurrent(opcional): Número máximo de concurrencia (predeterminado: 3)
Ejemplo:
{
"urls": [
"https://mp.weixin.qq.com/s/example1",
"https://mp.weixin.qq.com/s/example2"
],
"outputFormat": "markdown",
"maxConcurrent": 2
}
3. crawl_get_status
Herramienta de consulta de estado
Parámetros:
sessionId(opcional): ID de sesión; si no se proporciona, devuelve el estado de todas las sesiones
⚙️ Descripción de estrategias de extracción
| Estrategia | Velocidad | Estabilidad | Escenario de uso |
|---|---|---|---|
| fast | ⚡ Más rápida | 🔸 Normal | Buena red, página simple |
| basic | 🚀 Media | ⭐ Equilibrada | La mayoría de los casos (recomendada) |
| conservative | 🐌 Más lenta | 💎 Más estable | Red inestable, página compleja |
📦 Estructura del proyecto
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/ # 测试文件
🧪 Desarrollo y pruebas
Instalar dependencias
pnpm install
Compilar el proyecto
pnpm build
Ejecutar pruebas
pnpm test
Desarrollo local
pnpm dev
📊 Cobertura de pruebas
- ✅ 25 pruebas todas aprobadas
- 🧪 Pruebas unitarias: Verificación de funcionalidad de componentes principales
- 🔗 Pruebas de integración: Pruebas de integridad del protocolo MCP
- 📋 Pruebas de configuración: Verificación de todos los archivos de configuración
🤝 Guía de contribución
- Haz un fork de este repositorio
- Crea tu rama de características (
git checkout -b feature/AmazingFeature) - Realiza tus cambios (
git commit -m 'Add some AmazingFeature') - Envía a la rama (
git push origin feature/AmazingFeature) - Abre una solicitud de extracción (Pull Request)
📄 Licencia
Este proyecto está bajo la licencia MIT - consulta el archivo LICENSE para más detalles.
🔗 Enlaces relacionados
- 📦 Paquete NPM
- 🐙 Repositorio de GitHub
- 📖 Documentación de API
- 🛠️ Solución de problemas
- 📋 Guía de publicación
📞 Soporte
Si encuentras algún problema o tienes sugerencias, por favor:
- 🐛 Envía un Issue
- 💬 Participa en la discusión
- 📧 Contacta al desarrollador
⭐ Si este proyecto te resulta útil, ¡danos una estrella!
Hecho con ❤️ por wutongci