Solana Divers MCP Server
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
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/Leevandr/mcp-divers'
If you have feedback or need assistance with the MCP directory API, please join our Discord server