Darwin RAG

Registre officiel IA et agents

Local-first RAG engine with MCP server for AI agent integration.

Installation

Ajoutez ceci à la configuration MCP de votre client (Claude Desktop : claude_desktop_config.json ; Cursor : .cursor/mcp.json ; VS Code et les autres utilisent la même forme « mcpServers »).

PYPI package darwin-rag
Claude Code
claude mcp add darwin-rag -e 'OPENAI_API_KEY=<your openai_api_key>' -e 'ANTHROPIC_API_KEY=<your anthropic_api_key>' -e 'GEMINI_API_KEY=<your gemini_api_key>' -e 'DARWIN_BASE_DIR=<DARWIN_BASE_DIR>' -- uvx darwin-rag==0.2.18 mcp
Configuration JSON (Claude Desktop, Cursor, VS Code)
{
    "mcpServers": {
        "darwin-rag": {
            "command": "uvx",
            "args": [
                "darwin-rag==0.2.18",
                "mcp"
            ],
            "env": {
                "OPENAI_API_KEY": "<your openai_api_key>",
                "ANTHROPIC_API_KEY": "<your anthropic_api_key>",
                "GEMINI_API_KEY": "<your gemini_api_key>",
                "DARWIN_BASE_DIR": "<DARWIN_BASE_DIR>"
            }
        }
    }
}

Variables d'environnement

  • OPENAI_API_KEY secret OpenAI API key for LLM answer generation
  • ANTHROPIC_API_KEY secret Anthropic API key for LLM answer generation
  • GEMINI_API_KEY secret Google Gemini API key
  • DARWIN_BASE_DIR Override the base data directory

Documentation

Tirée du README du projet sur GitHub, actualisée chaque semaine. Les liens ouvrent GitHub.

Sommaire
  1. Darwin RAG
  2. Why Darwin?
  3. Quick Start
  4. Use it as an agent skill
  5. MCP Tools
  6. Remote / HTTP Mode
  7. Environment Variables
  8. Setup Details
  9. CLI Reference
  10. Python API
  11. Documentation
  12. Contributing
  13. License

Darwin RAG

Search your own documents with any AI agent, privately, on your own machine.

Darwin is a local-first RAG engine that ingests documents, indexes them with BM25 + dense embeddings, and exposes search through an MCP server. Point Claude, Cursor, or any MCP client at it and your agent can search your PDFs, notes, spreadsheets, and web pages without sending them to a cloud index.

One-time internet is needed to download models during setup. After that, search and indexing run fully offline.

  • Ingestion: PDF, Markdown, HTML, images (OCR), CSV, Excel, ODS, URLs
  • Indexing: BM25 keyword + dense embedding hybrid index with configurable chunking strategies
  • Search: Hybrid, semantic, or keyword retrieval with reranking, diversity rerank, and structural penalties
  • Generation: LLM-backed answer synthesis via LiteLLM (OpenAI, Anthropic, Gemini, etc.)
  • Observability: Structured logging with per-session history, queryable via MCP
  • Isolation: Multiple independent stores for tenant/project separation
  • Deployment: stdio (AI agent subprocess), SSE, or Streamable HTTP; Docker-ready
  • Local-first: Everything runs locally, fully offline-capable after setup

Built by BrightDotDev.


Why Darwin?

  • Private by default. Your documents stay on your machine.
  • Works with your agent. Standard MCP server: Claude Desktop, Cursor, and other MCP clients.
  • Search that fits the question. Keyword for exact terms, semantic for meaning, hybrid when unsure.
  • Light to start. The required preset downloads just one embedding model.

Quick Start

1. Install
pip install darwin-rag
2. Set up models
# Interactive: detects hardware, pick your models
darwin-admin setup interactive

# Or one-shot (embedding-only, no prompts)
darwin-admin setup --preset required
3. Start the MCP server & connect
# stdio mode: for AI agent subprocess (Claude Desktop, Cursor, etc.)
darwin mcp

# Or HTTP mode: for remote clients
darwin mcp --http --port 8765

Configure your MCP client:

{
  "mcpServers": {
    "darwin": {
      "command": "darwin",
      "args": ["mcp"],
      "env": {
        "OPENAI_API_KEY": "sk-..."  // At least one LLM provider key
      }
    }
  }
}

Or generate config automatically:

darwin config claude          # Claude Desktop config
darwin config cursor          # Cursor config
darwin config all --copy      # All clients + copy to clipboard
4. Try it

Ask your agent: "Ingest ./my-notes with Darwin, then find everything I wrote about <topic>."


Use it as an agent skill

Darwin ships with a skill (skills/darwin-rag/SKILL.md) that tells agents when and how to use the MCP tools: check what's indexed, ingest, pick a search mode, and answer from sources. Copy the darwin-rag folder into your agent's skills directory (for Claude Code: ~/.claude/skills/).


MCP Tools

ToolDescription
search_darwinQuery the knowledge base with hybrid/semantic/keyword search
search_listsSearch structured data (CSVs, JSON arrays) by field values
get_search_resultsList saved search results
get_search_result_by_idLoad a saved search result by filename
get_schemaInspect schemas for structured files (keys, types, record counts)
run_pipelineIngest + index documents from a path or URL
purge_artifactsDelete pipeline artifacts for specific files
create_storeCreate a new isolated data store
list_filesList all tracked files with pipeline status
file_statusDetailed status for a single file across all stages
get_logsQuery session logs (oldest first, INFO excluded)

Full documentation: docs/mcp.md


Remote / HTTP Mode

Start the server on a network-accessible endpoint:

# SSE transport (legacy)
darwin mcp --sse --host 0.0.0.0 --port 8765

# Streamable HTTP transport (recommended for production)
darwin mcp --http --host 0.0.0.0 --port 8765

Configure your MCP client with the URL:

{
  "mcpServers": {
    "darwin": {
      "url": "http://your-host:8765/mcp"  // or /sse for SSE mode
    }
  }
}

Environment Variables

VariableRequiredDescription
OPENAI_API_KEYNo*OpenAI provider key
ANTHROPIC_API_KEYNo*Anthropic provider key
GEMINI_API_KEYNo*Google Gemini provider key
MISTRAL_API_KEYNo*Mistral AI provider key
GROQ_API_KEYNo*Groq provider key
COHERE_API_KEYNo*Cohere provider key
TOGETHER_API_KEYNo*Together AI provider key
OPENROUTER_API_KEYNo*OpenRouter provider key
DEEPSEEK_API_KEYNo*DeepSeek provider key
DARWIN_BASE_DIRNoOverride the base data directory
NO_COLORNoSet to any value to disable ANSI color output

\ At least one LLM provider key is required for answer generation. Search/indexing works without any.*


Setup Details

CommandWhat it does
darwin-admin setup interactiveGuided setup: detect hardware, choose models
darwin-admin setup --preset requiredDownload embedding model only (fastest)
darwin-admin setup --preset recommendedEmbedding + reranker + OCR models
darwin-admin setup loggingReconfigure logging only
darwin-admin setup validateValidate current setup

See docs/setup.md for the full walkthrough including Docker, from-source install, and API key configuration.


CLI Reference

darwin: User CLI

CommandDescription
darwin mcpStart MCP server (stdio, --sse or --http for network)
darwin config [client]Generate MCP client config

darwin-admin: Power-user CLI

CommandDescription
darwin-admin setupSetup models, logging, and configuration
darwin-admin statusSystem status overview
darwin-admin modelsModel registry: list, install, switch, keys
darwin-admin storeData store: status, files, audit, health, repair
darwin-admin pipelineIngestion pipeline: run, ingest, index, purge
darwin-admin searchInteractive search
darwin-admin logsStructured log viewer and management
darwin-admin systemSystem information
darwin-admin uninstallRemove Darwin data and configuration

See docs/admin.md for the full command reference.


Python API

For embedding darwin-rag as a library in your own app:

from core import Darwin

d = Darwin()
d.ingest("./papers", recursive=True)
results = d.search("what is this paper about")
records = d.search_records(filters={"status": "active"})

Full reference: docs/api.md


Documentation

DocWhat
setup.mdFull setup walkthrough
mcp.mdMCP server, tools, resources, transports
admin.mdAdmin CLI reference
architecture.mdFor developers and contributors
pipeline.mdIngestion & indexing
retrieval.mdSearch engine
storage.mdDarwinStore
models.mdModel registry & inference
logger.mdStructured logging
orchestrators.mdHigh-level business logic
api.mdPython API (Darwin class)

Contributing

Found a bug? Want to add something? You're welcome here.

Read CONTRIBUTING.md for the full guidelines.


License

MIT. See LICENSE.

Core architecture and implementation by BrightDotDev.

Questions fréquentes

Qu'est-ce que Darwin RAG ?

Local-first RAG engine with MCP server for AI agent integration.

Comment installer Darwin RAG ?

Il s'exécute sur votre machine. Dans Claude Code : claude mcp add darwin-rag -e 'OPENAI_API_KEY=<your openai_api_key>' -e 'ANTHROPIC_API_KEY=<your anthropic_api_key>' -e 'GEMINI_API_KEY=<your gemini_api_key>' -e 'DARWIN_BASE_DIR=<DARWIN_BASE_DIR>' -- uvx darwin-rag==0.2.18 mcp. Pour les autres clients, collez la configuration JSON de cette page dans leurs réglages MCP.

Faut-il une clé API pour Darwin RAG ?

Oui. Il attend OPENAI_API_KEY, ANTHROPIC_API_KEY, GEMINI_API_KEY, à renseigner dans sa configuration.

Darwin RAG est-il open source ?

Oui. Son code est sur GitHub sous licence MIT.

Qui maintient Darwin RAG ?

Il est publié par Brightdotdev. AI.tn le référence sans le maintenir ni le recommander.

Issu du registre MCP officiel. Être listé n'est pas une recommandation : vérifiez le code et les permissions d'un serveur avant de lui donner accès à vos données.