프라이빗한 로컬 우선 RAG 엔진을 사용하여 AI 에이전트가 PDF, 노트, 스프레드시트와 같은 로컬 문서를 검색하고 가져올 수 있도록 합니다.
다른 이름 Brightdotdev/DARWIN, darwin, darwin-rag
- 스타
- 3
- Tools
- 11
- 다운로드, 30일
- 310
- 최신 버전
- 0.2.18
- 마지막 커밋
- 2026년 10월 14일
- 라이선스
- MIT
Darwin RAG MCP란?
Darwin RAG은(는) MCP server입니다. 프라이빗한 로컬 우선 RAG 엔진을 사용하여 AI 에이전트가 PDF, 노트, 스프레드시트와 같은 로컬 문서를 검색하고 가져올 수 있도록 합니다. 11개 도구를 제공합니다. 예: search_darwin, search_lists, get_search_results.
프로젝트 README에서 생성된 요약
Darwin RAG MCP server 정보
Darwin RAG는 개인 문서를 AI 에이전트에 연결하려는 개발자를 위해 설계된 로컬 우선 검색 증강 생성(RAG) 엔진입니다. Claude Desktop 및 Cursor와 같은 클라이언트가 민감한 데이터를 클라우드 인덱스에 업로드하지 않고도 PDF, Markdown 파일, 스프레드시트, 웹 페이지 등을 검색할 수 있도록 지원합니다. 이 시스템은 고품질 검색을 보장하기 위해 BM25 키워드 매칭과 밀집 임베딩(dense embeddings)을 결합한 하이브리드 방식을 사용합니다.
사용자는 에이전트와 직접 통합하기 위해 stdio를 통해 서버를 로컬에서 실행하거나, SSE 또는 streamable HTTP를 사용하여 원격 서비스로 배포할 수 있습니다. 초기 설정 시 임베딩 모델 다운로드를 위해 인터넷 연결이 필요하지만, 이후의 모든 인덱싱 및 검색 작업은 완전히 오프라인으로 작동합니다. 답변 생성을 활성화하려면 환경 변수를 통해 OpenAI, Anthropic 또는 Gemini와 같은 LLM 제공업체의 API key를 제공해야 합니다. 서버에는 데이터 스토어 관리, 파일 스키마 검사 및 인제스션 파이프라인 실행을 위한 특화된 도구가 포함되어 있습니다.
활용 사례
- 1프라이빗 문서 인제스션AI 에이전트에게 향후 쿼리를 위해 다양한 파일 형식이 포함된 로컬 폴더를 인덱싱하도록 지시합니다.
- 2하이브리드 지식 검색정확한 키워드 매칭과 의미론적 의미를 결합한 검색을 수행하여 관련 정보를 찾습니다.
- 3구조화된 데이터 쿼리특정 필드 값을 사용하여 CSV 또는 JSON 배열과 같이 정리된 파일을 검색합니다.
- 4격리된 프로젝트 관리서로 다른 프로젝트나 테넌트를 완전히 독립적으로 유지하기 위해 별도의 데이터 스토어를 생성합니다.
프로젝트의 README를 바탕으로 작성되었습니다. 모든 활용 사례는 해당 내용의 인용문과 대조하여 확인합니다.
Darwin RAG MCP 설치 방법
형식 확인: 2026년 11월 10일Claude Code에 Darwin RAG MCP 설치
$ claude mcp add --env ANTHROPIC_API_KEY=<YOUR_ANTHROPIC_API_KEY> --env GEMINI_API_KEY=<YOUR_GEMINI_API_KEY> --env OPENAI_API_KEY=<YOUR_OPENAI_API_KEY> darwin -- uvx darwin-ragCursor에 Darwin RAG MCP 설치
~/.cursor/mcp.json
{
"mcpServers": {
"darwin": {
"command": "uvx",
"args": [
"darwin-rag"
],
"env": {
"ANTHROPIC_API_KEY": "<YOUR_ANTHROPIC_API_KEY>",
"GEMINI_API_KEY": "<YOUR_GEMINI_API_KEY>",
"OPENAI_API_KEY": "<YOUR_OPENAI_API_KEY>"
}
}
}
}VS Code에 Darwin RAG MCP 설치
.vscode/mcp.json
{
"servers": {
"darwin": {
"type": "stdio",
"command": "uvx",
"args": [
"darwin-rag"
],
"env": {
"ANTHROPIC_API_KEY": "<YOUR_ANTHROPIC_API_KEY>",
"GEMINI_API_KEY": "<YOUR_GEMINI_API_KEY>",
"OPENAI_API_KEY": "<YOUR_OPENAI_API_KEY>"
}
}
}
}Claude Desktop에 Darwin RAG MCP 설치
claude_desktop_config.json
{
"mcpServers": {
"darwin": {
"command": "uvx",
"args": [
"darwin-rag"
],
"env": {
"ANTHROPIC_API_KEY": "<YOUR_ANTHROPIC_API_KEY>",
"GEMINI_API_KEY": "<YOUR_GEMINI_API_KEY>",
"OPENAI_API_KEY": "<YOUR_OPENAI_API_KEY>"
}
}
}
}Codex에 Darwin RAG MCP 설치
~/.codex/config.toml
[mcp_servers.darwin] command = "uvx" args = ["darwin-rag"] [mcp_servers.darwin.env] ANTHROPIC_API_KEY = "<YOUR_ANTHROPIC_API_KEY>" GEMINI_API_KEY = "<YOUR_GEMINI_API_KEY>" OPENAI_API_KEY = "<YOUR_OPENAI_API_KEY>"
Gemini CLI에 Darwin RAG MCP 설치
~/.gemini/settings.json
{
"mcpServers": {
"darwin": {
"command": "uvx",
"args": [
"darwin-rag"
],
"env": {
"ANTHROPIC_API_KEY": "<YOUR_ANTHROPIC_API_KEY>",
"GEMINI_API_KEY": "<YOUR_GEMINI_API_KEY>",
"OPENAI_API_KEY": "<YOUR_OPENAI_API_KEY>"
}
}
}
}Darwin RAG MCP 도구 11
README에서 감지됨search_darwinsearch_listsget_search_resultsget_search_result_by_idget_schemarun_pipelinepurge_artifactscreate_storelist_filesfile_statusget_logs
| search_darwin | — | |
| search_lists | — | |
| get_search_results | — | |
| get_search_result_by_id | — | |
| get_schema | — | |
| run_pipeline | — | |
| purge_artifacts | — | |
| create_store | — | |
| list_files | — | |
| file_status | — | |
| get_logs | — |
구성
ANTHROPIC_API_KEY비밀Anthropic API key for LLM answer generation
GEMINI_API_KEY비밀Google Gemini API key
OPENAI_API_KEY비밀OpenAI API key for LLM answer generation
DARWIN_BASE_DIROverride the base data directory
| 이름 | 설명 | 유형 |
|---|---|---|
| ANTHROPIC_API_KEY | Anthropic API key for LLM answer generation | 비밀 |
| GEMINI_API_KEY | Google Gemini API key | 비밀 |
| OPENAI_API_KEY | OpenAI API key for LLM answer generation | 비밀 |
| DARWIN_BASE_DIR | Override the base data directory |
자동 검사
2026년 11월 12일에 실행됨전체 보고서 →자동 검사를 통과했습니다. 이는 보안 감사가 아닙니다. 코드를 직접 읽고 서버에 필요한 최소한의 권한만 부여하십시오. 검사 방식
- 소스 저장소 연결 및 접근 가능통과
- 오픈 소스 라이선스 (OSI)통과
- 최근 1년 내 커밋 또는 릴리스통과
- 패키지 이름이 인기 패키지와 유사하지 않음통과
- 원격 엔드포인트가 HTTPS 사용검사되지 않음
- 파괴적인 도구에 라벨 표시됨검사되지 않음
- 모델에 대한 숨겨진 지침 없음통과
- 패키지와 의존성에 심각한 보안 권고 없음통과
README
GitHub에서 보기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
requiredpreset 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 ."
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
| Tool | Description |
|---|---|
search_darwin |
Query the knowledge base with hybrid/semantic/keyword search |
search_lists |
Search structured data (CSVs, JSON arrays) by field values |
get_search_results |
List saved search results |
get_search_result_by_id |
Load a saved search result by filename |
get_schema |
Inspect schemas for structured files (keys, types, record counts) |
run_pipeline |
Ingest + index documents from a path or URL |
purge_artifacts |
Delete pipeline artifacts for specific files |
create_store |
Create a new isolated data store |
list_files |
List all tracked files with pipeline status |
file_status |
Detailed status for a single file across all stages |
get_logs |
Query 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
| Variable | Required | Description |
|---|---|---|
OPENAI_API_KEY |
No* | OpenAI provider key |
ANTHROPIC_API_KEY |
No* | Anthropic provider key |
GEMINI_API_KEY |
No* | Google Gemini provider key |
MISTRAL_API_KEY |
No* | Mistral AI provider key |
GROQ_API_KEY |
No* | Groq provider key |
COHERE_API_KEY |
No* | Cohere provider key |
TOGETHER_API_KEY |
No* | Together AI provider key |
OPENROUTER_API_KEY |
No* | OpenRouter provider key |
DEEPSEEK_API_KEY |
No* | DeepSeek provider key |
DARWIN_BASE_DIR |
No | Override the base data directory |
NO_COLOR |
No | Set 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
| Command | What it does |
|---|---|
darwin-admin setup interactive |
Guided setup: detect hardware, choose models |
darwin-admin setup --preset required |
Download embedding model only (fastest) |
darwin-admin setup --preset recommended |
Embedding + reranker + OCR models |
darwin-admin setup logging |
Reconfigure logging only |
darwin-admin setup validate |
Validate current setup |
See docs/setup.md for the full walkthrough including Docker, from-source install, and API key configuration.
CLI Reference
darwin: User CLI
| Command | Description |
|---|---|
darwin mcp |
Start MCP server (stdio, --sse or --http for network) |
darwin config [client] |
Generate MCP client config |
darwin-admin: Power-user CLI
| Command | Description |
|---|---|
darwin-admin setup |
Setup models, logging, and configuration |
darwin-admin status |
System status overview |
darwin-admin models |
Model registry: list, install, switch, keys |
darwin-admin store |
Data store: status, files, audit, health, repair |
darwin-admin pipeline |
Ingestion pipeline: run, ingest, index, purge |
darwin-admin search |
Interactive search |
darwin-admin logs |
Structured log viewer and management |
darwin-admin system |
System information |
darwin-admin uninstall |
Remove 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
| Doc | What |
|---|---|
| setup.md | Full setup walkthrough |
| mcp.md | MCP server, tools, resources, transports |
| admin.md | Admin CLI reference |
| architecture.md | For developers and contributors |
| pipeline.md | Ingestion & indexing |
| retrieval.md | Search engine |
| storage.md | DarwinStore |
| models.md | Model registry & inference |
| logger.md | Structured logging |
| orchestrators.md | High-level business logic |
| api.md | Python API (Darwin class) |
Contributing
Found a bug? Want to add something? You're welcome here.
- Issues: open one at github.com/BrightDotDev/DARWIN/issues
- Code: fork, branch, PR. Keep it minimal.
- AI-generated code is fine, but you own what you ship. Test it before submitting.
Read CONTRIBUTING.md for the full guidelines.
License
MIT. See LICENSE.
Core architecture and implementation by BrightDotDev.
Darwin RAG MCP 질문
Darwin RAG MCP를 Claude Code에 추가하려면 어떻게 하나요?
터미널에서 claude mcp add --env ANTHROPIC_API_KEY=<YOUR_ANTHROPIC_API_KEY> --env GEMINI_API_KEY=<YOUR_GEMINI_API_KEY> --env OPENAI_API_KEY=<YOUR_OPENAI_API_KEY> darwin -- uvx darwin-rag를 실행합니다. 모든 프로젝트에서 사용할 수 있게 하려면 --scope user를 추가합니다.
Darwin RAG MCP를 Cursor에 추가하려면 어떻게 하나요?
~/.cursor/mcp.json를 열고 mcpServers 아래에 서버를 추가합니다. 위 설치 섹션에 표시된 Cursor 구성을 사용합니다.
Darwin RAG MCP는 어떤 도구를 제공하나요?
11개 도구를 제공합니다. 예: search_darwin, search_lists, get_search_results, get_search_result_by_id, get_schema.
Darwin RAG는 오프라인에서 작동하나요?
네, 설정 중 모델을 다운로드하기 위해 초기 인터넷 연결이 필요하지만, 이후 모든 검색 및 인덱싱 작업은 완전히 오프라인으로 실행됩니다.
데이터의 프라이버시가 보장되나요?
네, Darwin은 로컬 우선 방식으로 설계되어 문서를 클라우드 인덱스로 전송하지 않고 사용자의 로컬 머신에 그대로 유지합니다.
Darwin과 함께 사용할 수 있는 AI 클라이언트는 무엇인가요?
Claude Desktop 및 Cursor와 같은 표준 MCP 클라이언트에서 작동합니다.