Open SourceLocal-first RAG

RAGを、もっと小さく、
手元に。

PC1台で完結する、ローカルファーストのRAG構築ツール。

mragは、手元のPCに小規模なRAGナレッジベースを作り、運用するためのオープンソースのコマンドラインツールです。社内規程やマニュアル、仕様書などの業務文書を取り込んでインデックスを作り、Claude CodeやDifyなどの生成AIから検索できるようにします。文書もインデックスも検索処理もすべてローカルで完結し、クラウドにデータを送りません。

  • LicenseMIT
  • RuntimePython 3.11+
  • ModelsOllama(bge-m3 ほか)
  • IndexSQLite FTS5 + Qdrant
  • InputsMarkdown / Text
  • InterfacesCLI · HTTP API · MCP
mrag — my-kb
$ 

プロジェクトを作り、文書を入れ、インデックスを作り、検索する。4つのコマンドで動きます。

業務に必要なだけ、ナレッジ化。

全社基盤を待たなくても、いま担当している業務の文書からナレッジベースは作れます。
mragは、必要な文書を必要な分だけ、手元のPCで小さく素早くナレッジ化するためのツールです。

これまで mragなら
ナレッジ化したい文書があっても、ベクトルDBやEmbedding APIの契約・基盤構築から始まり、試すまでに時間がかかる。
mrag init → add → index → search4つのコマンドで、その日のうちに検索できる。
全社向けの大きなRAG基盤に、部門やチームの小さな文書群を載せるのは大げさで、順番待ちになる。
mrag init kb-manual / kb-spec / kb-rules部門・チーム・個人の単位で、必要な文書だけの小さなKBを手元に作れる。KBは増やして束ねられる。
「なぜこの回答になったのか」がブラックボックスで、精度を上げる手がかりがない。
mrag inspect chunk <id> / mrag eval "query"チャンクと文脈、ヒット理由を確認して調整できる。

小さく、すぐ作れる

覚えるコマンドは4つ。担当業務のマニュアルや仕様書のフォルダから、その日のうちに検索できるナレッジベースができます。

PC1台で完結し、社外に出ない

Python、SQLite、Qdrant、Ollamaだけで動きます。既定ではQdrantもプロセス内で動くため、サーバーやコンテナは不要です。文書・インデックス・検索処理はすべて手元のPC上で、Embeddingも文脈生成もローカルのモデルを使います。

必要に応じて、育てて、束ねる

どう分割され、どんな文脈が付き、なぜヒットしたのかを mrag inspect と mrag eval で確認し、YAMLで検索戦略やチャンク方法を切り替えられます。KBが増えたら mrag registry で束ねてエージェントに選ばせます。

手元で完結する、RAGのパイプライン。

文書を取り込み、分割し、文脈を付け、ベクトル化して、検索する。
破線の外側(文書の変換と、検索を使うエージェント)以外は、すべてmragとOllamaです。

Documents PDF / Office / Markdown / Text
docling / MarkItDown Markdownへ変換(外部ツール)
mrag add 文書を登録
mrag index チャンク分割 → 文脈付与 → Embedding
SQLite FTS5 正本・キーワード索引
Qdrant ベクトル索引(プロセス内)
mrag search ハイブリッド検索 → リランク
CLI / REST API / Dify API / MCP mrag serve · mrag mcp
AIエージェント Claude Code · Codex · Dify · LM Studio
Ollamabge-m3(Embedding)· gemma4(文脈生成)· ローカルで実行

SQLiteが正本で、Qdrantは再構築できるベクトル索引です。既定の local モードではQdrantもプロセス内で動くため、別途サーバーを立てる必要はありません。

4つのコマンドで、ナレッジベースができる。

プロジェクトを作り、文書を入れ、インデックスを作り、検索する。それだけです。

mrag init my-kb --non-interactive
cd my-kb
mrag add /path/to/documents --recursive --include '**/*.md'
mrag index
mrag search "クエリ"
  1. 1
    init — プロジェクトを作るmrag.yaml、検索プロファイル、kb_information.yaml、mrag.db を生成します。日本語トークナイザーは自動検出されます。
  2. 2
    add — 文書を登録するMarkdownやテキストをファイル単位、またはディレクトリごと登録します。--dry-run で対象を先に確認できます。この時点ではまだ検索できません。
  3. 3
    index — インデックスを作るチャンクに分割し、Ollamaで Embedding を計算して、Qdrant と SQLite FTS5 に書き込みます。2回目以降は追加分だけを処理します。
  4. 4
    search — 検索する既定はキーワード検索とベクトル検索を融合したハイブリッド検索。--strategy で切り替え、--json でエージェントに渡せます。

PDFやOffice文書は、docling や MarkItDown で Markdown に変換してから取り込みます。連携例はこちら。インストール手順は GitHubのREADME を、Claude Codeなどのエージェントに任せる場合は同梱の SETUP.md をご覧ください。

精度は、設定で育てる。

文書の種類と用途に合わせて、分割方法と検索方法を選べます。設定はプロファイル(YAML)にまとまり、切り替えて比べられます。

チャンキング 4種

汎用の recursive、見出し構造を尊重する markdown_recursive、表やコードを壊さない block_aware、子で当てて親で返す parent_child。

検索ストラテジー 4種

キーワード(BM25)、ベクトル(意味検索)、両者を融合する hybrid(既定)、そして parent_child。用途に応じて --strategy で切り替えます。

コンテキスチュアル検索

各チャンクに文書全体の文脈をローカルLLMで付与してから Embedding します。断片だけでは拾えない検索を拾う、Anthropic の Contextual Retrieval 方式です。

リランキング

CrossEncoder で上位候補を並べ替えます。「ヒットはしているが順位が低い」場合に効きます。

評価と調査

mrag eval で検索品質を測り、mrag inspect でチャンク本文、生成された文脈、セクション階層を覗けます。

日本語に強い

日本語形態素解析トークナイザーに対応。Embedding は多言語対応の bge-m3 を既定としています。

作るのも、使うのも、エージェントで。

mragはAIエージェントが操作することを前提に設計されています。

SKILL.md で、エージェントが構築する

同梱の SKILL.md / SETUP.md を Claude Code などに読ませると、インストールからKB作成、精度チューニングまで自律的に進めます。

# Claude Code へのプロンプト例
> ./documents/ のMarkdownをもとに ./my-kb という
  mragプロジェクトを作成してください

MCP server として公開する

mrag mcp で read-only の MCP server になります。Claude Code や LM Studio などから、検索をツールとして呼び出せます。stdio と Streamable HTTP に対応。

# index 済みのプロジェクト内で
mrag mcp
# tools: search / list_documents / inspect_*

Dify の外部ナレッジに

mrag serve は Dify External Knowledge API 互換エンドポイントを持ち、Dify のチャットボットからローカルのKBを参照できます。ネイティブ REST API も提供します。

mrag serve --host 0.0.0.0 --port 8000
# POST /retrieval  (Dify External Knowledge API)

複数のKBを束ねる

mrag registry で複数のKBを knowledge_registry.yaml にまとめます。エージェントは「どのKBを検索すべきか」を判断してから検索します。Agentic RAG の土台です。

mrag registry generate ./knowledges
# knowledges/kb-manual, kb-spec, kb-rules ...
つながるクライアント
  • Claude Code
  • Codex
  • Gemini CLI
  • LM Studio
  • Dify
  • MCP対応クライアント

mragの使いどころ

  • 部門・チーム単位のナレッジ

    全社基盤に載せるほどではない、担当業務のマニュアル・規程・仕様書をまずナレッジ化したいとき。

  • 手元ですぐ試したい

    基盤の契約や構築を待たず、今日フォルダにある文書でRAGを動かして効果を確かめたいとき。

  • 社外に出せない文書

    機密性の高い文書を、PCやオンプレミスのサーバーの中だけで生成AIから使いたいとき。

  • エージェントに業務知識を持たせたい

    Claude Code や Dify、LM Studio などのエージェントに、自分の業務に特化した知識を MCP や API で渡したいとき。

こんな使い方ができます

社内規程・マニュアルの問い合わせ

「出張旅費の上限は?」に、規程を検索して根拠の箇所つきで答える。

規程 .md → mrag → Claude Code

製品仕様書・設計書のQA

開発中のエージェントに自社製品の仕様を持たせ、実装や問い合わせ対応の根拠にする。

仕様書 → mrag mcp → エージェント

保守・運用手順書

現場の手順書をKBにして、作業者のエージェントから該当手順を引く。

手順書 → mrag → LM Studio

議事録・ナレッジの蓄積

日々のMarkdownを追加して index し続ける。古くなった文書は exclusions で正本を残したまま検索から外す。

add → index → exclusions

Difyチャットボットのローカルナレッジ

既存のDifyボットの外部ナレッジをmragにして、文書を社内に置いたまま回答させる。

mrag serve → Dify External Knowledge

RAGの実験環境

チャンク方法や検索戦略を切り替えて、自社文書での精度を比べる。本番のRAG設計の根拠づくりに。

profiles → eval → inspect

用途に合わせて、置き場所を選べます

mragは、最初から大きく作るための基盤ではなく、手元で小さく始めて必要に応じて共有・組み込みへ広げていけるように設計されています。

Personal

まずは自分のPCで

個人の調査ノートや担当業務の文書をKBにして、Claude Code や LM Studio から使う。

接続mrag mcp(stdio)/ mrag search --json

Team

チームで共有する

社内サーバーや小型PCでmragを常駐させ、LAN内のエージェントやDifyから参照する。

接続mrag serve / mrag mcp(Streamable HTTP)

System

業務システムに組み込む

REST API経由で自社アプリに検索を組み込み、複数KBをregistryで束ね、更新・除外の運用を設計する。

接続REST API / registry / 運用設計

どの置き場所でも、同じプロジェクト構成のまま育てられます。チーム共有から先は、BathTimeFishの導入支援の範囲です。

BathTimeFish ならでは

OSSだからこそ、必要なところだけプロに頼めます

mragはオープンソースとして無料で利用できます。一方で、社内での本格利用では、対象文書の選定と変換、チャンクと検索の設計、精度の評価、エージェントや既存システムとの接続、更新と除外の運用など、文書と業務ごとの判断が重要になります。BathTimeFishは、mragを使った社内RAGナレッジの導入とシステム化を支援しています。

無料・OSS

自分たちで進められること

  • mragの利用(MIT License)
  • 手元のPCでのKB作成・検索
  • プロファイルによるチャンク・検索戦略の切り替え
  • MCP / REST API / Dify互換APIでの公開
  • SKILL.mdを使ったエージェントによる構築
有償・BathTimeFish

開発元に頼めること

  • PoC(小規模検証) — 対象文書の選定・変換、KB構築、検索品質の評価
  • 精度チューニング — チャンキング/検索戦略/文脈付与/リランキングの設計
  • 業務システムへの組み込み — Claude Codeなどのエージェント連携、Dify連携、MCP/REST API経由でのアプリ接続
  • 運用設計 — 文書の更新・除外の運用、複数KBの構成、オンプレミス/社内サーバーでの常駐
  • 社内展開の支援 — 利用ガイド作成、担当者向けハンズオン
BathTimeFishに相談する

BathTimeFishは、mragの開発元として、導入支援・精度設計・システム化・運用設計を提供しています。小さく作って精度を確かめ、業務に組み込むところまでを一緒に進めます。

よくある質問

はい。MITライセンスのオープンソースソフトウェアです。商用利用も可能です。

通常の利用では不要です。Embeddingや文脈生成はOllama上のローカルモデルで行います。モデルの初回ダウンロード時のみネットワークが必要です。

mragが取り込むのはMarkdownとプレーンテキストです。PDFはdocling、Office文書はMarkItDownなどでMarkdownに変換してから取り込んでください。

Python 3.11以上と、Ollama(ollama serve が起動済み)です。Qdrantは既定でプロセス内で動くため、別途のサーバーは不要です。

日本語に対応したEmbeddingモデル(bge-m3)と、形態素解析トークナイザー(sqlite-vaporetto)に対応しています。精度は文書と設定に依存するため、mrag eval で確かめながら調整します。

mrag mcp により、Claude Code、Codex、LM StudioなどのMCP対応クライアントから検索できます。DifyからはExternal Knowledge APIで接続できます。REST APIも提供しています。

mragは小規模なナレッジベースをローカルで運用することを目的に設計されています。文書が多い場合は、業務やテーマごとに複数のKBに分けて mrag registry で束ねる構成を推奨します。

はい。BathTimeFishは、mragを使った社内RAGの導入・システム化コンサルティングを提供しています。お問い合わせフォームからご相談ください。

RAGを、もっと小さく、手元に。
まずは手元で試すところから。

mragはオープンソースです。GitHubからすぐに試せます。社内への導入やシステム化が必要なら、BathTimeFishが支援します。

導入相談でわかること

  • 対象文書に合ったKBの分け方
  • 必要な環境(PC・Ollama・モデル)
  • お使いのエージェントやDifyとの接続方法
  • 精度検証の進め方
  • 運用と社内展開のステップ