DeepResearch MCP
Un asistente de investigación potente para realizar búsquedas web iterativas, análisis y generación de informes.
Documentación
DeepResearch MCP
📚 Descripción general
DeepResearch MCP es un potente asistente de investigación construido sobre el Protocolo de Contexto de Modelos (MCP). Realiza investigaciones inteligentes e iterativas sobre cualquier tema mediante búsquedas web, análisis y generación de informes exhaustivos.
🌟 Características principales
- Exploración inteligente de temas - Identifica automáticamente las lagunas de conocimiento y genera consultas de búsqueda enfocadas
- Extracción integral de contenido - Raspado web mejorado con una organización de contenido optimizada
- Procesamiento estructurado del conocimiento - Conserva la información importante mientras gestiona el uso de tokens
- Generación de informes académicos - Crea informes detallados y bien estructurados con resúmenes ejecutivos, análisis y visualizaciones
- Bibliografía completa - Cita correctamente todas las fuentes con referencias numeradas
- Gestión adaptativa del contenido - Gestiona automáticamente el contenido para mantenerse dentro de los límites de tokens
- Resiliencia ante errores - Se recupera de errores y genera informes parciales cuando el procesamiento completo no es posible
🛠️ Arquitectura
┌────────────────────┐ ┌─────────────────┐ ┌────────────────┐
│ │ │ │ │ │
│ MCP Server Layer ├────►│ Research Service├────►│ Search Service │
│ (Tools & Prompts) │ │ (Session Mgmt) │ │ (Firecrawl) │
│ │ │ │ │ │
└────────────────────┘ └─────────┬───────┘ └────────────────┘
│
▼
┌─────────────────┐
│ │
│ OpenAI Service │
│ (Analysis/Rpt) │
│ │
└─────────────────┘
💻 Instalación
Requisitos previos
- Node.js 18 o superior
- Clave de API de OpenAI
- Clave de API de Firecrawl
Pasos de configuración
-
Clonar el repositorio
git clone <repository-url> cd deep-research-mcp -
Instalar las dependencias
npm install -
Configurar las variables de entorno
cp .env.example .envEdita el archivo
.envy añade tus claves de API:OPENAI_API_KEY=sk-your-openai-api-key FIRECRAWL_API_KEY=your-firecrawl-api-key -
Compilar el proyecto
npm run build
🚀 Uso
Ejecutar el servidor MCP
Inicia el servidor en stdio para las conexiones de clientes MCP:
npm start
Usar el cliente de ejemplo
Ejecuta una investigación sobre un tema específico con una profundidad determinada:
npm run client "Your research topic" 3
Parámetros:
- Primer argumento: Tema o consulta de investigación
- Segundo argumento: Profundidad de la investigación (número de iteraciones, valor predeterminado: 2)
- Tercer argumento (opcional): "complete" para usar la herramienta de investigación completa (proceso de un solo paso)
Ejemplo:
npm run client "the impact of climate change on coral reefs" 3 complete
Ejemplo de salida
DeepResearch MCP producirá un informe exhaustivo que incluye:
- Resumen ejecutivo - Visión general concisa de los hallazgos de la investigación
- Introducción - Contexto e importancia del tema de investigación
- Metodología - Descripción del enfoque de investigación
- Análisis exhaustivo - Examen detallado del tema
- Análisis comparativo - Comparación visual de los aspectos clave
- Discusión - Interpretación de los hallazgos y sus implicaciones
- Limitaciones - Restricciones y lagunas en la investigación
- Conclusión - Perspectivas finales y recomendaciones
- Bibliografía - Lista completa de fuentes con URL
🔧 Integración con MCP
Recursos MCP disponibles
| Ruta del recurso | Descripción |
|---|---|
research://state/{sessionId} | Accede al estado actual de una sesión de investigación |
research://findings/{sessionId} | Accede a los hallazgos recopilados de una sesión |
Herramientas MCP disponibles
| Nombre de la herramienta | Descripción | Parámetros |
|---|---|---|
initialize-research | Inicia una nueva sesión de investigación | query: string, depth: number |
execute-research-step | Ejecuta el siguiente paso de la investigación | sessionId: string |
generate-report | Crea un informe final | sessionId: string, timeout: number (opcional) |
complete-research | Ejecuta todo el proceso de investigación | query: string, depth: number, timeout: number (opcional) |
🖥️ Integración con Claude Desktop
DeepResearch MCP se puede integrar con Claude Desktop para proporcionar capacidades de investigación directas a Claude.
Pasos de configuración
-
Copiar la configuración de ejemplo
cp claude_desktop_config_sample.json ~/path/to/claude/desktop/config/directory/claude_desktop_config.json -
Editar el archivo de configuración
Actualiza la ruta para que apunte a tu instalación de deep-research-mcp y añade tus claves de API:
{ "mcpServers": { "deep-research": { "command": "node", "args": [ "/absolute/path/to/your/deep-research-mcp/dist/index.js" ], "env": { "FIRECRAWL_API_KEY": "your-firecrawler-api-key", "OPENAI_API_KEY": "your-openai-api-key" } } } } -
Reiniciar Claude Desktop
Después de guardar la configuración, reinicia Claude Desktop para que los cambios surtan efecto.
-
Uso con Claude Desktop
Ahora puedes pedirle a Claude que realice investigaciones usando comandos como:
Can you research the impact of climate change on coral reefs and provide a detailed report?
📋 Código de cliente de ejemplo
import { Client } from "@modelcontextprotocol/sdk/client/index.js";
import { StdioClientTransport } from "@modelcontextprotocol/sdk/client/stdio.js";
async function main() {
// Connect to the server
const transport = new StdioClientTransport({
command: "node",
args: ["dist/index.js"]
});
const client = new Client({ name: "deep-research-client", version: "1.0.0" });
await client.connect(transport);
// Initialize research
const initResult = await client.callTool({
name: "initialize-research",
arguments: {
query: "The impact of artificial intelligence on healthcare",
depth: 3
}
});
// Parse the response to get sessionId
const { sessionId } = JSON.parse(initResult.content[0].text);
// Execute steps until complete
let currentDepth = 0;
while (currentDepth < 3) {
const stepResult = await client.callTool({
name: "execute-research-step",
arguments: { sessionId }
});
const stepInfo = JSON.parse(stepResult.content[0].text);
currentDepth = stepInfo.currentDepth;
console.log(`Completed step ${stepInfo.currentDepth}/${stepInfo.maxDepth}`);
}
// Generate final report with timeout
const report = await client.callTool({
name: "generate-report",
arguments: {
sessionId,
timeout: 180000 // 3 minutes timeout
}
});
console.log("Final Report:");
console.log(report.content[0].text);
}
main().catch(console.error);
🔍 Solución de problemas
Problemas comunes
-
Límite de tokens superado: Para temas de investigación muy extensos, puedes encontrar errores de límite de tokens de OpenAI. Intenta:
- Reducir la profundidad de la investigación
- Usar consultas más específicas
- Dividir temas complejos en subtemas más pequeños
-
Errores de tiempo de espera: Para investigaciones complejas, el proceso puede agotar el tiempo. Soluciones:
- Aumenta los parámetros de tiempo de espera en las llamadas a herramientas
- Usa la herramienta
complete-researchcon un tiempo de espera más largo - Procesa la investigación en fragmentos más pequeños
-
Límites de velocidad de la API: Si encuentras errores de límite de velocidad de OpenAI o Firecrawl:
- Implementa un retraso entre los pasos de investigación
- Usa una clave de API con límites de velocidad más altos
- Reintenta con retroceso exponencial
📝 Licencia
ISC
🙏 Agradecimientos
- Construido con Protocolo de Contexto de Modelos
- Impulsado por OpenAI y Firecrawl