1. Conduid
  2. RAG
  3. Retrieval Kit
MCP server · RAG

Retrieval Kit

A small library for document ingestion, vector and keyword search to aid the creation of RAG systems and MCP servers for knowledge retrieval

Unclaimed rag
34Low

Scored 4 months ago · breakdown

About Retrieval Kit

Retrieval Kit is an MCP server in the RAG category: a small library for document ingestion, vector and keyword search to aid the creation of RAG systems and MCP servers for knowledge retrieval. It has been installed 0 times through Conduid.

Install

Clone
git clone https://github.com/nikelaz/retrieval-kit

This server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.

Ask AI

Ask AI about Retrieval Kit

Powered by Claude · Grounded in docs

I know everything about Retrieval Kit. Ask me about installation, configuration, usage, or troubleshooting.

Security checks

  • ·README presentNot checked yet.
  • ·License declaredNot checked yet.
  • ·Tests presentNot checked yet.
  • ·Dependencies pinnedNot checked yet.
  • ·No dynamic code executionNot checked yet.
  • ·Scoped permissionsNot checked yet.

README

Retrieval Kit

Retrieval Kit is a small Rust library for local document ingestion, vector search, keyword search, and MCP-style retrieval tool definitions.

It currently ships with:

  • LanceDB storage for documents, chunks, vectors, and full-text search
  • ONNX Runtime embeddings through sentence-transformers/all-MiniLM-L12-v2
  • single-document, batch, file, and glob ingestion
  • semantic search, keyword search, document list/get/delete APIs
  • JSON tool definitions and invocation helpers for retrieval integrations

Example

use retrieval_kit::{
    DbEngine, EmbeddingsConfig, EmbeddingsProviderKind, RKit,
};
use std::path::PathBuf;

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let mut rkit = RKit::new(
        DbEngine::LanceDb {
            path: PathBuf::from("./rkit-data"),
            vector_dimensions: 384,
        },
        EmbeddingsProviderKind::Ort(EmbeddingsConfig::default()),
    )?;

    rkit.init().await?;

    let ingested = rkit
        .ingest_document("Rust makes local retrieval systems practical.".to_string())
        .await?;

    let semantic_results = rkit
        .vector_search("local search in Rust".to_string(), 5)
        .await?;
    let keyword_results = rkit.keyword_search("Rust".to_string(), 5).await?;
    let document = rkit.get_document(ingested.document_id).await?;

    println!("{semantic_results:#?}");
    println!("{keyword_results:#?}");
    println!("{document:#?}");

    Ok(())
}

Configuration Notes

The default embedder downloads model assets from Hugging Face unless local paths are supplied in EmbeddingsConfig. To run fully offline, provide all four local asset paths:

  • local_model_path
  • local_tokenizer_path
  • local_pooling_config_path
  • local_transformer_config_path

For the default all-MiniLM-L12-v2 model, set LanceDB vector_dimensions to 384. Initialization validates known embedder dimensions against the database schema and fails early on mismatches.

Ingestion uses tokenizer-aware chunking when the ORT embedder is initialized, so chunks are split before model truncation would drop content. The standalone chunk_text helper remains character based.

Retrieval Tools

get_tool_definitions returns JSON schemas for:

  • semantic_search
  • keyword_search
  • list_documents
  • get_document

Use invoke_tool to dispatch those tools directly from JSON arguments. Search tools default to a limit of 10 when no limit is provided.

Current Limits

  • LanceDB and ORT are the only built-in backend/provider pair.
  • Document metadata and metadata filters are not implemented yet.
  • LanceDB writes are prevalidated and partially cleaned up on insert failure, but they are not fully transactional.
  • Vector indexes are created only after enough rows exist for LanceDB's automatic vector index training. Keyword index and later vector index creation errors are returned to callers.

README mirrored from the source repository 4 months ago. The original is authoritative.

Questions

About Retrieval Kit

How do I install Retrieval Kit?

Run git clone https://github.com/nikelaz/retrieval-kit, then add the server to your MCP client's configuration. Conduid has recorded 0 installs, so the command is known to work with current clients.

Is Retrieval Kit safe to use with an AI agent?

Its trust score is 34 out of 100 (low). Conduid hasn't run static security checks on this repository yet, so review the source yourself before granting it credentials. It has no ConduID identity yet, so agent calls to it are not receipted.

Is Retrieval Kit still maintained?

Conduid hasn't recorded a commit date for this repository yet. Check the repository directly for recent activity.