Document RAG MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| QDRANT_URL | No | URL for the Qdrant vector store. | http://localhost:6333 |
| DUCKDB_PATH | No | Path to the DuckDB database file. | |
| RAG_RULES_DIR | No | Directory containing declarative validation rules. | |
| RAG_DOCUMENT_ROOT | No | Root directory for document indexing. | |
| RAG_RERANKER_MODEL | No | Cross-encoder reranker model name. | BAAI/bge-reranker-v2-m3 |
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
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| index_documentA | Convert and index one document from a configured document root.
|
| index_directoryA | Index supported files in a directory with diff reporting. Returns which files are new, changed, unchanged, or failed.
Set |
| search_documentsA | Search indexed documents with hybrid dense+sparse retrieval. Optionally filter by metadata (e.g. |
| query_tablesA | Execute a SQL query on extracted tables stored in DuckDB. Use |
| aggregateB | Simplified aggregation on a DuckDB table. Easier than SQL for common count/sum/group-by queries.
Example: |
| list_tablesA | List all extracted tables in the DuckDB relational store. Returns table names, source documents, column schemas, and row counts. |
| list_documentsA | List indexed files, hashes, chunk counts, timestamps and source paths. |
| get_documentA | Return all indexed chunks and provenance for one document id. |
| get_index_statusA | Return Qdrant/DuckDB health, counts, roots and dependency versions. |
| healthA | Return a read-only health snapshot for this MCP and its backends. |
| get_configA | Return safe read-only runtime configuration without secrets. |
| get_job_statusC | Check the status of an async indexing job. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 12 tools
Most tools target distinct resources or actions, but query_tables and aggregate overlap for table analytics, and get_index_status substantially overlaps with health. Descriptions help clarify intent, but an agent could occasionally select the wrong one.
Tool names mostly follow a verb_noun snake_case pattern like list_tables, index_document, and get_config. The main inconsistency is the bare noun 'health' instead of something like 'get_health', and the mix of query/search/aggregate verbs is acceptable but slightly varied.
Twelve tools is well-scoped for a document RAG server covering indexing, retrieval, table querying, and operational status. Each tool serves a credible purpose without feeling bloated or thin.
Core workflows are covered: indexing, directory indexing, search, document retrieval, table listing/querying, and status checks. The main gap is the lack of a delete/remove tool for indexed documents or tables, though force re-indexing mitigates updates.