KR

ksaritek/rust-local-rag

Developer tools

Эта страница переведена автоматически. Технические детали смотрите в оригинале. Открыть оригинал

34 stars 5 forks Качество 49 Тренд 12

Высокопроизводительный локальный сервер 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
Открыть полный README на GitHub

Установка

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" } } } }