
ksaritek/rust-local-rag
Developer toolsЭта страница переведена автоматически. Технические детали смотрите в оригинале. Открыть оригинал
Высокопроизводительный локальный сервер RAG в Rust, который интегрируется с Claude Desktop через MCP. Поиск PDF-документов в частном порядке с помощью встраивания Ollama - никаких внешних вызовов API.
Обзор
Высокопроизводительная локальная система RAG (Retrieval-Augmented Generation), встроенная в Rust, которая интегрируется с Claude Desktop через протокол Model Context Protocol (MCP). Поиск и анализ ваших PDF-документов непосредственно в разговорах с Клодом без отправки данных во внешние службы. Этот проект демонстрирует, как создать готовый к производству MCP-сервер с использованием Rust, который: - использование poppler для извлечения текста - использование локальных моделей Ollama (без внешних вызовов API) - через сборы документов - с Claude Desktop через протокол MCP - путем сохранения всей обработки данных локальной Модельный контекстный протокол (MCP) — это стандарт, который позволяет помощникам ИИ, таким как Клод, взаимодействовать с внешними инструментами и источниками данных.
Обзор (машинный перевод)
Высокопроизводительная локальная система RAG (Retrieval-Augmented Generation), встроенная в Rust, которая интегрируется с Claude Desktop через протокол Model Context Protocol (MCP). Поиск и анализ ваших PDF-документов непосредственно в разговорах с Клодом без отправки данных во внешние службы.
Цель
Этот проект демонстрирует, как создать готовый к производству MCP-сервер с использованием Rust, который:
Процессы PDF-документов локально с использованием poppler для извлечения текста ** Генерирует встраивания** с использованием локальных моделей Ollama (без внешних вызовов API) ** Предоставляет семантический поиск** через коллекции документов ** Интегрируется с Claude Desktop по протоколу MCP ** Поддерживает конфиденциальность**, сохраняя всю обработку данных локальной
?️ Что такое MCP?
Модельный контекстный протокол (MCP) — это стандарт, который позволяет помощникам ИИ, таким как Клод, взаимодействовать с внешними инструментами и источниками данных. Вместо того, чтобы ограничиваться данными обучения, MCP позволяет:
Вызов внешних инструментов и функций Доступ к источникам данных в реальном времени Интеграция с локальными приложениями Поддерживать контекст через взаимодействия
Как этот проект использует Rust MCP SDK
Эта страница переведена автоматически. Технические детали смотрите в оригинале.
README
Показан фрагмент оригинального README. Открыть оригинал.
Rust Local RAG
A high-performance, local RAG (Retrieval-Augmented Generation) system built in Rust that integrates with Claude Desktop via the Model Context Protocol (MCP). Search and analyze your PDF documents directly within Claude conversations without sending data to external services.
🎯 Purpose
This project demonstrates how to build a production-ready MCP server using Rust that:
- Processes PDF documents locally using poppler for text extraction
- Generates embeddings using local Ollama models (no external API calls)
- Provides semantic search through document collections
- Integrates seamlessly with Claude Desktop via MCP protocol
- Maintains privacy by keeping all data processing local
🏗️ What is MCP?
The Model Context Protocol (MCP) is a standard that allows AI assistants like Claude to interact with external tools and data sources. Instead of Claude being limited to its training data, MCP enables it to:
- Call external tools and functions
- Access real-time data sources
- Integrate with local applications
- Maintain context across interactions
🦀 How This Project Uses Rust MCP SDK
This implementation leverages the rmcp crate - the official Rust SDK for MCP - to create a server that exposes RAG capabilities to Claude Desktop.
MCP Architecture in This Project
┌─────────────────┐ MCP Protocol ┌──────────────────┐
│ │ (stdin/stdout) │ │
│ Claude Desktop │ ◄─────────────────► │ Rust RAG │
│ │ │ MCP Server │
└─────────────────┘ └──────────────────┘
│
▼
┌──────────────────┐
│ Local RAG Stack │
│ │
│ • PDF Parser │
│ • Ollama │
│ • Vector Store │
│ • Search Engine │
└──────────────────┘
Key MCP Components Used
1. Server Handler Implementation
#[tool(tool_box)]
impl ServerHandler for RagMcpServer {
fn get_info(&self) -> ServerInfo {
// Provides server metadata to Claude
}
}
2. Tool Definitions
Uses rmcp macros to expose RAG functionality as MCP tools:
#[tool(description = "Search through uploaded documents using semantic similarity")]
async fn search_documents(&self, query: String, top_k: Option) -> Result
#[tool(description = "List all uploaded documents")]
async fn list_documents(&self) -> Result
Установка
This server does not publish a one-line install command.
Open the repository installation guide Новичок в MCP? Начните с руководства на mcpskill.org →Конфигурация
{
"mcpServers": {
"rust-local-rag": {
"command": "/Users/yourusername/.cargo/bin/rust-local-rag",
"env": {
"DATA_DIR": "/Users/yourusername/Documents/data",
"DOCUMENTS_DIR": "/Users/yourusername/Documents/rag",
"LOG_DIR": "/tmp/rust-local-rag",
"LOG_LEVEL": "info",
"LOG_MAX_MB": "10"
}
}
}
}