memors について
memorsは、エージェント向けのローカルMCPサーバー兼ナレッジベースで、文書と出典付きの事実をSQLiteに保存します。ハイブリッド検索は順位の理由と出典を示し、同じデータをターミナルやMarkdown出力から確認できます。
主な機能
- 01文書と出典付きの事実をローカル保存
- 02キーワード・完全一致・セマンティック検索を統合
- 03出典付きで順位の理由を説明
- 04memo://アドレスから記録を参照
- 05エンティティと関連する文章を探索
- 06読みやすいナレッジベースをエクスポート
活用シーン
- 01出典を示しながらプロジェクトメモを検索
- 02履歴を保って事実を記録・訂正
- 03文章が検索に一致した理由を確認
- 04エージェント以外からナレッジベースを閲覧
MCP 対応
このサーバーは、ナレッジベースの記録を登録、検索、参照、管理する10種類のツールを提供します。MCPクライアント向けにmemo://リソースとaskプロンプトも公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
memors-mcp
エージェントに測定可能で説明可能なナレッジベースを提供するローカルの MCP サーバーです。Go バイナリは 1 つで、クラウドも CGo も不要です。ナレッジベースごとに SQLite ファイルを 1 つ使用します。文書と事実は出典情報とともに登録され、検索結果は 4 つの検索経路からのランキング済みリストとして返されます。各結果にはアドレス、信頼度、順位の理由が含まれます。人間はターミナルから、またはエクスポートした Markdown として、同じナレッジベースを閲覧できます。
当初は obra/private-journal-mcp を Go で書き直したものとして始まり、2026-10 にナレッジベースとして一から再構築されました。バージョン 1.0 では、ツール名とパラメーター、memo:// アドレス、説明フィールド、エクスポート形式が仕様として確定しています。検索の仕組みは docs/architecture.md に、研究レイヤー(グラフ、圧縮、Web UI)の計画は docs/roadmap.md に、その背景となる研究は docs/knowledge-base-sota.md に記載されています。
できること
Claude(または任意の MCP クライアント)は、1 つのナレッジベースに対して 10 個のツールを利用できます。
| ツール | 用途 |
|---|---|
ingest | エージェントが取得または作成したドキュメントを Markdown として保存します。同一の内容なら何も行わず、内容が変更された場合や新しいバージョンの場合は新しい改訂版として保存します |
search | 単語、完全一致する識別子、意味から該当する箇所を検索し、1 つのリストに統合します。response_format: explain を指定すると、各結果がその順位になった理由を説明します |
read | memo:// アドレスをたどり、トークン数の上限内で、該当箇所、そのセクション、またはドキュメント全体を読み取ります |
remember | 証拠と有効期間を添えて、1 つの独立した事実を記録します。事実を訂正するには supersedes を渡します。古い事実は履歴として保持されます |
forget | 理由を添えてドキュメントまたは事実を廃止します。すべてのインデックスから除外され、アドレスをたどると「……のため、……に廃止」と表示されます。ツールの呼び出しで廃止できるのは、ツールが書き込んだレコードだけです |
promote | レコードの信頼度を上げるよう依頼します。ツールの呼び出しだけで信頼度を上げることはできません。ダイアログを表示できるクライアントは、抜粋、出典、目標レベルを提示してユーザーに直接確認します。それ以外のクライアントには、人が実行するコマンドが表示されます |
explore | 名前を指定した対象からグラフインデックスをたどり、その対象に言及する箇所と、そこに併記されている対象を、それぞれ証拠のアドレスとともに表示します |
compact | 整理作業を提案します。ページを用意すべきエンティティ、古くなったページ、矛盾する事実、よく似た名前や箇所を提示します。各項目には必要な箇所と事実が含まれます。サーバーがページを書き込むことはありません |
submit | ページ、競合に関する判断、または統合に関する判断を返します。ページは、引用した箇所とともに派生データ(is_inference)として保存されます。抜け漏れチェックでは、ページに含まれていない事実が報告されます。dry_run を指定すると、まず差分を表示します |
status | 名前空間、埋め込みモデル、保留中のベクトル、バックグラウンドジョブ、グラフとページの件数を表示します |
macOS では、オプションのメニューバーアプリ MemoRS Tray(tray/。別のバイナリで、cgo を使用してビルドする唯一の部分)が、各 memors-mcp serve --http サーバーに接続中のクライアントを表示し、サーバーの Live ページをウィンドウで開き、サーバーを起動・停止します。セットアップアシスタントは GitHub のリリースから memors-mcp をダウンロード、検証、インストールし、最初のナレッジベースをセットアップします。設定ウィンドウでは、残りの設定(ログイン時に起動、サーバー、埋め込みモデル)を行えます。docs/guide/user/menu-bar.md を参照してください。
人間向けには、memors-mcp ui を利用できます。ループバック上で動作する読み取り専用のウェブページで、検索(エージェントに表示されるものと同じ説明テーブル)、出典情報と履歴を含むドキュメントや箇所、事実のタイムライン、エンティティの近傍、エージェントが作成したページ、ステータス、lint、クエリログを確認できます。ここからナレッジベースを変更することはできません。
同じアドレスは MCP リソース(memo://doc/{id}、memo://chunk/{id}、memo://source/{id}、memo://fact/{id})として読み取れます。また、memo://index または memo://ns/{namespace}/index では、セッション開始時に使える 8 KB 未満の、ドキュメントごとに 1 行のビューが得られます。MCP プロンプト ask は、会話をナレッジベースとのチャットに変換します。クライアントのモデルは、検索と読み取りの結果に基づいて回答し、すべての主張に memo:// アドレスを付けて引用します(Claude Code では、まず /mcp__memors__ask を実行し、その後は通常どおり質問します)。SKILL.md では、エージェントがツールを効果的に使う方法を説明しています。memors-mcp export --index を実行すると、AGENTS.md または CLAUDE.md ファイルに使える同じインデックスが出力されます。
すべてのデータはローカルに保存されます。システム全体で外部へのネットワーク接続が発生するのは、初回起動時に Hugging Face から埋め込みモデルをダウンロードするときの 1 回だけです。その後、マシンの外に出るデータはありません。サーバーが URL を取得することはなく、エージェントが取得したテキストを渡します。
検索の仕組み
search は、同じ事前フィルター済みの現行パッセージ集合に対して最大3つの検索アームを実行し、結果を融合します。
- キーワードアーム — パッセージとそのセクション見出しを対象に、Porter ステマーと BM25 スコアリングを使った SQLite FTS5 で検索します。「review」で「reviewing」が見つかります。
- 完全一致アーム — 識別子を分割せずに保持する2つ目の FTS5 インデックス(
useCallback、net/http、ERR_CONN_RESET)で検索します。クエリがコードのように見える場合に自動で追加されます。 - セマンティックアーム — 設定されたモデル(デフォルトは
granite-small-r2、IBM granite-embedding-small-english-r2、384次元、hugot の純粋な Go 製 ONNX バックエンドを介してローカルで実行)を使ってクエリと各パッセージを埋め込み、通常の SQLite テーブル内でコサイン類似度を比較します。代替モデルはmemors-mcp model lsで一覧表示できます。即時利用可能な静的モデルpotionも含まれます。
3つのランキング済みリストは、等しい重みで相互順位融合を使って統合されます(順位1のキーワードのみのヒットと順位1のベクトルヒットは同点になるため、キーワードアームは結果の順序を変えるだけでなく、結果自体を追加できます)。パッセージは最良のパッセージに基づいてドキュメント単位に集約され、ノートと会話には上限付きの新しさブーストが加わります(×0.8~×1.0、90日ごとに半減。バージョン管理されたドキュメントは古くなりません)。スコアに大きな差が初めて生じる位置でリストを切り、結果を要求されたトークン予算に収めます。根拠が弱い範囲(0.30)を下回るセマンティック類似度だけを根拠とするパッセージは除外されるため、コーパスに存在しない内容についての質問には、ノイズだらけのページではなく、理由とヒントを添えた結果ゼロが返されます。
質問に2つ以上の既知の要素が含まれる場合、または要素間の関係を尋ねる場合は、2つの構造アームが加わります。エンティティアームは、名前が指定されたエンティティに言及するパッセージを返します。グラフアームは、名前が指定された各エンティティを起点に、パーソナライズされた PageRank を使って言及グラフをたどり、すべての探索経路で一致したパッセージを返します。これにより、Billing Service に関する質問で、その名前が一度も出てこない複製ページを見つけられます。explore は同じグラフを手動でたどります。エンティティアームを常時有効にすると通常の検索精度が下がったため、どちらも常時有効ではなく、条件に応じてルーティングされます。
キュレーションされたページは、検索対象となる3つ目の項目です(granularity: page)。エージェントがパッセージから compact と submit を通じて作成した Markdown で、派生データとして保存され、基になったパッセージを引用します。基になったパッセージのドキュメントが改訂または忘却されると、直ちに古いものとしてマークされます。
4つ目のテキストアームは、remember で記録されたファクトに一致し、その根拠となるパッセージに投票します(「追加のキーとしてのファクト」)。granularity: fact はファクト自体を返します。as_of を指定すると、指定した日付にナレッジベースが保持していた内容、つまり当時有効だった置換前の改訂版や差し替え前のファクトが返されます。忘却されたレコードは、as_of を指定しても決して返されません。スコープフィルター(名前空間、種別、ソース、ライブラリ、バージョン、タグ、日付、最小信頼度)は、ランキング前に各アームのクエリ内で適用されるため、フィルターをかけても検索結果が失われることはありません。各結果には出典情報と関連度バンドが含まれます。response_format: explain を指定すると、アームごとの順位と寄与度、新しさ係数、クエリ単位のトレース(実行されたアームとその理由、スコープで除外された内容、リストのカット位置)も含まれます。ターミナルにも同じ数値が表示されます:memors-mcp search "<q>" --explain および memors-mcp explain "<q>" memo://chunk/<n>。
ストレージ
MEMORS_KB の名前ごとに SQLite ファイルが1つ作成され、~/.memors-mcp/kb/<name>.db に保存されます($MEMORS_HOME/kb/ が設定されている場合はその配下)。memors-mcp が作成するディレクトリとファイルのアクセス権は所有者に限定されます(0700/0600)。すでに存在するディレクトリのアクセス権がより広く設定されていても、変更されません。WAL モードが有効なため、2つのプロセスが同じトークンにアクセスしても(たとえば、2つの Claude Code セッションが同時に動作しても)競合しません。
名前は作業ディレクトリから推測されるのではなく、明示的に指定します。プロジェクトごとに(シェルではなく MCP サーバーの設定で)MEMORS_KB を設定すると、それぞれのプロジェクトで独立したナレッジベースを利用できます。1つのファイル内では、名前空間は棚として扱われ、デフォルトでは検索対象となります。プライバシーを分ける境界となるのは、ファイルを分けることです。
セットアップ
リリースから。 ご利用のプラットフォーム用のアーカイブをリリースからダウンロードして展開し、memors-mcp を PATH 上の任意の場所に配置して、memors-mcp version を実行します。macOS および Linux(amd64、arm64)、Windows(amd64)用のアーカイブが用意されています。このサーバーは MCP レジストリにも io.github.kKEo/memors として登録されています。
ソースから。 Go 1.26 以降が必要です。
git clone https://github.com/kKEo/memors
cd memors
make build
これにより、単一の memors-mcp バイナリが生成されます(CGO_ENABLED=0、約30MB、実行時の依存関係なし)。
Claude Code の場合:
claude mcp add memors --env MEMORS_KB=my-project -- /path/to/memors-mcp
Claude Code または Claude Desktop の MCP 設定に追加します。
{
"mcpServers": {
"memors": {
"command": "/path/to/memors-mcp",
"env": {
"MEMORS_KB": "my-project"
}
}
}
}
初回起動時、memors-mcp はデフォルトの埋め込みモデル(granite-embedding-small-english-r2、Apache-2.0、約140MB)を ~/.cache/memors-mcp/models にダウンロードし、標準エラー出力に1行を表示します。モデルの準備が整うまでは、検索はキーワードのみで実行され、その旨が表示されます(degraded)。その間に書き込まれたドキュメントには、モデルの準備が整うとベクトルが付与されます。事前にダウンロードするには、memors-mcp model pull granite-small-r2 を実行します。中断されたダウンロードは検出され、次回の実行時に再試行されます。
コマンド
引数なしでバイナリを実行すると、標準入出力で MCP サーバーが起動します。ターミナルから実行する場合:
memors-mcp ingest <file|dir|-> [--ns --kind --uri --title --library --version --trust --context --embed=false]— Markdown ドキュメントを追加します。同一の内容は何もせず、内容が変わると新しいリビジョンになりますmemors-mcp search "<query>" [--mode auto|hybrid|keyword|exact|semantic --ns --library --version --kind --limit --format table|json|md --explain --no-model]— 検索します。--explainを指定すると、各結果がその順位になった理由が追加されますmemors-mcp explain "<query>" <memo://chunk/n>— 1 件の結果について、詳しい説明を表示しますmemors-mcp log tail|calls|show <id>|replay|prune— オプトイン方式のクエリログと呼び出しログ(MEMORS_QUERY_LOG=1)を操作します。callsは所要時間と結果を含むツール呼び出しの一覧を表示します。replayはログに記録された検索を、ラベル付けしてコーパスに追加できる、ラベルなしの評価候補として出力します(1 行につき JSON オブジェクト 1 件)memors-mcp metrics [--json --since 24h]— ナレッジベースのゲージと、オプトイン方式のログから得られるツールごとの呼び出し統計を表示しますmemors-mcp remember "<fact>" [--ns --about --valid-from --valid-to --supersedes --evidence --trust user|curated]— 事実を記録します(CLI からの書き込みはuser信頼度です。curatedは手動で入力する必要があります)memors-mcp forget <memo://...> --reason "<why>" [--redact]— ドキュメントまたは事実を無効にします。理由は保存され、表示されますmemors-mcp facts ls [--ns --as-of YYYY-MM-DD --history]— 事実、または指定した日時点で信じられていた内容を一覧表示しますmemors-mcp trust ls | promote <uri> --to user|curated | demote <uri> --to agent|user— 信頼度を管理する人間向けのインターフェースです。変更はすべて監査記録に残りますmemors-mcp explore <name> [--ns --hops 1|2 --as-of --json]— 1 つのエンティティからグラフインデックスをたどります。そのエンティティの記述箇所、同時に言及されているエンティティ、および根拠のアドレスを表示しますmemors-mcp graph merges [--state open|merged|rejected|all] | merge <id> | reject <id> | rebuild [--ns]— 類似したエンティティ名のレビューキューを操作します(人間が判断しない限り統合されません)。rebuildは、グラフレイヤーの導入前、または抽出処理の変更後に書き込まれたファイルの言及を再抽出しますmemors-mcp compact [--ns --kinds page,stale,conflict,merge,duplicate --lint --json]— 圧縮作業を提案します。--executor ollama [--apply]を指定すると、ローカルモデルを使用してページ項目を書き込みます(MEMORS_OLLAMA_URL、MEMORS_OLLAMA_MODEL。--applyを指定しない場合はドライランです)memors-mcp submit <item-id> [--content-file page.md | --keep <memo://fact/..> | --accept|--reject | --skip] [--reason ..] [--dry-run]— 作業項目に対する人間側の操作ですmemors-mcp lint [--ns]— 矛盾、孤立したエンティティ、欠落または古くなったページ、期限切れの事実を検出します。変更は行いませんmemors-mcp pages ls [--ns --stale]— キュレーション済みページを一覧表示しますmemors-mcp read <memo://doc/...> [--history]— ドキュメント、チャンク、ソース、または事実とその来歴を表示するか、リビジョン履歴を表示しますmemors-mcp ls [--ns --kind --since --json]— 有効なドキュメントを新しい順に一覧表示しますmemors-mcp export --md <dir> [--ns]— 来歴を記したフロントマター付きの Markdown ファイルを書き出します(Obsidian で開けます。再インポートしても新しいリビジョンは作成されません)memors-mcp export --index [--ns --library x@v --max-bytes 8192]—AGENTS.md/CLAUDE.md向けに、ドキュメントごとのタイトル、アドレス、種類、バージョン、信頼度を含むコンパクトなインデックスを出力し、事実を要約します。収まらなかった行数は末尾に表示されますmemors-mcp migrate— 旧バイナリで書き込まれたファイルを現在のスキーマに移行します(status、ui、searchなどの読み取り専用コマンドは、古いファイルを拒否し、その旨を表示します)memors-mcp verify [--repair]— チャンク、ベクトル、インデックスを検証しますmemors-mcp backfill— ベクトルが未作成のチャンクを埋め込みますmemors-mcp status— ナレッジベースの統計情報を表示します(読み取り専用。ファイルは作成されません)memors-mcp ui [--addr 127.0.0.1:0 --no-model]— 読み取り専用の Web インターフェースです。説明付きの表を使った検索、来歴と履歴を含むドキュメントや記述箇所、事実のタイムライン、エンティティの近傍、ソース付きページ、ステータス、lint、クエリログ、評価レポートを利用できます。--allow-remoteを指定しない限りループバックのみで動作し、変更を行うルートはありません
ラボ:
memors-mcp eval [--models hash,minilm,potion,granite-small-r2 --profiles default,all --corpus notes|kb|all --format table|md|json --explain-failures --rerank --agent-proxy]— 各モデルでフィクスチャコーパスを使い捨てのナレッジベースに読み込み、各プロファイルのラベル付きクエリを実行し、品質(再現率、MRR、nDCG、棄却率)とコスト(レイテンシー、トークン数)を並べて表示します。hashは決定論的なテスト用エンベッダーです。それ以外の ID では実際のモデルをダウンロードします。memors-mcp model ls | smoke <id>|--all | pull <id> | use <id> | redownload [<id>]— 埋め込みモデルのレジストリです。ライセンス付きの候補を一覧表示し、ピュア Go バックエンドで読み込めるモデルとその速度を確認したり、ダウンロードしたり、ナレッジベースのデフォルトとして設定したりできます。memors-mcp reindex [--model <id>]— あるモデルのベクトルがまだないすべてのパッセージを埋め込みます(「再チャンク化ではなく、再埋め込み」)。複数のモデルのベクトルを共存させられるため、モデルを切り替えても戻すのに費用はかかりません。memors-mcp profiles show [<name>]— プロファイルのすべてのランキング定数と、その導出方法を表示します。プロファイルはdefault、precise(取得範囲を広げ、接続されている場合はクロスエンコーダーで再ランキング)、recency、code、minmax(ランク統合ではなくスコア統合)、およびアブレーションのkeyword-only、semantic-onlyです。オーバーライドは$MEMORS_HOME/profiles.jsonに保存されます。memors-mcp version— ビルドバージョン、MCP プロトコルバージョン、Go バージョン、モデルディレクトリを表示しますmemors-mcp model redownload— キャッシュ済みのコピーを破棄してモデルを新たにダウンロードし、終了します
旧表記の --stats と --redownload-model は、あと1リリースの間は引き続き使用でき、非推奨の警告が表示されます。
環境変数
| 変数 | 必須 | 用途 |
|---|---|---|
MEMORS_KB | いいえ | 開くデータベースを選択します。ファイルは $MEMORS_HOME/kb/<name>.db です。使用できる文字は英字、数字、.、_、- のみです。デフォルトは default です。 |
MEMORS_HOME | いいえ | ベースディレクトリです(デフォルトは ~/.memors-mcp)。 |
MEMORS_QUERY_LOG | いいえ | 1 にすると、オプトイン方式で検索のログ(引数、結果のアドレス、スコア、トレース。パッセージのテキストは含みません)を同じファイルに保存します。 |
MEMORS_MODEL | いいえ | memors-mcp model ls に表示される埋め込みモデル ID です(デフォルトは granite-small-r2)。クエリにはそのモデルのベクトルを使用します。切り替え後は memors-mcp reindex を実行してください。 |
MEMORS_PROFILE | いいえ | ランキングプロファイルです(デフォルトは default)。memors-mcp profiles show を参照してください。 |
MEMORS_OLLAMA_URL, MEMORS_OLLAMA_MODEL | いいえ | memors-mcp compact --executor ollama 用のオプションのローカルモデルです。--allow-remote を指定しない場合はループバックのみです。それ以外では使用されません。 |
MEMORS_METRICS_ADDR | いいえ | serve --metrics-addr と同じです。Prometheus メトリクスを http://<addr>/metrics で公開します。ループバックアドレスのみ使用できます。空の場合は無効です。 |
MEMORS_LOG_FORMAT | いいえ | text(デフォルト)または json です。構造化ログを stderr に出力します。 |
MEMORS_LOG_LEVEL | いいえ | debug、info(デフォルト)、warn、error です。 |
MEMORS_RERANK | いいえ | 1 にすると、クロスエンコーダーの再ランカー(cross-encoder/ms-marco-MiniLM-L6-v2、Apache-2.0、約 91 MB)を読み込みます。再ランキングが有効なプロファイル(precise)のみが使用します。 |
可観測性
すべてのデータはマシン内にとどまります。メトリクスはループバックアドレスから取得され、ログはサーバーの stderr に出力されます。オプトインの呼び出しログは、独自の SQLite ファイルに保存されます。
- メトリクス。
memors-mcp serve --metrics-addr 127.0.0.1:9469(またはMEMORS_METRICS_ADDR)を設定すると、Prometheus テキスト形式のGET /metricsが公開されます。ツールごとの呼び出し数と結果(レイテンシーおよび結果サイズのヒストグラムを含む)、モードと結果ごとの検索(アームごとのレイテンシーおよび候補数を含む)、棄却、縮退した検索、カットオフの種類、グラフキャッシュのヒット数、モデルと役割ごとの埋め込みレイテンシー、操作ごとのストア書き込みに加え、すべてのテーブル数(memors_kb_documents_live、memors_kb_pages_stale、memors_kb_pending_embeddings{model}、…)、Go ランタイムの統計情報、memors_build_infoのゲージを提供します。このエンドポイントはループバック以外のアドレスを拒否し、GET のみ応答し、Host ヘッダーを検証します。UI も独自の/metricsを提供します。レジストリは標準ライブラリを約 300 行使って構成されているため、ダッシュボードは依存するすべての行を読み取れます。名前は Prometheus の規約に従い、必要になればブリッジを介して OpenTelemetry の名前に一対一で対応付けられます。 - ログ。 stderr に出力される
log/slog、MEMORS_LOG_FORMAT=text|json、MEMORS_LOG_LEVEL。ツール呼び出しごとに 1 行(ツール、クライアント、レイテンシー、結果、エラー分類、結果、トークン)、検索ごとに 1 行(モード、解決されたアーム、カットオフ、縮退の理由、レイテンシー)が記録されます。MCP のlogging機能は公開されません。このサーバーが話すプロトコルのバージョンでは非推奨であり、Claude Code では stdio サーバーの stderr も表示されるためです。 - 呼び出しログ。
MEMORS_QUERY_LOG=1を設定すると、すべてのツール呼び出しがすべての検索とともに記録されます。memors-mcp log calls、memors-mcp log tail、UI の/logページで確認できます。引数は許可リストに基づいて要約されます。書き込まれた内容や返されたテキストが保存されることはありません。 - スナップショット。
memors-mcp metrics [--json] [--since 24h]はテーブル数のゲージと、オプトインのログから取得したツールごとの呼び出し数、エラー数、p50/p95 レイテンシー、および検索の集計値を出力します。ライブカウンターはプロセスごとの値なので、スクレイピングする場所も表示されます。
MEMORS_LOG_FORMAT=json memors-mcp serve --metrics-addr 127.0.0.1:9469 2> memors.log
curl -s http://127.0.0.1:9469/metrics | grep memors_mcp_tool_calls_total
Claude Code 組み込みのメモリとの違い
Claude Code には独自のメモリ(Auto Memory、およびカスタムエージェント向けの API レベルのファイルベースのメモリツール)が付属しています。これらは優れたデフォルト設定であり、多くの人にとっておそらく適切な選択肢です。
memors-mcp は、ブラックボックスではなく、調査や測定ができる、小規模で完全にローカルな、すべてを読み取れる検索システムとして存在します。ランキングの定数はすべて、由来が記述された名前付きのプロファイルフィールドです(memors-mcp profiles show)。すべての結果でその順位の理由を説明できます(response_format: explain、memors-mcp explain)。すべてのレコードには、その出所と保証した人が記録されています。また、internal/eval/ の評価ハーネスには、変更のたびにクエリ単位で照合されるベースラインが記録されています。メモリシステムが返す内容の理由を理解したい場合や、自分のデータで検索戦略を試したい場合に、このシステムが役立ちます。
詳細を読む
- ユーザーガイド:memors-mcp の目的、10 分で始められるクイックスタート、日常的な使い方を、平易な英語で説明しています。
- 運用者ガイド:インストール、設定リファレンス、検索の調整、Prometheus による監視、バックアップ、トラブルシューティングについて説明しています。両ガイドは
.github/workflows/docs.ymlによって GitHub Pages に公開されます。make docsでローカルにビルドできます。 docs/architecture.md:レイヤー、書き込みと読み取りの経路、数式、プロファイル、説明の契約、アドレス方式について説明しています。docs/schema.md:すべてのテーブルと列を平易な言葉で説明しています。信頼度の移行、as_ofで参照できる内容についても説明しています。docs/eval/:タグごとに測定レポートが 1 つあります。articles/:初心者向けに書かれた、各フェーズに関する記事です:移行ではなく再構築する理由、ナレッジスキーマの設計、説明可能な検索、最大の効果をもたらすエンベッダー、来歴、信頼、時間、エージェント向けツールの設計、純粋な Go 製 MCP サーバーの公開、オラクルではなくインデックスとしてのグラフ。articles/compaction-without-a-server-llm.md:エージェントが Wiki を作成し、サーバーがその正確さを保つ方法について説明しています。articles/a-knowledge-base-you-can-read.md:読み取り専用の Web インターフェースと、その数値がエージェントの数値と同じである理由について説明しています。articles/measuring-the-server-itself.md:テレメトリーを使わないメトリクスとログについて説明しています。CHANGELOG.md。
記事、評価レポート、スパイクノートは、プロジェクトが memors に改名される前に書かれたため、旧名称(memo-mcp、memo-tray、MEMO_*、~/.memo-mcp)が使われています。memo:// アドレスに変更はありません。
プライバシー
- すべての処理はローカルで行われます。埋め込みはプロセス内で実行され、検索には SQLite を使用します。
- 初回のモデルダウンロード後、ネットワークへの呼び出しはありません。
- テレメトリー、分析、外部へのログ記録はありません。メトリクスとログはありますが、ローカルに限られます。
/metricsはループバックアドレスにバインドされ、プル専用です。ログは stderr に出力され、オプトインの呼び出しログはお使いの SQLite ファイルに保存されます。 - ソースコードは全体を読めるほど小さく、難読化も縮小もされていません。
- 信頼度を上げるには人間の承認が必要です。
promoteは MCP のエリシテーションを使用します。クライアントは抜粋、ソース、移行先のレベルを含むダイアログを表示し、ダイアログが承認された場合に限り変更が適用されます。エリシテーションのダイアログを自動承認するフックや設定を使うと、この保護は失われます。そのような設定を行う場合、userとcuratedのレコードはagentのレコードと同程度の信頼性しかないものとして扱ってください。 - 知っておくべきことが 2 つあります。ナレッジベースはプレーンテキストの SQLite ファイルであり、ホームディレクトリへのアクセス権を持つ人なら誰でも読み取れます。また、モデルが書き込む内容や検索する内容はすべてツール入力として MCP ホストを経由するため、そのプライバシーはホストと同程度です。埋め込みモデルを利用できない場合、検索はキーワードのみで実行され、その旨が表示されます(
degraded)。その状態で書き込まれたドキュメントのベクトルは、memors-mcp backfillの実行時、または次回のサーバー起動時に生成されます。
プロジェクトの状況
1.0:コアとなるナレッジベースは完成し、測定済みです。安定している機能と、1.x で追加された機能(インデックスとしてのグラフ、圧縮とページ、読み取り専用の Web UI、ローカルでの可観測性)については、docs/roadmap.md を参照してください。予定していない機能:サーバー側の LLM、v0 のジャーナルファイルのインポート。貢献や課題の報告を歓迎します。
ライセンス
MIT — LICENSE を参照してください。obra/private-journal-mcp を基にしており、こちらも MIT ライセンスです。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。