Command Palette

Search for a command to run...

UnylyUnyly
Весь каталог

Rag

БесплатноНе проверен

A CLI tool and MCP server that turns markdown documentation into a searchable, queryable knowledge base.

GitHubEmbed

Описание

A CLI tool and MCP server that turns markdown documentation into a searchable, queryable knowledge base.

README

rag is a CLI tool and MCP server that turns codebases and documentation into a searchable, queryable knowledge base with vector search, RAG, and a structural knowledge graph.


Prerequisites

  • Bun runtime
  • Ollama running locally with embedding model (auto-pulled if missing)

Minimum hardware

Component Requirement
RAM 4 GB (8 GB for larger doc sets)
CPU Any x86-64 or ARM64, 2+ cores
GPU Optional. Any NVIDIA GPU with 2+ GB VRAM. CPU-only fallback is functional but slower
Disk 100 MB for index (scales with doc count)

Indexing 5000 chunks: ~25s on RTX 3060, ~3min on CPU-only.

Install

git clone https://github.com/FrameMuse/llm-rag.git
cd llm-rag
bun install

Add shell alias:

alias rag='bun /path/to/llm-rag/scripts/cli.ts'

Quick start

cd my-project
rag init              # create .rag/ project scope
rag index             # chunk, embed, index all files
rag mcp search "..."  # search indexed content
rag mcp graph "..."   # query knowledge graph
rag serve             # start MCP server

Commands

Command Description
rag init Create .rag/ config, mcp.json, .gitignore
rag index Chunk files, embed via Ollama, store in LanceDB
rag serve Start MCP server (STDIO) for current .rag/ scope
rag graph build Build knowledge graph from code and docs
rag mcp <tool> One-shot CLI proxy for MCP tools
rag info Show index statistics

rag mcp tools

Tool Usage Description
search rag mcp search "query" [--chunks N] [--limit N] Semantic search
graph rag mcp graph "topic" [--signature] [--limit N] Knowledge graph query
get-document rag mcp get-document <path> Read file content
list-documents rag mcp list-documents List indexed files
config rag mcp config Print opencode.json snippet

Project scope (.rag/)

project/
├── .rag/
│   ├── config.json       # { name, embedModel, ragModel, pattern, chunks, temperature }
│   ├── mcp.json          # MCP config snippet for opencode.json
│   ├── .gitignore        # *
│   ├── data/
│   │   ├── lancedb/      # Vector index (generated by rag index)
│   │   └── graph.json    # Knowledge graph (generated by rag index)
├── *.md
├── src/
└── ...

Each project keeps its index and graph local. rag discovers .rag/ by walking up from current directory (like git).

MCP integration

Register in opencode.json:

{
  "mcp": {
    "my-project": {
      "type": "local",
      "command": ["rag", "serve"],
      "cwd": "/path/to/project",
      "enabled": true
    }
  }
}

The MCP server exposes 8 tools:

Tool Purpose
search Vector search
graph_find Search graph nodes
graph_neighbors Node connections
graph_god_refs Core abstractions
graph_path Shortest path
graph_communities List communities
list_documents List indexed files
get_document Read file content

Run rag mcp config from project directory to print the snippet with cwd pre-filled.

Architecture

flowchart LR
  MD[.md files] --> Chunker
  MD2[.ts/.js files] --> AST
  AST -->|declarations| Graph
  MD -->|headings + links| Graph
  Chunker -->|heading split| Chunks
  Chunks -->|Ollama embed| Vectors
  Vectors -->|store| LanceDB
  Query -->|embed| LanceDB
  LanceDB -->|search| Results
  Question -->|embed + search| Context
  Context -->|Ollama chat| Answer
  Graph -->|structural context| Answer
  • Vector RAG: chunks embedded → vector search → top K → LLM synthesis
  • Knowledge graph: TS/JS AST and MD headings/links → nodes + edges → structural queries

Knowledge graph

The knowledge graph extracts structural relationships from TypeScript, JavaScript, and Markdown files:

  • TS/JS: functions, classes, interfaces, types, enums, imports, extends, class members
  • MD: headings, frontmatter titles, cross-document links

Two-tier design

Free-form — shows everything the graph knows about a topic in one report:

rag mcp graph "render"
→ Matching references + top match detail + connections + community + god rank + surprises

Subcommands — focused queries when you know what you need:

Subcommand Description
rag mcp graph god-refs [--limit N] Most connected core abstractions
rag mcp graph communities List all directory-based communities
rag mcp graph community <id> Show all references in a community
rag mcp graph surprises [--limit N] Cross-community surprising connections
rag mcp graph cycles Detect circular imports
rag mcp graph neighbors <node> Connections for a node
rag mcp graph path <from> <to> Shortest path between two nodes
rag mcp graph list Reference and edge counts

Flags:

  • --signature — show declaration signatures (e.g., function render(ctx: CanvasCtx): void)
  • --limit N — max results to show (default 10)
  • --dir in|out|both — direction for neighbors (default both)
  • --type <edgeType> — filter edges by type

Built automatically at the end of each rag index. Incrementally updated during --watch mode.

Vision (image captioning)

Images are captioned via qwen3-vl during index phase 2 (text first, then images in parallel with 4 workers). The caption text is embedded and stored alongside text chunks, making images searchable by description.

Supported: .png .jpg .jpeg .gif .webp .svg (SVG via sharp).

Requires qwen3-vl pulled in Ollama.

Configuration

.rag/config.json:

{
  "name": "my-project",
  "embedModel": "mxbai-embed-large",
  "ragModel": "llama3.2:3b",
  "visionModel": "qwen3-vl",
  "pattern": "",
  "chunks": 8,
  "temperature": 0.3
}

Models auto-pull if missing. --chunks overrides per query.

License

MIT

from github.com/FrameMuse/llm-rag

Установка Rag

У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.

▸ github.com/FrameMuse/llm-rag

FAQ

Rag MCP бесплатный?

Да, Rag MCP бесплатный — установка в пару кликов через Unyly без оплаты.

Нужен ли API-ключ для Rag?

Нет, Rag работает без API-ключей и переменных окружения.

Rag — hosted или self-hosted?

Self-hosted: сервер запускается локально на твоей машине командой из раздела установки.

Как установить Rag в Claude Desktop, Claude Code или Cursor?

Открой Rag на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.

Похожие MCP

Compare Rag with

Не уверен что выбрать?

Найди свой стек за 60 секунд

Автор?

Embed-бейдж для README

Похожее

Все в категории ai