Skip to main content
Glama
bborbe

Semantic Search MCP

by bborbe

Búsqueda Semántica

Búsqueda semántica sobre archivos markdown. Encuentra notas relacionadas por significado, no solo por palabras clave. Detecta duplicados antes de crear nuevas notas.

Admite dos transportes de servidor:

  • stdio MCP — Para integración con Claude Code (un proceso por sesión)

  • HTTP — MCP-sobre-HTTP + REST combinados en un solo puerto; un proceso activo compartido por todos los clientes

Características

  • Búsqueda semántica usando sentence-transformers

  • Detección de notas duplicadas/similares

  • Índice de actualización automática con monitor de archivos

  • Soporte para múltiples directorios

  • Extracción de etiquetas en línea (#tag-name)

Related MCP server: mcp-recall-md

Instalación

Instalación solo CPU — recomendado para macOS (cualquier Mac, Apple Silicon o Intel) y Linux/Windows sin una GPU NVIDIA. Ahorra ~5GB de binarios CUDA. En macOS, la GPU de Apple (MPS) se detecta y utiliza automáticamente a través del backend MPS integrado de PyTorch; la etiqueta "CPU" se refiere solo a la ausencia de CUDA, no al dispositivo de cómputo en tiempo de ejecución.

uv tool install --index https://download.pytorch.org/whl/cpu \
  git+https://github.com/bborbe/semantic-search

Instalación CUDA — solo para Linux/Windows con una GPU NVIDIA dedicada. No aplicable a macOS (NVIDIA CUDA no es compatible en Mac).

uv tool install git+https://github.com/bborbe/semantic-search

Actualización

uv tool upgrade semantic-search

Modos de Servidor

stdio MCP (Claude Code por sesión)

Genera un proceso por sesión de Claude Code. Es simple, pero cada sesión carga su propia copia del modelo de ~400 MB–1 GB.

claude mcp add -s project semantic-search \
  --env CONTENT_PATH=/path/to/vault \
  -- \
  uvx --from git+https://github.com/bborbe/semantic-search semantic-search-mcp

Herramientas disponibles:

  • search_related(query, top_k=5) — Encuentra notas semánticamente relacionadas

  • check_duplicates(file_path) — Detecta notas duplicadas/similares

HTTP (compartido entre todos los clientes)

Un único proceso de larga ejecución sirve MCP-sobre-HTTP en /mcp además de REST en /search, /duplicates, /health, /reindex. Todas las sesiones de Claude Code y clientes REST comparten un único indexador activo.

CONTENT_PATH=/path/to/vault semantic-search-http --host 127.0.0.1 --port 8321

Apunte Claude Code hacia él mediante la configuración de MCP:

{
  "mcpServers": {
    "semantic-search": {
      "type": "http",
      "url": "http://127.0.0.1:8321/mcp"
    }
  }
}

Endpoints REST:

Endpoint

Método

Descripción

/mcp

POST

MCP-sobre-HTTP (Claude Code)

/search?q=...&top_k=5

GET

Búsqueda semántica

/duplicates?file=...&threshold=0.85

GET

Encontrar notas duplicadas

/health

GET

Comprobación de estado con estadísticas del índice

/reindex

GET/POST

Forzar reconstrucción del índice

Consultas de ejemplo:

# Search
curl 'http://127.0.0.1:8321/search?q=kubernetes+deployment'

# Find duplicates
curl 'http://127.0.0.1:8321/duplicates?file=notes/my-note.md'

# Health check
curl 'http://127.0.0.1:8321/health'

Plugin de Claude Code

Este repositorio también se distribuye como un plugin del marketplace de Claude Code con comandos para configuración, búsqueda e investigación.

Instalación

claude plugin marketplace add bborbe/semantic-search
claude plugin install semantic-search

Actualización

claude plugin marketplace update semantic-search
claude plugin update semantic-search@semantic-search

Inicio rápido

# One-shot interactive setup: installs the binary, writes the launchd/systemd
# unit, registers the MCP server in your Claude config.
/semantic-search:configure

# Search indexed markdown
/semantic-search:search kubernetes deployment

# Multi-step research across results
/semantic-search:research kafka backup strategy

Comandos

Comando

Descripción

/semantic-search:configure

Instala semantic-search-http como un servicio launchd (macOS) o systemd-user (Linux) y registra el servidor MCP en Claude Code

/semantic-search:search <query> [top_k]

Búsqueda semántica a través del servidor MCP en ejecución

/semantic-search:research <topic>

Investigación de varios pasos: buscar, categorizar, leer fuentes principales, sintetizar

Ejecución en segundo plano

Para un uso de estilo producción, ejecute semantic-search-http como un servicio en segundo plano para que cada sesión de Claude Code (y cualquier cliente REST) comparta un proceso activo.

Plataforma

Guía

macOS (launchd)

docs/launchd-service.md

Linux (systemd)

docs/systemd-user-service.md

Ejemplo rápido (macOS):

launchctl load ~/Library/LaunchAgents/com.github.bborbe.semantic-search-http.plist

Ejemplo rápido (Linux):

systemctl --user enable --now semantic-search-http.service

Comandos CLI

Comandos de ejecución única sin necesidad de ejecutar un servidor:

# Search
CONTENT_PATH=/path/to/vault semantic-search search "kubernetes deployment"

# Find duplicates
CONTENT_PATH=/path/to/vault semantic-search duplicates path/to/note.md

Binarios

Binario

Propósito

semantic-search-http

Servidor HTTP combinado: MCP en /mcp + endpoints REST. Ejecutar una vez, compartir entre clientes.

semantic-search-mcp

Servidor MCP stdio: uno por sesión de Claude Code. Usar cuando el servicio HTTP no esté configurado.

semantic-search

Solo CLI: comandos de ejecución única search y duplicates.

Configuración

Variables de entorno

Variable

Descripción

Predeterminado

CONTENT_PATH

Directorio a indexar (separado por comas para múltiples)

./content

LOG_LEVEL

Nivel de registro (DEBUG, INFO, WARNING, ERROR)

INFO

Múltiples directorios

Indexe múltiples directorios separando las rutas con comas:

CONTENT_PATH=/path/to/vault1,/path/to/vault2,/path/to/docs

Todos los directorios se indexan juntos y se buscan como un índice unificado.

Cómo funciona

La primera ejecución descarga un pequeño modelo de incrustación (~90MB) e indexa sus archivos markdown (<1s para bóvedas típicas). El índice se actualiza automáticamente cuando los archivos cambian mediante un monitor del sistema de archivos.

Contenido indexado

Cada archivo markdown se indexa con componentes ponderados:

Componente

Peso

Notas

Nombre de archivo

3x

Frontmatter title

3x

Frontmatter tags

2x

Fusionado con etiquetas en línea

Frontmatter aliases

2x

Etiquetas en línea (#tag)

2x

Extraídas del cuerpo

Primer encabezado H1

2x

Contenido del cuerpo

1x

Primeras 500 palabras

Desarrollo

# Clone
git clone https://github.com/bborbe/semantic-search
cd semantic-search

# Install dev dependencies
make install

# Run checks
make check

# Run tests
make test

Licencia

Licencia BSD 2-Clause: consulte LICENSE.

Install Server
A
license - permissive license
A
quality
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

View all related MCP servers

Related MCP Connectors

  • Search and reason over your Obsidian-style Markdown vault, right from ChatGPT.

  • Search your Obsidian vault to quickly find notes by title or keyword, summarize related content, a…

  • Token-efficient MCP memory for Markdown vaults. Tiered search, GraphRAG, AI memories.

View all MCP Connectors

Appeared in Searches

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/bborbe/semantic-search'

If you have feedback or need assistance with the MCP directory API, please join our Discord server