
MCP Docs RAG Server
A TypeScript MCP server that allows querying documents using LLMs with context from locally stored repositories and text files through a RAG (Retrieval-Augmented Generation) system.
README
mcp-docs-rag MCP Server
RAG (Retrieval-Augmented Generation) for documents in a local directory
This is a TypeScript-based MCP server that implements a RAG system for documents stored in a local directory. It allows users to query documents using LLMs with context from locally stored repositories and text files.
Features
Resources
- List and access documents via
docs://
URIs - Documents can be Git repositories or text files
- Plain text mime type for content access
Tools
list_documents
- List all available documents in the DOCS_PATH directory- Returns a formatted list of all documents
- Shows total number of available documents
rag_query
- Query documents using RAG- Takes document_id and query as parameters
- Returns AI-generated responses with context from documents
add_git_repository
- Clone a Git repository to the docs directory with optional sparse checkout- Takes repository_url as parameter
- Optional document_name parameter to customize the name of the document (use simple descriptive names without '-docs' suffix)
- Optional subdirectory parameter for sparse checkout of specific directories
- Automatically pulls latest changes if repository already exists
add_text_file
- Download a text file to the docs directory- Takes file_url as parameter
- Uses wget to download file
Prompts
guide_documents_usage
- Guide on how to use documents and RAG functionality- Includes list of available documents
- Provides usage hints for RAG functionality
Development
Install dependencies:
npm install
Build the server:
npm run build
For development with auto-rebuild:
npm run watch
Setup
This server requires a local directory for storing documents. By default, it uses ~/docs
but you can configure a different location with the DOCS_PATH
environment variable.
Document Structure
The documents directory can contain:
- Git repositories (cloned directories)
- Plain text files (with .txt extension)
Each document is indexed separately using llama-index.ts with Google's Gemini embeddings.
API Keys
This server uses Google's Gemini API for document indexing and querying. You need to set your Gemini API key as an environment variable:
export GEMINI_API_KEY=your-api-key-here
You can obtain a Gemini API key from the Google AI Studio website. Add this key to your shell profile or include it in the environment configuration for Claude Desktop.
Installation
To use with Claude Desktop, add the server config:
On MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json
On Windows: %APPDATA%/Claude/claude_desktop_config.json
On Linux: ~/.config/Claude/claude_desktop_config.json
{
"mcpServers": {
"docs-rag": {
"command": "npx",
"args": ["-y", "@kazuph/mcp-docs-rag"],
"env": {
"DOCS_PATH": "/Users/username/docs",
"GEMINI_API_KEY": "your-api-key-here"
}
}
}
}
Make sure to replace /Users/username/docs
with the actual path to your documents directory.
Debugging
Since MCP servers communicate over stdio, debugging can be challenging. We recommend using the MCP Inspector, which is available as a package script:
npm run inspector
The Inspector will provide a URL to access debugging tools in your browser.
Usage
Once configured, you can use the server with Claude to:
-
Add documents:
Add a new document from GitHub: https://github.com/username/repository
or with a custom document name:
Add GitHub repository https://github.com/username/repository-name and name it 'framework'
or with sparse checkout of a specific directory:
Add only the 'src/components' directory from https://github.com/username/repository
or combine custom name and sparse checkout:
Add the 'examples/demo' directory from https://github.com/username/large-repo and name it 'demo-app'
or add a text file:
Add this text file: https://example.com/document.txt
-
Query documents:
What does the documentation say about X in the Y repository?
-
List available documents:
What documents do you have access to?
The server will automatically handle indexing of documents for efficient retrieval.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.