Skip to main content

Markdown document management system with vector and full-text search

Project description

Librarian

A personal knowledge library for AI agents, built on Arcade for the Model Context Protocol (MCP).

Overview

Librarian provides AI agents with persistent storage for text, documents, and knowledge. Agents can store information and retrieve it later through semantic and keyword search, maintaining context across conversations.

graph LR
    A[Agent Stores Info] --> B[Parser]
    B --> C[Chunker]
    C --> D[Embedder]
    D --> E[(SQLite + vec)]
    F[Agent Queries] --> G[Hybrid Search]
    E --> G
    G --> H[Relevant Context]

Features

  • Persistent knowledge storage for AI agents
  • SQLite storage with sqlite-vec for vector search
  • Full-text search using FTS5 with BM25 ranking
  • Hybrid search combining semantic and keyword matching
  • Max Marginal Relevance (MMR) for diverse results
  • Configurable embedding models (local or OpenAI-compatible API)
  • Header-aware text chunking with overlap
  • Time-bounded search filters
  • CLI and MCP server interfaces

Installation

git clone https://github.com/ArcadeAI/librarian.git
cd librarian
./setup.sh

Or install manually:

uv pip install -e ".[dev]"

CLI Usage

# Add files to the library
libr add ~/notes

# Search the library
libr search "machine learning concepts"

# List sources
libr list

# View library statistics
libr index

# Rebuild the index
libr index build

MCP Server

Start the server for AI assistant integration:

# stdio transport (Claude Desktop, CLI)
libr serve stdio

# HTTP transport (Cursor, VS Code)
libr serve http --port 8000

See the Arcade MCP documentation for integration details.

Available Tools

Tool Description
Librarian_SearchLibrary Search the library with hybrid vector + keyword search
Librarian_SemanticSearchLibrary Find content by meaning (semantic similarity)
Librarian_KeywordSearchLibrary Find content by exact keywords
Librarian_SearchLibraryByDates Search within a date range
Librarian_AddToLibrary Store new content in the library
Librarian_UpdateLibraryDoc Update existing content
Librarian_ReadFromLibrary Read full document content
Librarian_RemoveFromLibrary Remove content from the library
Librarian_ListLibraryContents List all stored content
Librarian_IndexDirectoryToLibrary Bulk import files
Librarian_GetLibrarySources List sources with document/chunk counts
Librarian_GetLibraryStats Overall library statistics

Configuration

Set via environment variables:

Variable Default Description
DOCUMENTS_PATH ./documents Root directory for files
DATABASE_PATH ~/.librarian/index.db SQLite database location
EMBEDDING_PROVIDER openai local or openai
EMBEDDING_MODEL all-MiniLM-L6-v2 Local model name
OPENAI_API_BASE http://localhost:7171/v1 OpenAI-compatible API URL
OPENAI_EMBEDDING_MODEL qwen3-embedding-06b API model name
CHUNK_SIZE 512 Max characters per chunk
CHUNK_OVERLAP 50 Overlap between chunks
SEARCH_LIMIT 10 Default results limit
MMR_LAMBDA 0.5 MMR diversity (0=diverse, 1=relevant)
HYBRID_ALPHA 0.7 Vector vs keyword weight (1=vector only)

Project Structure

librarian/
├── cli.py           # Command-line interface
├── server.py        # MCP server and tool definitions
├── config.py        # Configuration management
├── indexing.py      # Document indexing service
├── types.py         # Shared type definitions
├── storage/
│   ├── database.py  # SQLite operations
│   ├── vector_store.py  # sqlite-vec search
│   └── fts_store.py     # FTS5 search
├── processing/
│   ├── embed/       # Embedding providers
│   ├── parsers/     # Document parsers
│   └── transform/   # Text chunking
├── retrieval/
│   └── search.py    # Hybrid search + MMR
└── utils/
    └── timeframe.py # Time filter utilities

Development

make install    # Install dependencies
make test       # Run tests
make lint       # Run linter
make format     # Format code
make typecheck  # Type checking
make check      # All checks
make evals      # Run evaluations

Resources

License

MIT License - see LICENSE for details.

Contact

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

agent_library-0.7.0.tar.gz (72.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

agent_library-0.7.0-py3-none-any.whl (67.7 kB view details)

Uploaded Python 3

File details

Details for the file agent_library-0.7.0.tar.gz.

File metadata

  • Download URL: agent_library-0.7.0.tar.gz
  • Upload date:
  • Size: 72.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for agent_library-0.7.0.tar.gz
Algorithm Hash digest
SHA256 07fb9eb23f900f32c5f3ad01e8992497bd36010da2e4c65175942722f1ec3762
MD5 8248eeee23e7961df9aa8484dedc15a3
BLAKE2b-256 286d3f6b443f6900732ca586e554e40a5812e0aee57d3e5f7bb24a1f1b7280e9

See more details on using hashes here.

Provenance

The following attestation bundles were made for agent_library-0.7.0.tar.gz:

Publisher: release.yml on arcadeai-labs/librarian

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file agent_library-0.7.0-py3-none-any.whl.

File metadata

  • Download URL: agent_library-0.7.0-py3-none-any.whl
  • Upload date:
  • Size: 67.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for agent_library-0.7.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7be4e99bc435d46096a9d6b6c8b5d3ffb608523cf2b64ff62365478bed711f0e
MD5 4412704135a66dffbb732be61a6372d2
BLAKE2b-256 163cc41330cfb57096029744448ac963480c3f9da55565f9ae924df802c5e1e5

See more details on using hashes here.

Provenance

The following attestation bundles were made for agent_library-0.7.0-py3-none-any.whl:

Publisher: release.yml on arcadeai-labs/librarian

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page