Skip to main content
Glama
bborbe

Semantic Search MCP

by bborbe

Семантический поиск

Семантический поиск по файлам Markdown. Находите связанные заметки по смыслу, а не просто по ключевым словам. Обнаруживайте дубликаты перед созданием новых заметок.

Поддерживает два транспортных протокола сервера:

  • stdio MCP — для интеграции с Claude Code (один процесс на сессию)

  • HTTP — комбинированный MCP-over-HTTP + REST на одном порту; один «разогретый» процесс, общий для всех клиентов

Возможности

  • Семантический поиск с использованием sentence-transformers

  • Обнаружение дубликатов/похожих заметок

  • Автоматическое обновление индекса с помощью отслеживания изменений файлов

  • Поддержка нескольких директорий

  • Извлечение встроенных тегов (#tag-name)

Related MCP server: mcp-recall-md

Установка

Установка только для CPU — рекомендуется для macOS (любой Mac, Apple Silicon или Intel) и Linux/Windows без видеокарты NVIDIA. Экономит около 5 ГБ бинарных файлов CUDA. На macOS графический процессор Apple (MPS) по-прежнему автоматически обнаруживается и используется через встроенный бэкенд MPS в PyTorch — метка «CPU» относится только к отсутствию CUDA, а не к вычислительному устройству во время выполнения.

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

Установка CUDA — только для Linux/Windows с выделенной видеокартой NVIDIA. Не применимо к macOS (NVIDIA CUDA не поддерживается на Mac).

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

Обновление

uv tool upgrade semantic-search

Режимы сервера

stdio MCP (для каждой сессии Claude Code)

Запускает один процесс на каждую сессию Claude Code. Просто, но каждая сессия загружает свою копию модели объемом ~400 МБ–1 ГБ.

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

Доступные инструменты:

  • search_related(query, top_k=5) — поиск семантически связанных заметок

  • check_duplicates(file_path) — обнаружение дубликатов/похожих заметок

HTTP (общий для всех клиентов)

Один долгоживущий процесс обслуживает MCP-over-HTTP по адресу /mcp плюс REST по адресам /search, /duplicates, /health, /reindex. Все сессии Claude Code и REST-клиенты используют один общий «разогретый» индексатор.

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

Укажите его в конфигурации MCP для Claude Code:

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

REST-эндпоинты:

Эндпоинт

Метод

Описание

/mcp

POST

MCP-over-HTTP (Claude Code)

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

GET

Семантический поиск

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

GET

Поиск дубликатов заметок

/health

GET

Проверка работоспособности со статистикой индекса

/reindex

GET/POST

Принудительная переиндексация

Примеры запросов:

# 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'

Плагин Claude Code

Этот репозиторий также поставляется как плагин для маркетплейса Claude Code с командами для настройки, поиска и исследований.

Установка

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

Обновление

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

Быстрый старт

# 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

Команды

Команда

Описание

/semantic-search:configure

Установить semantic-search-http как службу launchd (macOS) или systemd-user (Linux) и зарегистрировать MCP-сервер в Claude Code

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

Семантический поиск через запущенный MCP-сервер

/semantic-search:research <topic>

Многоэтапное исследование — поиск, категоризация, чтение основных источников, синтез

Запуск в фоновом режиме

Для использования в производственных целях запускайте semantic-search-http как фоновую службу, чтобы каждая сессия Claude Code (и любой REST-клиент) использовали один «разогретый» процесс.

Платформа

Руководство

macOS (launchd)

docs/launchd-service.md

Linux (systemd)

docs/systemd-user-service.md

Краткий пример (macOS):

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

Краткий пример (Linux):

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

CLI-команды

Разовые команды без запуска сервера:

# 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

Бинарные файлы

Бинарный файл

Назначение

semantic-search-http

Комбинированный HTTP-сервер — MCP на /mcp + REST-эндпоинты. Запустите один раз, используйте совместно с клиентами.

semantic-search-mcp

stdio MCP-сервер — один на сессию Claude Code. Используйте, если HTTP-сервис не настроен.

semantic-search

Только CLI — разовые команды search и duplicates.

Конфигурация

Переменные окружения

Переменная

Описание

По умолчанию

CONTENT_PATH

Директория для индексации (через запятую для нескольких)

./content

LOG_LEVEL

Уровень логирования (DEBUG, INFO, WARNING, ERROR)

INFO

Несколько директорий

Индексируйте несколько директорий, разделяя пути запятыми:

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

Все директории индексируются вместе и ищутся как единый индекс.

Как это работает

При первом запуске загружается небольшая модель эмбеддингов (~90 МБ) и индексируются ваши файлы Markdown (<1 с для типичных хранилищ). Индекс автоматически обновляется при изменении файлов через отслеживание файловой системы.

Индексируемый контент

Каждый файл Markdown индексируется с учетом взвешенных компонентов:

Компонент

Вес

Примечания

Имя файла

3x

Frontmatter title

3x

Frontmatter tags

2x

Объединяется со встроенными тегами

Frontmatter aliases

2x

Встроенные теги (#tag)

2x

Извлекаются из тела

Первый заголовок H1

2x

Содержимое тела

1x

Первые 500 слов

Разработка

# 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

Лицензия

Лицензия BSD 2-Clause — см. 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