Memex Targeted Search Server

Realiza pesquisas direcionadas no histórico de convers

Documentação

Memex Targeted Search Server

Um servidor Model Context Protocol (MCP) que fornece capacidades de busca direcionada no histórico de conversas do Memex e nos arquivos de projetos.

Visão Geral

Este servidor MCP permite que agentes de IA pesquisem eficientemente por:

  • Histórico de Conversas: 952+ arquivos de conversas do Memex com metadados, títulos, resumos e conteúdo de mensagens
  • Arquivos de Projetos: 516+ diretórios de projetos no espaço de trabalho do usuário com vários tipos de arquivos e tecnologias

Recursos

🔍 Ferramentas de Busca Principais

  1. search_conversations - Pesquisar histórico de conversas por texto, metadados e filtros
  2. get_conversation_snippet - Recuperar partes específicas de conversas sem sobrecarga de contexto
  3. search_projects - Pesquisar arquivos de projetos por conteúdo, tipos de arquivo e nomes
  4. get_project_overview - Obter resumos de projetos com detecção de tecnologia
  5. find_command - NOVO! Encontrar comandos específicos, uso de CLI ou trechos de código no histórico de conversas

🎯 Gerenciamento Inteligente de Contexto

  • Retorna trechos direcionados em vez de conversas completas
  • Limita o escopo da busca para evitar explosão de contexto
  • Suporta filtragem facetada (datas, projetos, tipos de arquivo)
  • Fornece pontuação de relevância para resultados de busca

Instalação

# 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

Configuração

O servidor está configurado para pesquisar:

  • Histórico de Conversas: ~/Library/Application Support/Memex/history/
  • Arquivos de Projetos: ~/Workspace/

Configuração do Servidor MCP

Adicione à sua configuração MCP (ex.: configuração do Claude Desktop):

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

Exemplos de Uso

1. Encontrar Comandos Esquecidos

"Não me lembro qual é o comando para executar o memex agent cli"

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
})

Exemplo de Resposta:

{
  "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. Pesquisar Conversas

Encontrar conversas sobre tópicos específicos

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

Exemplo de Resposta:

{
  "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 intervalo de datas e projeto

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

3. Obter Detalhes da Conversa

Recuperar mensagens específicas de uma conversa

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

Exemplo de Resposta:

{
  "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. Pesquisar Projetos

Encontrar arquivos por tecnologia

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

Pesquisar todos os arquivos de projetos

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

Exemplo de Resposta:

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

5. Obter Visão Geral do Projeto

Analisar estrutura do projeto e stack de tecnologia

get_project_overview({
  project_name: "memex_targeted_search_server"
})

Exemplo de Resposta:

{
  "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"]
}

Cenários de Uso no Mundo Real

Cenário 1: "Esqueci aquele 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

Cenário 2: Encontrando Trabalhos Relacionados

// 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

Cenário 3: Consulta de Referência 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

Cenário 4: Descoberta de Referências 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"
})

Referência da API

search_conversations

  • Propósito: Pesquisar histórico de conversas com filtragem flexível
  • Parâmetros: query (obrigatório), limit, project, date_from, date_to
  • Retorna: Array de metadados de conversas com pontuação de relevância

get_conversation_snippet

  • Propósito: Recuperar intervalos específicos de mensagens de conversas
  • Parâmetros: conversation_id (obrigatório), message_start, message_count
  • Retorna: Trecho da conversa com detalhes das mensagens

search_projects

  • Propósito: Pesquisar arquivos de projetos por conteúdo e metadados
  • Parâmetros: query (obrigatório), file_types, limit
  • Retorna: Array de correspondências de arquivos com contexto

get_project_overview

  • Propósito: Analisar estrutura do projeto e stack de tecnologia
  • Parâmetros: project_name (obrigatório)
  • Retorna: Resumo do projeto com contagem de arquivos e detecção de tecnologia

find_command

  • Propósito: Encontrar comandos específicos, uso de CLI ou trechos de código no histórico de conversas
  • Parâmetros: query (obrigatório), command_type (cli/code/config/any), limit
  • Retorna: Array de comandos com contexto, pontuação de confiança e referências de conversas

Arquitetura

Construído com:

  • TypeScript - Desenvolvimento com segurança de tipos
  • MCP SDK - SDK oficial do Model Context Protocol
  • Node.js - Ambiente de execução
  • APIs de Sistema de Arquivos - Acesso direto a arquivos para desempenho

Considerações de Desempenho

  • Limita o escopo da busca para evitar resultados excessivos
  • Usa análise JSON em streaming para arquivos grandes
  • Implementa filtragem inteligente de arquivos
  • Armazena em cache metadados acessados com frequência
  • Retorna conteúdo truncado com contexto completo disponível sob demanda

Experiência do Agente

O servidor é projetado para interação ideal com agentes:

  • Busca Direcionada: Encontre informações específicas sem sobrecarga de contexto
  • Filtragem Facetada: Múltiplas dimensões de busca (data, projeto, tipo de arquivo)
  • Descoberta Progressiva: Comece com resumos, aprofunde-se nos detalhes
  • Preservação de Contexto: Mantenha relacionamentos de conversas e projetos

Desenvolvimento

Executando em Desenvolvimento

npm run dev

Compilando para Produção

npm run build
npm start

Testes

O servidor inclui tratamento abrangente de erros e degradação graciosa para:

  • Arquivos de conversa ausentes ou corrompidos
  • Diretórios de projetos inacessíveis
  • Análise JSON inválida
  • Manipulação de arquivos grandes

Contribuição

Contribuições são bem-vindas! Sinta-se à vontade para enviar um Pull Request.

Licença

Licença ISC


🤖 Gerado com Memex
Co-Authored-By: Memex noreply@memex.tech