Skip to main content
Glama
q6066697

rag-mcp-server

by q6066697

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
QDRANT_MODENoMode for Qdrant: 'embedded' (default) for file-based storage, or 'server' to connect to a Qdrant server via docker-compose.
OPENAI_API_KEYYesYour OpenAI API key, used for generating embeddings.

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
search_documentsA

Гибридный поиск (dense-эмбеддинги + BM25, слитые через Reciprocal Rank Fusion) по проиндексированному корпусу markdown-документов о RAG, поиске и LLM-инфраструктуре.

Используй этот инструмент, когда нужно найти релевантные документы или факты по теме или вопросу пользователя, прежде чем отвечать — вместо того, чтобы полагаться на собственные знания. Одинаково хорошо работает и для семантических запросов на естественном языке ("как оценивать качество ретривера"), и для точных терминов/аббревиатур ("RRF", "BM25"), поскольку сочетает векторный и лексический поиск.

Args: query: Запрос на естественном языке или ключевые слова. top_k: Сколько документов вернуть (по умолчанию 5, максимум 20).

Returns: Список словарей, отсортированный по убыванию релевантности — [{"doc_id": str, "title": str, "snippet": str, "score": float}, ...]. doc_id — идентификатор документа, который нужно передать в get_document(), чтобы получить его полный текст, или в rerank_results(), чтобы уточнить порядок кандидатов.

get_documentA

Возвращает полный текст документа из корпуса по его doc_id.

Используй этот инструмент после search_documents(), когда сниппета недостаточно и нужен полный текст найденного документа — например, чтобы процитировать точную формулировку или прочитать раздел, который не попал в сниппет.

Args: doc_id: Идентификатор документа, как он возвращается в поле "doc_id" у search_documents() (совпадает с именем файла в корпусе, например "hybrid-search.md").

Returns: Полный текст документа (markdown). Если doc_id не найден в корпусе, вместо ошибки возвращается строка со списком доступных doc_id, чтобы клиент мог сразу повторить вызов с корректным значением.

rerank_resultsA

Переранжирует переданный список документов-кандидатов относительно query с помощью cross-encoder модели, которая читает пару (query, документ) вместе — точнее, чем независимое векторное сходство, но дороже по compute, поэтому применяется к уже отфильтрованному шортлисту, а не ко всему корпусу.

Используй этот инструмент, когда уже есть список кандидатов (например, из search_documents() или собранный вручную из нескольких запросов) и нужно уточнить их порядок релевантности перед тем, как процитировать top-N пользователю. Для поиска по всему корпусу используй search_documents() — этот инструмент только переупорядочивает уже известные doc_id и не находит новые документы.

Args: query: Запрос, относительно которого переранжируются документы. doc_ids: Список doc_id кандидатов (см. search_documents/ get_document). Неизвестные doc_id молча пропускаются.

Returns: Список [{"doc_id": str, "title": str, "snippet": str, "score": float}, ...], отсортированный по убыванию cross-encoder score. score здесь — необязательно вероятность и несравним по шкале со score из search_documents() (RRF-скор).

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A4.7/5.0

Scored across 3 tools

Disambiguation5/5

Tools have clear boundaries: search_documents retrieves candidates, get_document fetches full text by ID, rerank_results reorders given IDs. No overlap in purpose, and each description explicitly states when to use it.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern (search_documents, get_document, rerank_results) in snake_case. Naming convention is uniform and predictable.

Tool Count5/5

Three tools is well-scoped for a focused retrieval server: search, fetch full content, and re-rank. Each tool serves a distinct step in the pipeline without redundancy, fitting the typical 3-15 range.

Completeness5/5

The tool surface covers the full read-only retrieval workflow: hybrid search with snippets, full document access, and optional cross-encoder re-ranking. No missing operations are needed for the stated purpose.

Maintenance

ActivitySlowing
ResponsivenessNo issues