mcpField
M
Mazarbul

Mazarbul

ローカル
github.comメモリ・ナレッジ26 日前に更新

Mazarbul について

Mazarbulは、AIエージェント向けのローカルファーストなメモリ兼構造化データ基盤です。Go製バイナリにCLIとMCPサーバーを備え、署名付きイベントログ、複合検索、Git同期により記録の監査性と管理権を保ちます。

主な機能

  1. 01自由記述と構造化メモリ
  2. 02ベクトル・全文・グラフ検索
  3. 03署名付き追記型イベント履歴
  4. 04Gitによる競合のない同期
  5. 05事実の出典追跡と監査

活用シーン

  1. 01エージェントのセッション間でプロジェクト情報を保持
  2. 02関連するエンティティや事実の検索
  3. 03監査可能な意思決定ログの管理
  4. 04複数デバイス間でのエージェントメモリ同期

MCP 対応

MazarbulはMCPサーバーを提供し、対応エージェントが`remember`、`recall`やエンティティ操作などのツールを通じてメモリを保存・検索できます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ
パッケージ
mcpbmazarbul_v0.2.3_darwin_arm64.mcpb
mcpbmazarbul_v0.2.3_darwin_amd64.mcpb
mcpbmazarbul_v0.2.3_linux_amd64.mcpb
mcpbmazarbul_v0.2.3_linux_arm64.mcpb

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

Mazarbul

エージェント時代の記録システム。

ローカルファーストで Git ネイティブな、AI エージェント向けのメモリと構造化データです。Go の単一バイナリで動作し、MCP に対応します。データがマシンの外に出ることはありません。

License: Apache 2.0 Go 1.26 MCP Local-first Works with Claude Code

Mazarbul:ゼロから記憶を持つエージェントへ

Mazarbul とは

エージェントには前向性健忘があります。セッションをまたぐとすべて忘れてしまうため、コードベースや好み、決定事項を毎回説明し直すことになります。よくある解決策は長続きしません。CLAUDE.md は容量に限界があり、内容も古くなります。Markdown の保管庫はデータベースではなく、クラウドメモリは検索も監査も所有もできない、不透明なデータの塊です。

Mazarbul は、エージェントが記憶を保つための場所です。単一のローカルバイナリ maz を、MCP 対応のエージェント(Claude Code、Cursor、自作のエージェントなど)から利用できます。内部では、追記専用の暗号署名付きイベントログをグラフ、ベクトルインデックス、全文検索に投影し、通常の Git を使って同期します。すべての事実に情報源が紐づきます。外部に通信することはありません。

自由記述のエピソードを保存するメモリであると同時に、型付きのエンティティ、関係、クエリ可能な事実を扱う、本格的なデータベースでもあります。自分で所有できる単一ファイルに、個人用ナレッジグラフ、CRM、意思決定ログ、エージェントメモリをまとめたものと考えてください。

また、ヘッドレスで動作します。軽量な単一バイナリで CLI と MCP サーバーを利用でき、別途データベースサーバーを立ち上げる必要も、UI も必要ありません。そのため、構造化データや非構造化データの永続化が必要なものなら何でも活用できます。MCP 経由のエージェント、maz を呼び出すスクリプトや cron ジョブ、あるいはコマンドラインから使うこともできます。Mazarbul は、ほぼあらゆるものに組み込めるローカルデータレイヤーです。

他とは異なる特徴:

  • イベントソーシングと署名。 すべてのメモリは不変の ed25519 署名付きイベントです。ログが信頼できる情報源であり、インデックスは再構築可能な派生データです。何かが気づかないうちに上書きされることはありません。
  • 4 層ハイブリッド検索。 ベクトル類似度、全文検索 BM25、グラフ探索、名前の埋め込みを統合し、スコアの内訳も確認できる単一の順位付き結果を返します。
  • Git ネイティブで競合なし。 プレーンテキストの JSONL を任意の Git リモートと同期できます。2 台のデバイスは仕組み上(CRDT)、同じ状態に収束するため、同時書き込みによって互いの変更が上書きされることはありません。
  • すべての事実に出所情報と監査機能。 maz blame を使うと、エージェントのメモリに対する git blame のように、誰がいつ何を変更したかを確認できます。この機能を第一級のものとして扱うメモリレイヤーは、ほかにありません。
  • 構造化データと非構造化データの両方に対応。 自由記述を保存する remember に加えて、定義してクエリできる型付きのエンティティ、関係、事実も扱えます。単なるメモの寄せ集めではなく、データベースです。
  • 稼働中のツールはコピーせず、参照する。 エージェントはすでに MCP 経由で Notion、Linear、Drive などに接続しています。Mazarbul がインデックス化するのは、ポインター、短い要約、鮮度を確認するための情報だけで、本文は保存しません。重複を一切作らず、自分のメモリと稼働中の情報源をまたいで検索できます。

エージェントが頭脳、Mazarbulが記憶です

MCP経由でMazarbulを呼び出すエージェント(Claude Code、Cursor、ご自身で構築したものなど)は、すでに優れたモデルなので、推論はエージェントに任せましょう。エージェントは何を記憶する価値があるかを判断し、構造化ツール(createEntity、relate、fact)を使ってエンティティ、関係、事実を書き込み、重複を解決します。そして、recall と getContext の返す内容をもとに質問に答えます。Mazarbulは保存、インデックス化、想起を行い、すべての記録の出所を証明します。そのため、maz init ではデフォルトでサーバー側のチャットモデルを設定しません。セマンティック検索には小型のローカル埋め込みモデルだけが必要で、2つ目のLLMは不要です。サーバー側のモデル(AnthropicまたはローカルのOllamaモデル)はオプションで、エージェントが関与しない場合にのみ役立ちます。たとえば、受動的なファイル監視、コネクターによる取り込み、通常のターミナルからの maz ask、バックグラウンドでの統合処理などです。

インストール

curl -fsSL https://raw.githubusercontent.com/mo-cmyk/mazarbul/main/scripts/install.sh | sh

または、Homebrewを使う方法(macOSおよびLinux):

brew install mo-cmyk/mazarbul/maz

インストーラーはダウンロードしたファイルのチェックサムを検証し、maz とバンドルされたエンジンライブラリ、manページを配置したうえで、ローカルモデルプロバイダーをセットアップします(--no-ollama を指定して無効にしない限り、Ollama をインストールし、セマンティック検索に必要な埋め込みモデルを取得します)。チャットモデルは取得しません。推論はエージェントが行います。その後、maz init を実行してください。Mazarbulにも独自に推論させたい場合(エージェントなしでの取り込みや maz ask など)は、ローカルモデルを使うにはインストーラーに --with-chat-model を追加し、リモートモデルを使うには maz init --provider anthropic --api-key ... を実行してください。

MCP Registry/ワンクリックバンドル。 すべてのリリースでは、プラットフォームごとに mazarbul_<tag>_<os>_<arch>.mcpb というMCP Bundleが提供され、Claude Desktopやその他のMCPBクライアントから直接インストールできます。これはデフォルトのデータディレクトリを使って maz mcp serve を実行するため、CLIとメモリを共有します(プロバイダーを選ぶために maz init を一度実行してください)。各リリースは公式MCP Registryにも io.github.mo-cmyk/mazarbul として公開されており、レジストリに対応したクライアントやディレクトリから利用できます。

ソースからビルドする
# Prerequisites: mise (https://mise.jdx.dev), git.
git clone https://github.com/mo-cmyk/mazarbul.git
cd mazarbul
mise install          # provisions Go, golangci-lint, lefthook, vhs, ...
mise run setup        # go mod download + engine lib + hooks
mise run build        # builds ./bin/maz (with sqlite_fts5)
./bin/maz --help

maz は小型のネイティブグラフエンジン(LadybugDB)を動的にリンクします。このエンジンはGoモジュールキャッシュ内のrpathを通じて解決されるため、ソースビルドはビルドしたマシン上で実行できます。エンジンをバンドルした、単体で移動可能なバイナリが必要な場合は、上記のインストーラーを使ってください。

クイックスタート:ゼロからエージェントのメモリを使う

# 1. Initialize your Book: pick a data dir; keep the default "no server-side
#    chat model" (your agent reasons) or opt into one. Turn on encryption and
#    init shows a recovery Watchword to save (your only key).
maz init

# 2. Wire it into Claude Code over MCP. --capture records each session passively;
#    --warm-start injects a context brief when a new session begins.
maz connect claude-code --capture --warm-start

# 3. Remember something. Over MCP your agent also writes the entities and
#    relations it sees; with a server-side chat model, maz extracts them too.
maz remember "Frodo Baggins works at Bag End in the Shire as a ring-bearer."

# 4. Recall it. Hybrid search (vector + full-text + graph + name-embedding), scored.
maz recall "where does Frodo work"

これで完了です。Claude Codeに、Bookを参照する recall ツールと remember ツールが設定され、作業するすべてのセッションが記憶され、その内容がフィードバックされるようになります。ほかのMCPエージェントも、maz mcp serve を使って同じ方法で接続できます。

仕組み

イベントログが信頼できる唯一の情報源です。それ以外はすべて、ログから再構築可能な投影です。

flowchart TD
    A["maz remember / relate / fact<br/>(CLI, MCP, ambient hooks)"] --> B

    subgraph SOT["Source of truth"]
      B["Signed, append-only JSONL event log<br/>(ed25519 author on every event)"]
    end

    B --> D{{"Dispatcher<br/>(the only writer to the projections)"}}

    subgraph PROJ["Rebuildable projections (maz rebuild)"]
      direction LR
      E["SQLite<br/>relations + facts"]
      F["LadybugDB<br/>graph traversal"]
      G["sqlite-vec<br/>semantic recall"]
      H["FTS5<br/>keyword / BM25"]
    end

    D --> E & F & G & H

    E & F & G & H --> I["Hybrid recall<br/>(4 lanes, fused + scored)"]

    I --> J["Surfaces<br/>MCP (agents) | CLI / TUI (humans)"]

    B -. "seal + push (plaintext JSONL<br/>+ rendered markdown tree)" .-> K[("Any git remote<br/>conflict-free / CRDT")]
    K -. "pull (no LLM re-extraction)" .-> B

ログは追記専用で、すべてのイベントが不変かつ署名済みのため、同じログを同期する2台のデバイスでは、バイト単位で同一の状態に収束します。最終書き込み優先による上書きはありません。インデックスが破損した場合は、maz rebuild によってログから4つすべてを再構築できます。

メモの寄せ集めではなく、エージェントのためのデータベース

これが中核です。Mazarbulは自由記述テキストと構造化データの両方を保存し、どちらもクエリできるようにします。

# Define a typed entity kind and a custom relation, on the fly. An agent can do
# this over MCP too; the ontology is data, so it syncs and versions like the rest.
maz schema kinds add artifact --display-name "Artifact" --description "An object of power"
maz schema predicates add bears --description "carries an object of power"

# Preview what defineEntityKind would do before committing (mint / collapse / supersede):
maz schema preview kind artifact --description "An object of power"

# Mint structured entities with typed properties, then wire the graph by name.
# relate takes names or ULIDs and requires both endpoints to already exist.
maz entity create person "Frodo Baggins"
maz entity create artifact "The One Ring" --attributes '{"forged_in":"Mount Doom","power":"invisibility"}'
maz relate "Frodo Baggins" bears "The One Ring"

# Read it back: typed kind, typed properties, provenance, and the new relation.
maz get "The One Ring"
maz neighbors "Frodo Baggins"

# Assert a scalar fact with history. Later writes supersede the value but keep the
# old one, so you can still ask where the Ring-bearer was earlier in the journey.
maz fact set "Frodo Baggins" location "Rivendell"
maz fact get "Frodo Baggins"

# Close a fact that stopped being true (keeps history), or hard-delete one outright.
maz fact retract "Frodo Baggins" location   # slot reads empty after; history preserved
maz forget facts/01ARZ3NDEKTSV4RRFFQ69G5FAV  # remove a fact row entirely

# Query the lot with one hybrid recall over structured data and free text, and
# pin the view to a point in time (valid-time).
maz recall "who carries the ring"
maz recall "who carries the ring" --at 2026-01-01T00:00:00Z   # facts as they were valid on Jan 1

型付きの種類を定義し、エンティティを作成して、クエリで取得する

純粋なMarkdownでは、クエリや結合、変更の追跡はできません。純粋なベクトル検索では、ドキュメント間の事実を結び付けられません。Mazarbulでは、クエリ可能なグラフを備えた型付きエンティティと関係に、自由記述のエピソードを組み合わせて、1回の想起でまとめて扱えます。

できること

Mazarbul は、汎用的なヘッドレスデータレイヤーであり、信頼できる唯一の情報源です。同じ基本要素から、さまざまなツールを構成できます。

  • エージェントのメモリ。 デフォルトの用途です。事実を remember で記録し、セッションをまたいで recall できます。エージェントを使うたびにプロジェクトの説明を繰り返す必要はありません。
  • ノートとナレッジ保管庫。 maz doc import ~/notes で Markdown を取り込み、ウィキリンクはエンティティに解決されます。maz doc log と maz doc diff を使えば、すべてのノートの履歴を確認できます。
  • 個人向け CRM。 人、組織、それらの間の関係(works_at、reports_to、introduced_by)を管理できます。名前だけでなく、誰とどのように、なぜ知り合ったかも記録できます。
  • 決定ログ/ADR。 追記専用の設計で、置き換えリンクにも対応しています。決定に至った理由が残り、忘れてしまった後も検索できます。
  • ナレッジグラフ。 ドメインの種類と述語を定義し、スキーマパックをインストールして、グラフをたどることができます。
  • チームの共有メモリ。 エンドツーエンド暗号化された共有スコープを使えば、チーム全体のエージェントが同じメモリを利用できます。
下書きのステージング:コミット前にステージング

永続メモリにすぐ追加せずに、何かを記録しておきたい場合があります。--scope draft を指定して書き込むと、非公開のステージング領域に保存されます。処理方法を決めるまで、recall、get を含むすべての読み取り動詞から見えません。

# Stage privately. Nothing in recall or getContext sees this yet.
maz remember "rough notes from the Prancing Pony meeting" --scope draft

# Review what is staged.
maz scope draft list            # episodes, entities, and relations in staging
maz scope draft diff            # compare draft against your personal set side by side

# Promote into personal memory (now recall-able and sync-able).
maz scope draft promote episodes/01ARZ3NDEKTSV4RRFFQ69G5FAV

# Or throw it away. The audit event is appended; the projection is cleaned up.
maz scope draft discard episodes/01ARZ3NDEKTSV4RRFFQ69G5FAV

昇格先は常に personal(または project)です。共有 team スコープへの直接昇格は、設計上拒否されます。明示的にチームへ書き込まない限り、レビューされていない下書きデータが共有スコープに入ることはありません。破棄するとエピソードと、そこから作成されたすべての下書きエンティティが削除されます。イベントログ自体は追記専用のため、監査証跡は保持されます。

名前付きリコールのショートカット

クエリを一度保存すれば、必要なときにいつでも再実行できます。

maz saved add standup --query "daily standup Berlin team" --limit 5
maz saved list                          # all saved queries
maz saved show standup                  # stored parameters
maz saved recall standup                # run it through the live recall pipeline
maz saved remove standup

保存したクエリは、Book の config.toml にある [saved_recalls] の下に保存されます。再実行時は常に最新のインデックスが参照されるため、新しいエピソードが追加されるにつれて結果も更新されます。

独自のスキルとオントロジーを構築する

プリセットは、エージェント向けのスキルです。スキーマパック(エンティティの種類と述語)に、いつ、どのように使うかをエージェントに教える instructions.md を組み合わせたものです。インストールしたり、独自に作成したり、ほかの人に公開したりできます。

maz install schema-org-core           # built-in pack: common schema.org types
maz install business-de               # built-in pack: German business + legal types
maz preset install agent-memory       # teaches an agent when to reach for memory
maz preset install second-brain       # life-graph: people, projects, notes, topics
maz preset install decision-trace     # decision provenance: decisions, insights, principles
maz preset install github.com/you/your-preset   # install a preset from any git repo
maz preset package ./my-preset        # validate + print a checksum to publish

second-brain をインストールすると、brain:Person、brain:Project、brain:Note、brain:Topic の各種が登録され、collaborates_on、tagged_with、inspired_by などの関係が設定されます。ノートをいくつか追加してからリコールを試し、グラフがどのように整理されるか確認してみてください。decision-trace は decision、insight、principle の各種を登録し、第一級のトレーサビリティエッジで相互に結び付けます。

maz schema kinds add/maz schema predicates add で型をその場で定義するか、エージェントに MCP 経由で defineEntityKind/definePredicate を定義させることができます。書き込む前に maz schema preview kind <name> を使うと、計画(mint/collapse-into/supersede)を確認できます。オントロジーはコードではなくデータなので、ほかのすべてと同様に同期され、バージョン管理されます。

既存のツールを活用する

Mazarbul は、データがすでに保存されている場所でデータを扱います。

# Import an existing markdown / Obsidian vault. Wikilinks become entities;
# bodies become recall-able. Idempotent, so re-running skips unchanged files.
maz doc import ~/ObsidianVault

# Or point Mazarbul's vault straight at your Obsidian folder (it only ever writes
# documents it owns) and edit notes in Obsidian as usual.
maz config set vault.path ~/ObsidianVault

# Render an entity neighborhood as an Obsidian-openable canvas.
maz doc canvas "Frodo Baggins"

# Pull in your other sources. Connectors ingest untrusted external content, so
# the target scope needs encryption enabled first (maz doctor sets it up).
maz source connect local-git --repo .              # your repo's commit history
maz source import claude-chats ~/Downloads/export.zip   # your Claude.ai exports

Markdown の保管庫をインポート。ウィキリンクはエンティティに解決されます

これは「Karpathy 風」の外部メモリです(クエリごとにすべてを再導出するのではなく、エージェントが永続的で相互リンクされた基盤を構築します)。Markdown ウィキ方式に欠けている、型付きクエリレイヤー、自動エンティティグラフ、来歴、破損を起こさない同期も備えています。

コピーせずにライブソースを参照する

インポートはデータを取り込みます。もう一方はその逆です。エージェントはすでに、MCP 経由で、実際の作業で使うツール(Notion、Linear、Granola、Google Drive、GitHub)に接続されています。Mazarbul はそれらのトークンを保持せず、自らデータを取得することもありません。インデックスを作成します。

エージェントがこれらのツールのいずれかから項目を読み取った後、単一の captureExternal 呼び出しで、その項目へのポインター、エージェント自身による短い要約、鮮度の基準点(コンテンツハッシュと取得時刻)を記録します。本文が Mazarbul に保存されることはありません。その要約は、記憶しているほかのすべての情報とともに recall で検索でき、ライブソースに基づく検索結果には、インラインの鮮度判定と外部由来を示すマーカーが付きます。

recall "the Q3 launch plan"
  Q3 launch: connector wave ships first, then the public install path.
    source: notion   freshness: fresh (fetched 2h ago)   trust: proposed

検索結果が stale(コネクターの鮮度許容期間を超過)になると、エージェントがライブ項目を再取得して再度キャプチャするため、インデックスが信頼できる情報源と食い違うことはありません。また、由来が外部であり、エージェント自身が作成したものではないため、これらは信頼されていない proposed として登録されます。検索とランキングの対象になりますが、別の場所から要約された情報であり、エージェントが断言したものではないことが明確に示されます。詳しくは、agent-docs/external-references.md をご覧ください。

これにより、自分の記憶とライブツールを同時に検索できる場所が一つにまとまり、同期を保つための別のストアも不要になります。

ただの git です

記憶は、通常の git リポジトリにあるプレーンテキストの JSONL と、レンダリングされた Markdown ツリーです。セマンティックやエンティティを認識するコマンドで調べることも、使い慣れた git で調べることもできます。

# Seal local memory into signed chunks and push to your git remote.
maz sync push

# Browse it semantically, from anywhere:
maz diff HEAD~5..HEAD         # what changed: entities added, relations superseded
maz diff --kind person --operation changed --format json   # changed person entities as JSON
maz blame "Frodo Baggins"     # who changed this entity, and when
maz changelog                 # per-push summaries, newest first

# Or clone the synced repo and use plain git. It is JSONL plus a rendered markdown
# tree, so log, diff, and blame all just work on it:
git clone <your-remote> memory && cd memory
git log --stat
git blame rendered/by-uid/<...>.md   # line-level provenance, in plain git

maz diff では、--predicate と --operation による後処理フィルターも指定できます。JSON 出力(--format json)には、エントリーとともに filtered 件数と active_filters マップが表示されるため、スクリプトで文章を解析せずに変更内容を検証できます。

一括インポートと再埋め込み

マシンの移行、バックアップからの復元、埋め込みモデルの切り替えには、次の 2 つのコマンドを使用します。

# Bulk-load a JSONL snapshot exported with "maz export".
maz load backup.ndjson                    # append every event (default)
maz load backup.ndjson --mode merge       # skip events whose UID already exists (idempotent)
maz load backup.ndjson --dry-run          # parse + validate, report counts, write nothing

# After switching embedding models, re-embed every episode.
maz reindex --reembed                     # drop episodes_vec and rebuild it
maz reindex --reembed --dry-run           # count what would be re-embedded first

maz load は {mode, source, total, appended, skipped, invalid, dryRun} を出力します。マージモードで UID の重複をスキップすると警告 MAZ-LOAD-001 が、行の形式が不正な場合は MAZ-LOAD-002 が発生します。バッチはアトミックです。有効なイベントがすべて登録されるか、1 件も登録されないかのどちらかです。maz reindex --reembed には、設定済みの埋め込みプロバイダーが必要です(maz init --embed=ollama)。ほかの 3 つの派生ストア(SQLite、グラフ、FTS5)は変更されません。

maz rebuild と maz reindex --reembed は、どちらもデーモンを起動したまま実行できます。 maz daemon stop は不要です。デーモンの実行中、CLI はこれらの操作を管理用 HTTP インターフェイス(POST /admin/v1/rebuild、POST /admin/v1/reindex)に転送します。このインターフェイスは Unix ソケットでのみ公開され、TCP では公開されません。デーモンは一時ディレクトリにシャドウプロジェクションを構築し、短時間(数秒)の切り替え期間に処理を一時停止して、新しいインデックスを所定の場所にリネームした後、同じソケットでサービスを再開します。再接続する maz mcp serve プロキシが、読み取りトラフィックに対するこの切り替え期間を覆い隠します。処理中の書き込みはクリーンに失敗し、再試行できます。maz reindex --dry-run は、デーモンの実行中は使用できません(インプロセスでのストアアクセスが必要です)。同じソケット専用の /admin/ インターフェイスを通じて、maz preset install、maz preset uninstall、maz load、maz schema のエイリアス操作も、特権が必要な書き込みを実行中のデーモン経由で行います。

git で追跡されるツリー上の maz 同期ログ、セマンティック差分、エンティティごとの blame

git 経由で同期された Markdown の保管庫では、同時書き込みによって互いの変更が上書きされます。Mazarbul のログは構造上コンフリクトが発生しないため、2 台のマシンが同時にプッシュしても、互いの変更を上書きせずに収束します。信頼できないホストを使う場合は、スコープごとの暗号化(XChaCha20-Poly1305)を有効にすると、リポジトリには封印された暗号文だけが保存されます。

Mazarbul を選ぶ理由

おそらく、すでに以下のいずれかを使っているでしょう。Mazarbul では、代わりに次のことができます。

  • Obsidian + Claude Code + git。 Markdown のサイロ、手動でのリンク付け、クエリや結合ができないこと、同時書き込みで破損する git 同期、そして手作業で徹底した場合にしか得られないデータの出所情報が伴います。Mazarbul は git ネイティブなプレーンテキストを維持しながら、型付きクエリレイヤー、自動エンティティグラフ、競合のないマージ、すべての事実に付与されるデータの出所情報を追加します。
  • エージェントメモリーライブラリ(mem0、Letta、agentmemory)。 ベクトルストア、クラウド API、または一度使うと乗り換えられないフレームワークを使います。メモリーは不透明で、LLM によって書き換えられる塊であり、データの出所情報も監査機能もありません。Mazarbul はローカルで動作する 4 層構造のイベントソーシング方式で、すべての事実が情報源を示し、監査できます。
  • キー・バリュー型またはベクトルストア、ChatGPT/Claude の組み込みメモリー。 不透明でクラウドにロックされ、スキーマ、関係、クエリ、監査機能がなく、製品ごとに分断されています。Mazarbul は、自分で所有し、クエリや時間をさかのぼる操作ができ、移行も可能な信頼できるデータの基盤です。
Mazarbulベクトルメモリー(mem0 など)Obsidian + git + エージェントクラウドの組み込みメモリー
アカウント不要で完全にローカル実行はい一部はいいいえ
信頼できるデータの基盤を自分で所有署名付きイベントログクラウド/ベクトルデータの塊Markdown ファイルベンダーのクラウド
事実ごとのデータの出所情報と監査はいいいえ手動いいえ
型付きクエリとグラフグラフ + ベクトル + FTSベクトル(+ オプションのグラフ)いいえいいえ
複数デバイス間で競合のない git 同期はい該当なし上書き該当なし
時間をさかのぼる操作(有効時間)はいいいえいいえいいえ
あらゆるエージェントで使える MCP ネイティブ対応はいSDK / RESTプラグイン経由ベンダー専用
チームで共有する暗号化スコープはいクラウドプラン手動いいえ

この強みを一言で言うと、エージェントには自由文と構造化データの両方が必要ですが、それらを組み合わせるシステム(GraphRAG、Zep)はすべてクラウド上で動作します。Mazarbul は、その組み合わせを、自分で所有できる単一ファイルに実現します。しかも、ほかにはないデータの出所情報と git ネイティブな同期機能を備えています。

Claude Code とあらゆる MCP エージェントで使う

maz connect claude-code               # register over MCP (also: claude-desktop, ...)
maz connect claude-code --capture --warm-start   # passive capture + session warm-start
maz connect                           # show the live detection table for every client

接続すると、Claude Code はあなたの Book を使い、テキストを取得するだけでなく、グラフをたどって事実同士を結び付けます。同じメモリーから、ヘッドレスの claude -p による単発実行にも、対話型のライブセッションにも回答できます。ツールリストもプロンプトも必要ありません。

指輪を担うのは誰か、そして誰が旅の仲間を裏切ったのかという質問に答えるため、ヘッドレスと対話型の 2 つの Claude Code セッションがメモリーグラフをたどる様子

Cursor、カスタムエージェント、その他の MCP クライアントでは、サーバーを直接実行します。

maz mcp serve            # stdio (default)
maz mcp serve --http     # streamable HTTP at 127.0.0.1:7842
maz mcp serve --unix     # Unix socket

接続されたエージェントは、整理されたツール群を利用できます。remember、recall、forget、relate、get、neighbors、relations、entities、query、createEntity、defineEntityKind、getContext、getEntityContext(単一エンティティのトークン予算に合わせた詳細情報)、agentFeedback などです。チームのメンバーは、コマンドラインの maz またはその TUI を使って、まったく同じデータを利用できます。

人間向け:TUI、ライブ監視、Agent Mirror

同じメモリーを、エージェントなしでも、充実した対話型インターフェースから利用できます。

maz self                       # the Agent Mirror: what Mazarbul knows about you
maz recall "the ring" --tui    # interactive master-detail recall browser (recall → get → neighbors)
maz doc browse                 # two-pane TUI over your markdown vault
maz watch                      # live dashboard: events, jobs, embedding, and sync

maz は使われ方を学習します

これは Omnigraph との同等性を目指す取り組みの中核です。エージェントが紛らわしい結果や誤った回答に遭遇したとき、あるいは苦労して得た知見として残す価値のあるルールを見つけたときは、その摩擦を記録できます。同じ摩擦が繰り返されると、要点をまとめた一文が自動的に ## Known gotchas & lessons セクションへ昇格し、すべての新しい MCP セッションの指示の末尾に追加されます。つまり、人による整理を介さず、接続するすべてのエージェントが更新されたガイダンスを最初から利用できます。

# Record a durable lesson from the CLI (agents use the agentFeedback MCP tool).
maz feedback record --category lesson --severity medium \
  --surface recall \
  --summary "recall missed an exact name" \
  --rule "prefer get when you already hold the exact name"

# See what is currently promoted into every session's instructions.
maz feedback gotchas

# Inspect the raw triage queue.
maz feedback list --category confusing

# Pin a cluster (always included, even if the cap fills up).
maz feedback pin "lesson|recall|prefer get exact name"

# Suppress a cluster from promotion.
maz feedback veto "lesson|recall|prefer get exact name"

# Edit the distilled rule text.
maz feedback edit "lesson|recall|prefer get exact name" --rule "use get for exact-name lookups"

# Export an allowlist-redacted diagnostic (safe to share; no user memory ever leaves).
maz feedback export --format md -o feedback.md

昇格のしきい値:同じ内容が3回繰り返されると昇格します。ただし、観測された最高の深刻度が high の場合は2回で昇格します。ピン留めされたクラスターは8件の上限の対象外となり、却下されたクラスターは表示されません。レビューのたびに監査済みイベントが追加され、削除されるものはありません。エクスポートからはすべてのユーザーメモリー、プリンシパル ID、クラスターキー、チームスコープが除外され、出力されるのは {id, ts, category, severity, surface, summary, detail, keywords, version, activePreset} のみです。設計の詳細については、agent-docs/feedback-loop.md を参照してください。

出力形式とスクリプト

すべての読み取り動詞は --output(または MAZ_OUTPUT 環境変数)に対応しています。

maz recall "Frodo" --output json          # single JSON document
maz entities --kind person --output ndjson  # one JSON object per line (stream-friendly)
maz entities --kind person --output csv     # CSV with a header row (cut/awk/spreadsheet)
maz entities --kind person --output kv      # key: value lines, blank between records (grep-friendly)

エイリアス:table は text、jsonl は ndjson と同じです。Book の設定で既定値を永続的に設定できます。

maz config set output.default_format json

この設定項目は優先順位チェーンにおいて MAZ_OUTPUT と TTY 判定の間に位置します。そのため、スクリプトでは自動的に JSON が使われ、対話セッションでは引き続きテーブル形式が使われます。

ドキュメント

ホスト型のドキュメントサイトを近日公開予定です。

コントリビューション

  • 人間の方:DEVELOPMENT.md と CONTRIBUTING.md から始めてください。
  • エージェント:AGENTS.md を読み、運用契約とサブエージェント一覧を確認してください。
  • セキュリティ:非公開での脆弱性開示については SECURITY.md を参照してください(脆弱性について公開 issue を作成しないでください)。

ライセンス

Mazarbul は Apache License 2.0 のもとでライセンスされています。ライセンス条項の全文については LICENSE、帰属表示については NOTICE を参照してください。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。