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

DeepResearch Logo TypeScript OpenAI Node.js

📚 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

  1. Clonar el repositorio

    git clone <repository-url>
    cd deep-research-mcp
    
  2. Instalar las dependencias

    npm install
    
  3. Configurar las variables de entorno

    cp .env.example .env
    

    Edita el archivo .env y añade tus claves de API:

    OPENAI_API_KEY=sk-your-openai-api-key
    FIRECRAWL_API_KEY=your-firecrawl-api-key
    
  4. 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 recursoDescripció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 herramientaDescripciónParámetros
initialize-researchInicia una nueva sesión de investigaciónquery: string, depth: number
execute-research-stepEjecuta el siguiente paso de la investigaciónsessionId: string
generate-reportCrea un informe finalsessionId: string, timeout: number (opcional)
complete-researchEjecuta todo el proceso de investigaciónquery: 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

  1. Copiar la configuración de ejemplo

    cp claude_desktop_config_sample.json ~/path/to/claude/desktop/config/directory/claude_desktop_config.json
    
  2. 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"
          }
        }
      }
    }
    
  3. Reiniciar Claude Desktop

    Después de guardar la configuración, reinicia Claude Desktop para que los cambios surtan efecto.

  4. 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-research con 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