Memex Targeted Search Server

Realiza búsquedas dirigidas en el historial de conversaciones y archivos de proyectos de Memex.

Documentación

Memex Targeted Search Server

Un servidor de Model Context Protocol (MCP) que proporciona capacidades de búsqueda dirigida en el historial de conversaciones de Memex y archivos de proyectos.

Resumen

Este servidor MCP permite a los agentes de IA buscar eficientemente a través de:

  • Historial de conversaciones: 952+ archivos de conversación de Memex con metadatos, títulos, resúmenes y contenido de mensajes
  • Archivos de proyectos: 516+ directorios de proyectos en el espacio de trabajo del usuario con varios tipos de archivos y tecnologías

Características

🔍 Herramientas de búsqueda principales

  1. search_conversations - Buscar en el historial de conversaciones por texto, metadatos y filtros
  2. get_conversation_snippet - Recuperar partes específicas de conversaciones sin sobrecarga de contexto
  3. search_projects - Buscar archivos de proyectos por contenido, tipos de archivo y nombres
  4. get_project_overview - Obtener resúmenes de proyectos con detección de tecnología
  5. find_command - ¡NUEVO! Encontrar comandos específicos, uso de CLI o fragmentos de código del historial de conversaciones

🎯 Gestión inteligente de contexto

  • Devuelve fragmentos dirigidos en lugar de conversaciones completas
  • Limita el alcance de la búsqueda para evitar la explosión de contexto
  • Admite filtrado por facetas (fechas, proyectos, tipos de archivo)
  • Proporciona puntuación de relevancia para los resultados de búsqueda

Instalación

# Clone the repository
git clone https://github.com/memextech/memex-targeted-search-server.git
cd memex-targeted-search-server

# Install dependencies
npm install

# Build the project
npm run build

Configuración

El servidor está configurado para buscar:

  • Historial de conversaciones: ~/Library/Application Support/Memex/history/
  • Archivos de proyectos: ~/Workspace/

Configuración del servidor MCP

Agregue a su configuración MCP (por ejemplo, configuración de Claude Desktop):

{
  "mcpServers": {
    "memex-search": {
      "command": "node",
      "args": ["/path/to/memex-targeted-search-server/dist/index.js"]
    }
  }
}

Ejemplos de uso

1. Encontrar comandos olvidados

"No recuerdo cuál es el comando para ejecutar la CLI del agente memex"

find_command({
  query: "memex agent cli",
  command_type: "cli",
  limit: 5
})

Encontrar comandos npm específicos

find_command({
  query: "npm install",
  command_type: "cli",
  limit: 5
})

Respuesta de ejemplo:

{
  "query": "npm install",
  "total_found": 3,
  "commands": [
    {
      "command": "npm install -g firebase-tools",
      "context": "Install Firebase CLI: `npm install -g firebase-tools`\n- Login to Firebase: `firebase login`",
      "conversation_id": "abc123",
      "conversation_title": "Firebase Setup Guide",
      "message_index": 7,
      "confidence": 0.9,
      "type": "cli"
    }
  ]
}

2. Buscar conversaciones

Encontrar conversaciones sobre temas específicos

search_conversations({
  query: "3D modeling",
  limit: 5
})

Respuesta de ejemplo:

{
  "total_found": 3,
  "conversations": [
    {
      "conversation_id": "a3edfc8f-0978-415e-9de8-18f4d94ea3a2",
      "title": "3D Interactive Solar System Model",
      "summary": "Design an engaging, visually appealing 3D representation of planets and celestial bodies",
      "created_at": "2025-05-27T17:13:26Z",
      "project": "Stellar 3d solar system",
      "message_count": 76,
      "relevance": "content"
    }
  ]
}

Filtrar por rango de fechas y proyecto

search_conversations({
  query: "python",
  project: "cad_example",
  date_from: "2025-01-01",
  date_to: "2025-03-01",
  limit: 3
})

3. Obtener detalles de la conversación

Recuperar mensajes específicos de una conversación

get_conversation_snippet({
  conversation_id: "bf283daa-25d3-434f-ad7e-9adda48cdcdd",
  message_start: 1,
  message_count: 3
})

Respuesta de ejemplo:

{
  "conversation_id": "bf283daa-25d3-434f-ad7e-9adda48cdcdd",
  "title": "3D Model 3MF File Creation",
  "message_range": "1-3",
  "total_messages": 30,
  "messages": [
    {
      "index": 1,
      "role": "user",
      "content": "can I create a 3D model in .3mf?"
    },
    {
      "index": 2,
      "role": "assistant",
      "content": "I'll help you create a 3D model using PythonOCC and convert it to .3mf format..."
    }
  ]
}

4. Buscar proyectos

Encontrar archivos por tecnología

search_projects({
  query: "interface",
  file_types: ["ts", "js"],
  limit: 10
})

Buscar todos los archivos de proyectos

search_projects({
  query: "streamlit",
  limit: 5
})

Respuesta de ejemplo:

{
  "total_found": 3,
  "results": [
    {
      "project": "ad_campaign_dashboard",
      "file": "ad_campaign_dashboard/app.py",
      "match": "import streamlit as st",
      "line": 1
    }
  ]
}

5. Obtener resumen del proyecto

Analizar la estructura del proyecto y la pila tecnológica

get_project_overview({
  project_name: "memex_targeted_search_server"
})

Respuesta de ejemplo:

{
  "name": "memex_targeted_search_server",
  "path": "/Users/user/Workspace/memex_targeted_search_server",
  "file_count": 8,
  "directories": ["dist", "src"],
  "file_types": {
    "ts": 1,
    "js": 1,
    "json": 3,
    "md": 1
  },
  "main_files": ["package.json", "README.md"],
  "technologies": ["JavaScript/TypeScript"]
}

Escenarios de uso en el mundo real

Escenario 1: "Olvidé ese comando..."

// User: "I don't remember what the command is to run the memex agent cli"
find_command({
  query: "memex agent",
  command_type: "cli",
  limit: 5
})

// User: "What was that firebase command to deploy?"
find_command({
  query: "firebase deploy",
  command_type: "cli",
  limit: 3
})

// Result: Finds exact commands with context from previous conversations

Escenario 2: Encontrar trabajo relacionado

// Agent: "I need to find previous conversations about Blender projects"
search_conversations({
  query: "blender",
  limit: 5
})

// Result: Finds 2 conversations about 3D Manhattan cityscape and geometric skyscraper
// Agent can then drill down into specific conversations for details

Escenario 3: Búsqueda de referencias de código

// Agent: "Show me Python projects that use Streamlit"
search_projects({
  query: "streamlit",
  file_types: ["py"],
  limit: 10
})

// Result: Finds specific Python files with Streamlit imports
// Agent can then examine project structure and implementation patterns

Escenario 4: Descubrimiento de referencias cruzadas

// Agent: "Find conversations from January 2025 about 3D modeling"
search_conversations({
  query: "3D model",
  date_from: "2025-01-01",
  date_to: "2025-01-31",
  limit: 5
})

// Agent: "Now show me the related project files"
get_project_overview({
  project_name: "cad_example"
})

Referencia de la API

search_conversations

  • Propósito: Buscar en el historial de conversaciones con filtrado flexible
  • Parámetros: query (obligatorio), limit, project, date_from, date_to
  • Devuelve: Matriz de metadatos de conversación con puntuación de relevancia

get_conversation_snippet

  • Propósito: Recuperar rangos de mensajes específicos de conversaciones
  • Parámetros: conversation_id (obligatorio), message_start, message_count
  • Devuelve: Fragmento de conversación con detalles de mensajes

search_projects

  • Propósito: Buscar archivos de proyectos por contenido y metadatos
  • Parámetros: query (obligatorio), file_types, limit
  • Devuelve: Matriz de coincidencias de archivos con contexto

get_project_overview

  • Propósito: Analizar la estructura del proyecto y la pila tecnológica
  • Parámetros: project_name (obligatorio)
  • Devuelve: Resumen del proyecto con recuentos de archivos y detección de tecnología

find_command

  • Propósito: Encontrar comandos específicos, uso de CLI o fragmentos de código del historial de conversaciones
  • Parámetros: query (obligatorio), command_type (cli/code/config/any), limit
  • Devuelve: Matriz de comandos con contexto, puntuación de confianza y referencias de conversación

Arquitectura

Construido con:

  • TypeScript - Desarrollo con seguridad de tipos
  • MCP SDK - SDK oficial del Model Context Protocol
  • Node.js - Entorno de ejecución
  • APIs del sistema de archivos - Acceso directo a archivos para rendimiento

Consideraciones de rendimiento

  • Limita el alcance de la búsqueda para evitar resultados abrumadores
  • Utiliza análisis JSON en streaming para archivos grandes
  • Implementa filtrado inteligente de archivos
  • Almacena en caché metadatos de acceso frecuente
  • Devuelve contenido truncado con contexto completo disponible bajo demanda

Experiencia del agente

El servidor está diseñado para una interacción óptima con el agente:

  • Búsqueda dirigida: Encuentre información específica sin sobrecarga de contexto
  • Filtrado por facetas: Múltiples dimensiones de búsqueda (fecha, proyecto, tipo de archivo)
  • Descubrimiento progresivo: Comience con resúmenes, profundice en detalles
  • Preservación del contexto: Mantenga las relaciones de conversación y proyecto

Desarrollo

Ejecución en desarrollo

npm run dev

Compilación para producción

npm run build
npm start

Pruebas

El servidor incluye manejo integral de errores y degradación elegante para:

  • Archivos de conversación faltantes o corruptos
  • Directorios de proyectos inaccesibles
  • Análisis JSON inválido
  • Manejo de archivos grandes

Contribuciones

¡Las contribuciones son bienvenidas! No dude en enviar un Pull Request.

Licencia

ISC License


🤖 Generado con Memex
Coautor: Memex noreply@memex.tech