Solana Divers MCP Server
MCP-сервер для поиска по архиву Telegram-чатов Solana-разработчиков. Работает с Claude Web, Claude Code и другими MCP-клиентами.
Что это
Поисковый движок по ~94K сообщениям из двух чатов:
- Divers (
on_chain_divers_chat) — ~50K сообщений, MEV, трейдинг, боты, инфраструктура - Solana Dev RU (
solana_dev_ru) — ~43K сообщений, разработка, Anchor, SPL, RPC
Гибридный поиск: семантический (Voyage embeddings) + полнотекстовый (BM25) + cross-encoder reranking (FlashRank).
Безопасность и приватность
Что сервер видит и НЕ видит
Сервер получает ТОЛЬКО параметры tool-вызова:
search(query="jito bundles", top_k=5, chat_ids=None)
Это всё. Три поля: поисковый запрос, количество результатов и фильтр по чату.
Сервер НЕ получает и НЕ имеет доступа к:
- Вашей переписке с Claude (промпты, ответы, история диалога)
- Другим tool-вызовам в вашей сессии
- Вашим файлам, проектам, контексту
- Информации о вашем аккаунте
Как это работает (MCP протокол)
Вы пишете Claude: "найди обсуждения про jito bundles"
│
▼
Claude решает вызвать tool и отправляет на MCP-сервер:
POST /mcp { "method": "tools/call", "params": {"name": "search", "arguments": {"query": "jito bundles"}} }
│
▼
Сервер выполняет поиск по SQLite базе, возвращает результаты
│
▼
Claude получает результаты и формирует ответ для вас
MCP-сервер — это просто поисковый API. Он работает как обычный поисковик: получает запрос, возвращает результаты. Никакого контекста вашего диалога на сервер не передаётся.
Что логируется
Сервер сохраняет в локальную SQLite базу:
- Поисковый запрос (
query) - Параметры (
top_k,chat_ids) - Количество найденных результатов
- Время выполнения запроса
Это нужно для мониторинга качества поиска. Информация о том, кто отправил запрос, не сохраняется (MCP протокол не передаёт идентификатор пользователя).
Авторизация
- OAuth 2.1 с паролем (вводится один раз при подключении)
- Access token действует 24 часа, refresh token — 30 дней
- Токены хранятся в зашифрованном виде на сервере
- Все соединения через HTTPS (TLS 1.2+)
Подключение
Claude Web (claude.ai)
Settings → MCP Servers → Add MCP Server → вставить URL сервера → Connect → ввести пароль.
Claude Code
{
"mcpServers": {
"solana-divers": {
"type": "url",
"url": "<server-url>/mcp"
}
}
}
Tools
search(query, top_k?, chat_ids?)
Поиск по архиву чатов. Возвращает фрагменты переписки с контекстом (±5 сообщений).
query— поисковый запрос (русский или английский)top_k— количество результатов (1-10, по умолчанию 5)chat_ids— фильтр по чату (["on_chain_divers_chat"],["solana_dev_ru"], илиnullдля всех)
stats(chat_ids?)
Статистика базы данных: количество сообщений, авторов, диапазон дат, топ авторов.
history(limit?)
История последних поисковых запросов (для мониторинга).
Архитектура
MCP-клиент (Claude Web / Claude Code)
│
▼ HTTPS
Nginx (reverse proxy, SSL)
│
▼ HTTP :8430
Docker: divers-mcp
│
├── search tool → hybrid_search() → SQLite (read-only)
├── stats tool → direct SQL queries → SQLite (read-only)
└── history tool → mcp_logs.db (read-write)
- База сообщений — read-only, shared volume с основным приложением
- База логов — отдельная SQLite для search_log + OAuth токенов
- Embedding cache — 26K векторов (~120MB) загружаются в RAM при старте
Self-hosting
cp docker-compose.example.yml docker-compose.yml
# Заполнить переменные окружения
docker-compose up -d --build
Требуется:
- Заполненная база данных ragtg (SQLite с сообщениями и embeddings)
- Voyage API ключ для семантического поиска
- Nginx с SSL для HTTPS












