社内規程・マニュアルの問い合わせ
「出張旅費の上限は?」に、規程を検索して根拠の箇所つきで答える。
規程 .md → mrag → Claude Code
Open SourceLocal-first RAG
PC1台で完結する、ローカルファーストのRAG構築ツール。
mragは、手元のPCに小規模なRAGナレッジベースを作り、運用するためのオープンソースのコマンドラインツールです。社内規程やマニュアル、仕様書などの業務文書を取り込んでインデックスを作り、Claude CodeやDifyなどの生成AIから検索できるようにします。文書もインデックスも検索処理もすべてローカルで完結し、クラウドにデータを送りません。
$
プロジェクトを作り、文書を入れ、インデックスを作り、検索する。4つのコマンドで動きます。
全社基盤を待たなくても、いま担当している業務の文書からナレッジベースは作れます。
mragは、必要な文書を必要な分だけ、手元のPCで小さく素早くナレッジ化するためのツールです。
mrag init → add → index → search4つのコマンドで、その日のうちに検索できる。mrag init kb-manual / kb-spec / kb-rules部門・チーム・個人の単位で、必要な文書だけの小さなKBを手元に作れる。KBは増やして束ねられる。mrag inspect chunk <id> / mrag eval "query"チャンクと文脈、ヒット理由を確認して調整できる。覚えるコマンドは4つ。担当業務のマニュアルや仕様書のフォルダから、その日のうちに検索できるナレッジベースができます。
Python、SQLite、Qdrant、Ollamaだけで動きます。既定ではQdrantもプロセス内で動くため、サーバーやコンテナは不要です。文書・インデックス・検索処理はすべて手元のPC上で、Embeddingも文脈生成もローカルのモデルを使います。
どう分割され、どんな文脈が付き、なぜヒットしたのかを mrag inspect と mrag eval で確認し、YAMLで検索戦略やチャンク方法を切り替えられます。KBが増えたら mrag registry で束ねてエージェントに選ばせます。
文書を取り込み、分割し、文脈を付け、ベクトル化して、検索する。
破線の外側(文書の変換と、検索を使うエージェント)以外は、すべてmragとOllamaです。
SQLiteが正本で、Qdrantは再構築できるベクトル索引です。既定の local モードではQdrantもプロセス内で動くため、別途サーバーを立てる必要はありません。
プロジェクトを作り、文書を入れ、インデックスを作り、検索する。それだけです。
mrag init my-kb --non-interactive
cd my-kb
mrag add /path/to/documents --recursive --include '**/*.md'
mrag index
mrag search "クエリ"
mrag.yaml、検索プロファイル、kb_information.yaml、mrag.db を生成します。日本語トークナイザーは自動検出されます。--dry-run で対象を先に確認できます。この時点ではまだ検索できません。--strategy で切り替え、--json でエージェントに渡せます。PDFやOffice文書は、docling や MarkItDown で Markdown に変換してから取り込みます。連携例はこちら。インストール手順は GitHubのREADME を、Claude Codeなどのエージェントに任せる場合は同梱の SETUP.md をご覧ください。
文書の種類と用途に合わせて、分割方法と検索方法を選べます。設定はプロファイル(YAML)にまとまり、切り替えて比べられます。
汎用の recursive、見出し構造を尊重する markdown_recursive、表やコードを壊さない block_aware、子で当てて親で返す parent_child。
キーワード(BM25)、ベクトル(意味検索)、両者を融合する hybrid(既定)、そして parent_child。用途に応じて --strategy で切り替えます。
各チャンクに文書全体の文脈をローカルLLMで付与してから Embedding します。断片だけでは拾えない検索を拾う、Anthropic の Contextual Retrieval 方式です。
CrossEncoder で上位候補を並べ替えます。「ヒットはしているが順位が低い」場合に効きます。
mrag eval で検索品質を測り、mrag inspect でチャンク本文、生成された文脈、セクション階層を覗けます。
日本語形態素解析トークナイザーに対応。Embedding は多言語対応の bge-m3 を既定としています。
mragはAIエージェントが操作することを前提に設計されています。
同梱の SKILL.md / SETUP.md を Claude Code などに読ませると、インストールからKB作成、精度チューニングまで自律的に進めます。
# Claude Code へのプロンプト例
> ./documents/ のMarkdownをもとに ./my-kb という
mragプロジェクトを作成してくださいmrag mcp で read-only の MCP server になります。Claude Code や LM Studio などから、検索をツールとして呼び出せます。stdio と Streamable HTTP に対応。
# index 済みのプロジェクト内で
mrag mcp
# tools: search / list_documents / inspect_*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)mrag registry で複数のKBを knowledge_registry.yaml にまとめます。エージェントは「どのKBを検索すべきか」を判断してから検索します。Agentic RAG の土台です。
mrag registry generate ./knowledges
# knowledges/kb-manual, kb-spec, kb-rules ...全社基盤に載せるほどではない、担当業務のマニュアル・規程・仕様書をまずナレッジ化したいとき。
基盤の契約や構築を待たず、今日フォルダにある文書でRAGを動かして効果を確かめたいとき。
機密性の高い文書を、PCやオンプレミスのサーバーの中だけで生成AIから使いたいとき。
Claude Code や Dify、LM Studio などのエージェントに、自分の業務に特化した知識を MCP や API で渡したいとき。
「出張旅費の上限は?」に、規程を検索して根拠の箇所つきで答える。
規程 .md → mrag → Claude Code
開発中のエージェントに自社製品の仕様を持たせ、実装や問い合わせ対応の根拠にする。
仕様書 → mrag mcp → エージェント
現場の手順書をKBにして、作業者のエージェントから該当手順を引く。
手順書 → mrag → LM Studio
日々のMarkdownを追加して index し続ける。古くなった文書は exclusions で正本を残したまま検索から外す。
add → index → exclusions
既存のDifyボットの外部ナレッジをmragにして、文書を社内に置いたまま回答させる。
mrag serve → Dify External Knowledge
チャンク方法や検索戦略を切り替えて、自社文書での精度を比べる。本番のRAG設計の根拠づくりに。
profiles → eval → inspect
mragは、最初から大きく作るための基盤ではなく、手元で小さく始めて必要に応じて共有・組み込みへ広げていけるように設計されています。
まずは自分のPCで
個人の調査ノートや担当業務の文書をKBにして、Claude Code や LM Studio から使う。
接続mrag mcp(stdio)/ mrag search --json
チームで共有する
社内サーバーや小型PCでmragを常駐させ、LAN内のエージェントやDifyから参照する。
接続mrag serve / mrag mcp(Streamable HTTP)
業務システムに組み込む
REST API経由で自社アプリに検索を組み込み、複数KBをregistryで束ね、更新・除外の運用を設計する。
接続REST API / registry / 運用設計
どの置き場所でも、同じプロジェクト構成のまま育てられます。チーム共有から先は、BathTimeFishの導入支援の範囲です。
BathTimeFish ならでは
mragはオープンソースとして無料で利用できます。一方で、社内での本格利用では、対象文書の選定と変換、チャンクと検索の設計、精度の評価、エージェントや既存システムとの接続、更新と除外の運用など、文書と業務ごとの判断が重要になります。BathTimeFishは、mragを使った社内RAGナレッジの導入とシステム化を支援しています。
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の導入・システム化コンサルティングを提供しています。お問い合わせフォームからご相談ください。
mragはオープンソースです。GitHubからすぐに試せます。社内への導入やシステム化が必要なら、BathTimeFishが支援します。