Myco Brain について
Myco Brainは、自分のPostgres上で動くセルフホスト可能な記憶レイヤー兼MCPサーバーです。セッションをまたいで文脈を共有したいチームやAIエージェント向けに、決定的なルールで事実を扱い、出典や変更履歴、顧客ごとの境界を保ちます。
主な機能
- 01セッションをまたぐ記憶と文脈検索
- 02出典と変更履歴を保つ事実管理
- 03Postgresの行レベル分離
- 04ローカル全文検索とセマンティック検索
- 05確認可能な事実提案と昇格
活用シーン
- 01エージェント間でプロジェクトの決定事項を共有
- 02顧客ごとに記憶を分離
- 03事実の出典と変更を追跡
MCP 対応
MCP経由で記憶ツールを提供し、instructionsチャンネルで利用方針を伝えます。オプションのドキュメントエンジンは、検索、取得、ナレッジグラフ操作用のMCPツールも公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
11掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| limit | number | いいえ | 返すチャンクの最大数(デフォルト 10、最大 50) |
| query | string | はい | 自然言語クエリ |
| embedding | array | いいえ | 事前計算済みのクエリ埋め込み(任意。OpenAI は 1536 次元、Ollama は 768 次元)。通常は省略してください。サーバーがクエリを埋め込みます。 |
| hyobject_types | array | いいえ | type_ids で絞り込みます |
| include_people | boolean | いいえ | |
| include_entities | boolean | いいえ | |
| relational_limit | number | いいえ | 返す関係エッジの最大数(デフォルト 25、最大 100) |
| context_token_budget | number | いいえ | 返すチャンクの任意のトークン予算です。決定的な圧縮が有効になります。 |
| include_session_notes | boolean | いいえ | |
| include_relational_context | boolean | いいえ |
詳細
AI エージェントのための共有メモリを、ご自身の Postgres 上に構築できます。すべての事実に出典が保持され、変更時には古い事実を上書きせずに置き換え、各クライアントの事実はそれぞれの境界内にとどまります。
2つのコマンドでエージェントに記憶を持たせる
npm install -g @mycobrain/mcp-server
mycobrain-setup memory
Node.js 20以降が必要です。セットアップではいくつか質問に答えると、変更予定の各ファイルが表示され、確認を待ちます。編集するすべてのファイルをバックアップし、ファイルに秘密情報を書き込むことはありません。最後に1つの事実を書き込み、読み戻して確認します。mycobrain-setup memory --uninstall を実行すると、追加したものが削除されます。
- 記憶の保存場所。 pgvectorを使ったローカルのPostgresです。セットアップはマシン上のPostgresを検出するか、Dockerで起動します。または、参照渡しで任意のPostgres接続文字列(Supabase、Neon、RDS、セルフホスト環境)を指定できます。これにより、接続文字列がシェルの履歴に残りません。
- スターターテンプレート。 代理店、デザインスタジオ、建築事務所または造園事務所、個人コンサルタント、または独自のビジネス向けテンプレートを作成する短いインタビュー形式の
customから選べます。テンプレートでは、クライアントをどのようにハウスに分けるか、どのような種類のエンティティを扱うか、何を記憶する価値があるかを設定します。 - Claude CodeとCodexで自動的に動作。 フックがセッション開始時と各プロンプトの前に関連する事実を呼び出します。バックグラウンドワーカーは完了した各セッションを読み取り、見つかった長期的に役立つ事実を保存します。
- Cursor、Windsurf、Claude DesktopではMCP経由で動作。 これらにはフックがないため、2つのツール
brain_memory_contextとbrain_memory_writeを備えたMCPサーバーと、行動する前に情報を呼び出し、学んだことを記録するようエージェントに指示する設定を用意します。 - 出典付きで、上書きされない事実。 すべての事実に出典が記録されます。事実が変更されると古い事実に取って代わり、
mycobrain-memory historyで両方とその理由を確認できます。 - データベースで徹底されるクライアントの境界。 ハウスによってクライアントが分けられ、ハウスを作成できるのはあなただけです。
mycobrain-memory binding add <name> --house <slug>を使うと、請負業者のエージェントに1つのクライアントだけを割り当て、それ以外にはアクセスさせません。各ツールには個別の認証情報が割り当てられるため、どのツールが事実を書き込んだかを確認でき、他のツールに影響を与えずに特定のツールだけを無効にできます。 - APIキー不要。 ワーカーは、すでにサインインしている
claudeまたはcodexCLIを通じて、あなた自身のClaudeまたはCodexのサブスクリプションでセッションを読み取ります。Ollamaがあれば、埋め込み処理はローカルで実行されます。Ollamaがない場合は、プロンプト内の単語を照合して情報を呼び出します。これは名前、場所、数値の照合に適しています。 - Dreamはデフォルトでオフ。 有効にすると、重複した事実の統合、クライアントごとの概要、クライアント間のパターンを提案します。
mycobrain-memory review approveで提案を承認するまでは、何も変更されません。
いつでも mycobrain-doctor --memory で状態を確認できます。手順についてはdocs/memory-quickstart.mdをご覧ください。すべてのコマンドについてはdocs/memory-cli.mdをご覧ください。
リリース前に、ドキュメントに記載されたコマンドを、パッケージ化したnpm tarballから、新規のホームディレクトリで実行しました。架空の造園事務所としてセットアップし、最初のセッションで決めたことが、3回目のセッションで尋ねていないのに呼び出されることを確認しました。変更後は古い事実に取って代わり、履歴も保持されました。1つのクライアントに範囲を限定したエージェントは、別のクライアントの情報を何も見つけませんでした。データベースを停止した状態でもセッションは開始され、書き込みはキューに入れられて後から配信されました。アンインストール後、設定ファイルは1バイトも変わらない状態に戻りました。
ドキュメントエンジン(オプション)
エンジンは Myco Brain の原点です。ドキュメント、リポジトリ、チャットのエクスポートを取り込み、検索し、ナレッジグラフを構築して、すべての回答を出典となったドキュメントまでたどれます。メモリレイヤーと並べて、または単独で Docker スタックとして実行できます。エージェントが記録した事実だけでなく、ドキュメントに基づく回答が必要な場合に追加してください。以下の大半はエンジンについての説明です。

- 出典を追跡できます。 すべての事実を、出典となったドキュメントまでたどれます(
brain_why)。根拠のない「信じてください」という要約はありません。 - 信頼性が積み重なります。 独立した裏付けがあれば事実の信頼度が 上がり、矛盾があれば以前の事実は 置き換えられます。事実は保持され、監査可能で、ひそかに上書きされることはありません。
- キー不要、ローカルファースト。 全文検索、セマンティック検索、ナレッジグラフはすべて、ホスト型サービスに依存せずに実行できます。最も正確なグラフが必要な場合に限り、Anthropic キーを追加してください。
- あなたのものです。 Apache-2.0、標準的な Postgres テーブル、13 個のエンジン MCP ツールを備えています。Claude、Cursor、Windsurf、Continue、Zed で動作します。
対象ユーザー: メモリを共有する必要があるエージェントを運用する開発チーム · クライアントごとに厳密な分離が必要なエージェンシー · セッションをまたいでアシスタントに記憶させたいすべての人 — ChatGPT / Claude の履歴(データエクスポートから)をインポートすれば、初日から AI があなたを理解します。
エージェントの記憶喪失への一般的な対処法として、LLM に自身のメモリを管理させる方法がありますが、重複、幻覚による要約、誰も出典をたどれない自信満々の回答で埋め尽くされます。Myco Brain はこれとは正反対の仕組みに基づいています。
LLM は提案します。決定論的なルールが、何を事実とするかを決めます。基準はあなたが設定します — 裏付けを条件とする自動昇格(デフォルト)から、すべての事実に対する厳格な人間によるレビュー(
BRAIN_REQUIRE_HUMAN_REVIEW=1)まで対応します。
Claude、Cursor、Windsurf、Continue、Zed、カスタムエージェントはすべて、あなた自身の Postgres に支えられた単一のメモリを共有します。
⭐ 信頼モデルに共感したら、スターを付けて他の人にも見つけてもらいましょう。
# 1. Boot the stack (Postgres + MCP server + extraction worker)
git clone https://github.com/thegoodguysla/myco-brain.git && cd myco-brain
docker compose up -d
# 2. Give your agent a memory — point it at any repo or folder
# (no env needed: it finds the quickstart stack on localhost)
npx -y -p @mycobrain/mcp-server mycobrain-ingest github:your-org/your-repo
# 3. Connect your client (one-liner below), then ask across sessions:
# "what did we decide about auth, and where is that documented?"
# → answered from your docs, with the source cited.
ヒント
API キーは一切不要です。 全文検索、セマンティック検索(ローカル埋め込み)、ナレッジグラフ(ローカル抽出)はすべて、ホスト型サービスに依存せずに実行できます。最も正確なグラフが必要な場合に限り、Anthropic キーを追加してください。
MCP ネイティブ設計 — エージェントはメモリの「使い方」だけでなく、「使うタイミング」も把握します。
多くの MCP サーバーはツールを公開するだけで、モデルが呼び出すことを期待しています。Myco は MCP の instructions チャネルを通じて使用方法の規約を提供します。接続した瞬間に、エージェントはタスクの前にコンテキストを取得し、永続的な判断を保存し、brain_why で出典を示す方法を把握します。プロジェクトごとのプロンプトは不要です。コピー&ペーストできる 1 つのブロックでポリシーを調整できます:エージェントが適切に使えるよう指導する。
クイックリンク: 2 つのコマンドでメモリを利用 · エンジンのクイックスタート · エージェントが適切に使えるよう指導する · 信頼エンジン · ベンチマーク — 自分で実行する · すべての主張を検証する · 対象ユーザー · 環境変数 · アーキテクチャ · ロードマップ · クラウドのウェイトリスト
信頼性が高まるメモリ(信頼度の積み重ね)
多くのエージェントメモリは、事実を黙って上書きします。Myco Brain は信頼度を積み重ねます。

- 独立した情報源が事実に同意すると、その信頼度が高まります (減衰付き noisy-OR — 1つの文書からの10個のチャンクは何の裏付けにもなりません。カウントされるのは 個別の情報源のみです)。
- 単一値の関係(誰に雇用されているか、何がどこにあるかなど)について確信度の高い矛盾が生じると、古い事実に取って代わります。古い事実は終了扱いとなり、信頼度が下がりますが、保持され、削除されることはありません。置き換えの記録は、監査可能なクレーム台帳に残ります。
- 任意の事実について
brain_whyに尋ねると、個別の情報源の数(言及数ではなく、関係ごとの数)、時間の経過に伴う信頼度の推移(「0.8 → 0.86」)、置き換えられた履歴を確認できます。 矛盾も見える状態で残ります。メモリが事実をすり替えることはありません。
works for → Halcyon Labs 0.55 [SUPERSEDED — kept, not deleted]
works for → Driftwood Analytics 0.90 [ACTIVE]
claims ledger: old fact superseded_by → new fact (audited)
実証:npm run test:compounding — LLM 不要で、稼働中のデータベースに対するライフサイクル全体のテストが数秒で実行されます。
データとともに進化するスキーマ(動的スキーマ)
- 抽出ワーカーは、カタログにまだ存在しないエンティティの種類や関係タイプを検出し、提案します(
brain_stats:「データから3つの新しいタイプを提案しました」)。 - 既定では、昇格するかどうかはユーザーが決めます。または、十分な数の異なるソース文書で裏付けられたタイプを自動昇格する設定にできます
(
BRAIN_SCHEMA_AUTO_PROMOTE=1)。カウントは言及ごとではなく文書ごとに行われるため、2つの文書をやり取りしてコンセンサスを捏造することはできません。1つの文書だけで昇格することは決してありません。 - 昇格したタイプは、昇格を実現したワークスペース内に限定されます。あるクライアントの語彙が別のクライアントのカタログに漏れることはありません(クライアントごとに分離されたワークスペースを参照)。
実証:npm run test:dynamic-schema、npm run test:schema-promotion。
信頼度の調整は自由に選べます:
| モード | 動作 |
|---|---|
| 既定 | 信頼度の高い事実は自動昇格し、新しいタイプはレビュー待ちになります |
BRAIN_REQUIRE_HUMAN_REVIEW=1 | 厳格なキュレーション — LLM が提案した内容は、人間が判断するまで正規グラフに反映されません |
BRAIN_SCHEMA_AUTO_PROMOTE=1 | 裏付けられた新しいタイプが自動で昇格し、監査記録も残ります |
既定モードで新しいタイプが待機している場合や、厳格モードであらゆる項目が待機している場合は、コマンドラインからレビューできます:
mycobrain review # list pending entities, relationships, types
mycobrain review approve <id> # promote it into the graph
mycobrain review reject <id> # reject it (kept and audited, never deleted)
実証:npm run test:review — 承認するとエンティティ/エッジ/タイプが実際に正規グラフに反映され、却下しても反映されません。
プライベートなメモリ、共有ナレッジ
マルチエージェントチームでは、実質的な分離が実現します。private とマークされた文書は、作成したエージェントだけが読み取れます。これはすべての読み取りツールで適用され、ワークスペースの行レベルセキュリティに加えて機能します。ワークスペースのメモリは共有されたままです。実証:
npm run test:sharing(2つのエージェントによる可視性マトリックス)。 ワークスペースの分離と同様に、この制約が適用されるのは最小権限の brain_app ロールを使用している場合のみです
(セキュリティに関する注記を参照)。
クライアントごとに独立したワークスペース — エージェンシー向けに構築
クライアントごとに専用のワークスペースを用意し、エージェンシー全体で共通の運用ガイドを共有します。そして、提供する保証の根拠は Postgres の行レベルセキュリティです。Client A にスコープされたセッションから、Client B の行が返されることはありません。エージェンシー向けスターターキットが、1 つのコマンドで環境をプロビジョニングし、分離を実際に機能させる最小権限の DB ロールも提供します。検証方法:
npm run test:agency — Client A には Client B の情報が一切表示されません。
重要
分離が機能するのは、最小権限ロールを使用した場合に限ります。 RLS は Postgres のスーパーユーザーには適用されません。また、ゼロ設定クイックスタートのデフォルトの
brainロールはスーパーユーザーです(単一ワークスペースのセルフホスト環境なら問題ありません。分離する対象がないためです)。1 つのデータベースに複数のクライアントを登録する前に、エージェンシーキットが提供するNOSUPERUSERのbrain_appロールでアプリを実行してください。mycobrain-doctorはスーパーユーザー接続を検出して警告します。マルチテナントの分離を保証するのはbrain_appであり、クイックスタートのデフォルトロールではありません。
上級者向け — マルチテナントゲートウェイ:リクエスト元は誰か?(BRAIN_TRUST_REQUEST_IDENTITY)
RLS はテナントが読み取れる行を決定します。この設定は、その前段階として、リクエストがどのテナントに属するかを決定します。デフォルトでは、stdio サーバーの ID はサーバーの環境変数からのみ取得されます。ツール呼び出しの引数として渡された workspace_id、agent_id、api_key は無視されるため、プロンプトインジェクションを受けたエージェントであっても、別のワークスペースにアクセスするために workspace_id: "<someone-else>" を渡すことはできません。(brain_ キーの場合、ID の取得元はキー文字列だけです。)
サーバーの前段に、各リクエストを認証し、それ自体でテナントにマッピングする実際のマルチテナントゲートウェイを置く場合に限り、BRAIN_TRUST_REQUEST_IDENTITY=1 を設定してください。その場合はリクエストごとの ID が有効になり、サービスロール JWT はそれらしく見えるだけでは不十分で、BRAIN_SERVICE_ROLE_KEY と完全に一致する必要があります。単一テナントのセルフホスト環境では、これらの設定は不要です。ID はすでに環境変数から取得されています。
HTTP 経由でクエリする(読み取り専用)
MCP を使わないシステムもあります。Web アプリ、自動化ツール、パートナーのバックエンド向けに、mycobrain-rest は brain の前段に、小規模な読み取り専用 API を提供します。ツールは search と why の 2 つだけで、ヘルスチェックも利用できます。
mycobrain-rest # → http://127.0.0.1:8787
curl -s localhost:8787/search \
-H "Authorization: Bearer brain_<ws>_<agent>_<secret>" \
-d '{"query":"what did we decide about pricing?","limit":5}'
- スコープ設定: キーによってすべてのクエリがそのワークスペースにスコープされ(MCP と同じ RLS)、書き込み用のルートはありません。MCP と同様、これは最小権限の
brain_appロールを使用した場合にのみ有効です(セキュリティに関する注記)。デフォルトのbrainスーパーユーザーで REST を公開しないでください(mycobrain-doctorが検出して警告します)。 - キーの検証:
…_agent_api_key_verification.sqlまでマイグレーション済みの環境では、シークレットが登録されると、各キーの<secret>がagent_api_keysに照合されます(brain_set_agent_api_key_secret(...)で登録またはローテーションできます)。それまでは、キーはベアラートークンとして機能します。REST を公開する前に登録済みのシークレットを必須にするには、BRAIN_REQUIRE_API_KEY_SECRET=1を設定してください。 - バインド: デフォルトではループバックにバインドされます。公開する場合に限り、自身で用意した TLS/プロキシの背後で
BRAIN_REST_HOST=0.0.0.0を設定し、キーをパスワードと同様に扱ってください。
検証方法:npm run test:rest。
検証済みのデモ 5 つ
1. セッションをまたいだ想起
ある会話で事実を保存します。
Save a memory: the board meeting is every Wednesday at 9 AM Pacific.
新しい会話を開始し、次のように質問します。
What time is the board meeting?
期待される結果:新しいセッションが保存済みの事実を取得し、チャット履歴に頼りません。
2. エージェント間で共有されるメモリ
あるクライアントから書き込みます。
Save a memory: Acme's renewal call is on October 15 with Jordan.
別のクライアントから読み取ります。
What is Acme's renewal date?
期待される結果:真実の情報源は単一のチャットスレッドではなく Postgres なので、両方のクライアントが同じ共有メモリを読み取れます。
3. 回答の出典情報
任意の事実について brain_why に尋ねると、根拠のない説明ではなく、出典の連鎖を取得できます。
デモコーパスから作成されたエンティティの実際の出力:
{
"subject": { "kind": "entity", "name": "Mara Quinn" },
"evidence": {
"mention_count": 4,
"source_document_count": 4,
"summary": "Supported by 4 mentions across 4 source documents."
},
"source_proposals": [
{ "extracted_by": "ollama:llama3.2:3b", "confidence": 1, "state": "auto_promoted",
"source_hyobject_id": "8e31414c-…" }
]
}
採用されたすべての事実について、その出典となったドキュメントと、抽出方法をたどることができます。
4. ソースを指定したドキュメントの取り込み
ファイルまたは URL を取り込みます。
Ingest ./docs/customer-handbook.pdf and summarize the onboarding checklist with sources.
期待される結果:ドキュメントが分割・インデックス化され、検索によって出典付きで返されます。
5. グラフの関係性
次のように質問します。
Show related entities for Acme and explain how they connect.
期待される結果:関係性のクエリでは、フラットなベクトルマッチではなく、関連する人物、ドキュメント、エンティティと、抽出ワーカーが構築したエンティティ間のエッジ(例:Mara Quinn —manages→ Northwind Coffee)が表示されます。API キー不要で、Ollama を使ってローカルでこのグラフを構築できます。
すべてのデモは画面録画ではなくコードです。
demos/は新しいスタックに対して決定論的に再レンダリングします (npm run demo:render -- all)。
Myco の比較
ツールによってトレードオフは異なります。この比較では、ベンチマークによる直接対決ではなく、アーキテクチャ上のアプローチを比較します。検索再現率が高い場合は回答モデルがボトルネックになるため、システム間のスコア比較は誤解を招きます(ベンチマークのセクションを参照)。
| 一般的な LLM 管理のメモリ | フレームワークのメモリ(例:LangChain) | Myco Brain | |
|---|---|---|---|
| 再現可能なベンチマーク | 自己申告 | — | ハーネスをリポジトリに同梱 — 自分で数値を再現できます |
| 事実の抽出 | LLM ベース | LLM ベース | 決定論的な書き込み経路。LLM の出力は、ゲート付きの提案キュー経由でのみ取り込まれます |
| 矛盾する事実 | 独立したレコードとして共存 | 可能 | 上書きせず、常に旧情報として置き換え — 監査可能な主張台帳 |
| 事実の信頼度 | 固定 | — | 独立した証拠によって高まり、矛盾があると低下します |
| 幻覚による事実 | 発生する可能性あり | 発生する可能性あり | 書き込み経路では発生しないよう制限されています |
| 出典情報 | 部分的 | 部分的 | brain_why による第一級の機能(ソース+監査証跡+信頼度の推移) |
| 共有メモリ | アプリの配線方法によります | アプリの配線方法によります | Postgres をネイティブな信頼できる情報源とし、オブジェクトごとのプライバシー設定を備えたマルチエージェント構成 |
| データの移植性 | ベンダー/フレームワークに依存 | フレームワークに依存 | 通常の Postgres テーブル |
10 分以内に始める
ドキュメントエンジンです。検証済みのローカル手順は、新規クローンから Docker Compose を使用する方法です。(メモリだけを使う場合は、これらは不要です。2 つのコマンドでエージェント用メモリを使うを参照してください。)
git clone https://github.com/thegoodguysla/myco-brain.git
cd myco-brain
docker compose up -d
起動するもの:
- Postgres 16 + pgvector
- MCP サーバー
- 抽出ワーカー
起動に API キーは不要です。各機能に必要なものは次のとおりです。
| 機能 | 初期状態で利用可能? | 有効にする方法 |
|---|---|---|
| 全文(BM25)検索 | ✅ すぐに利用可能 | 何も必要ありません |
| セマンティック検索 | 埋め込みが必要 | BRAIN_EMBED_PROVIDER=ollama(ローカル、キー不要) |
| ナレッジグラフ | 抽出器が必要 | ローカルの Ollama(キー不要)または BRAIN_ANTHROPIC_API_KEY(最も高精度) |
1 つのコマンドで正常に動作していることを確認できます。mycobrain-doctor は環境変数が設定されているかを確認するだけではありません。ローカルの Ollama を使う場合は、設定を実際にライブ検証します(Ollama に ping し、埋め込み/抽出モデルが取得済みであることを確認し、実際に埋め込みと生成を実行します)。その後、抽出のバックログとレビューキューも確認します。実際の障害(赤い行)がある場合にのみゼロ以外の終了コードを返すため、緑色なら動作しています。
npx -y -p @mycobrain/mcp-server mycobrain-doctor
不足している Ollama モデルを取得するよう提案させるには、--fix を追加します。
npx -y -p @mycobrain/mcp-server mycobrain-doctor --fix
クライアントを接続する
おすすめ — ガイド付きセットアップ。 1つのコマンドで、各ステップの同意を得ながらエージェントの接続を進められます。
npx -y -p @mycobrain/mcp-server mycobrain-setup
事前チェック(それぞれ修正方法も提示されます)を実行し、pgvector とデータベースへの実際の書き込みを検証して、MCP クライアント(Claude Code、Claude Desktop、Cursor、Codex、Windsurf)を接続します。また、ChatGPT または Claude のデータエクスポートの zip がすでに ~/Downloads にある場合は、ワンタップでインポートできます。接続されたクライアントごとに独自のエージェント ID が割り当てられるため、後で記憶を呼び出した際に、どのツールに由来するかがわかります。自分で操作したい場合は、以下の手動手順をご覧ください。
Claude Code — 手動で設定する場合(クイックスタートスタックに用意された、一般公開のローカル開発用認証情報を使用します):
claude mcp add myco-brain \
--env DATABASE_URL=postgresql://brain:brain@localhost:5432/brain \
--env BRAIN_API_KEY=brain_00000000-0000-0000-0000-000000000001_00000000-0000-0000-0000-0000000000a1_localdev \
-- npx -y @mycobrain/mcp-server
Claude Code を再起動すると、brain_* ツールが使えるようになります。サーバーは接続された各エージェントに使用方法を自動で伝えるため(いつ呼び出し、保存し、引用するか)、すぐに快適に利用できます。
Claude Desktop — 以下を
~/Library/Application Support/Claude/claude_desktop_config.json
に追加します(Cursor と Windsurf では、同じ mcpServers ブロックを
.cursor/mcp.json または MCP 設定に追加します):
{
"mcpServers": {
"myco-brain": {
"command": "npx",
"args": ["-y", "@mycobrain/mcp-server"],
"env": {
"DATABASE_URL": "postgresql://brain:brain@localhost:5432/brain",
"BRAIN_WORKSPACE_ID": "00000000-0000-0000-0000-000000000001",
"BRAIN_API_KEY": "brain_00000000-0000-0000-0000-000000000001_00000000-0000-0000-0000-0000000000a1_localdev"
}
}
}
}
注:
BRAIN_WORKSPACE_IDはbrain_API キーから導出されるため、省略可能です。上記の Claude Code 用ワンライナーでは省略していますが、同じように動作します。
続いて、基本的な動作をテストします。
Save a memory: the launch checklist lives in the ops folder.
新しいセッションを開いて、次のように質問します。
Where does the launch checklist live?
セットアップの全手順は、docs/quickstart.mdをご覧ください。
初回実行 — あなた自身の「すごい」を体験する最短ルート
Myco は空の状態で提供されます。「すごい」という実感は、あなた自身のデータでこそ強く得られるため、まずは履歴を取り込むことをおすすめします。
# Guided getting-started — leads with importing your own history
npx -y -p @mycobrain/mcp-server mycobrain-onboard
# Import your ChatGPT or Claude export (~30s), then ask your agent about your past
mycobrain-ingest --from chatgpt-export ~/Downloads/<your-export>.zip
mycobrain-ingest --from claude-export ~/Downloads/<your-export>.zip
# → "what did I decide about <topic>?" answered from your own conversations.
取り込みを省略したい場合は、そのまま使い始めてください。作業中に Brain が記憶します。または、サンプルデータを使った60秒のライブツアーを試すこともできます。終了後は自動でクリーンアップされるため、あなたのワークスペースには影響しません。
mycobrain-onboard --tour
デモコーパスで動作を確認する(任意のサンドボックス)
より充実したガイド付きの例を試したい場合は、架空のエージェンシーとそのクライアントに関する、相互につながった小さなドキュメント群を収録したデモコーパスを読み込みます。
npx -y -p @mycobrain/mcp-server mycobrain-ingest ./examples/demo-corpus
次に、接続済みのエージェントに質問します。
- 「Northwind のリブランドはいつ開始され、アカウントの担当者は誰ですか?」
- 「Northwind にはどの料金モデルを選びましたか?その理由は何ですか?」
- 「その情報の出典を見せてください。」 —
brain_whyによる出典情報 - 「Myco の記憶統計を見せてください。」 —
brain_statsによる健全性スナップショット
すべての回答は、その情報の出所となったドキュメントまでたどれます。API キーは不要です。
最後の見どころ: このコーパスには、意図的な矛盾が含まれています。あるドキュメントでは Devin Osei は Lumen に勤務していると書かれていますが、後のドキュメントでは Harbor & Co. に移ったとされています。API キー不要のローカルグラフを起動した状態で、次のように質問してください。
- 「Devin Osei はどこで働いていますか?何が変わりましたか?それはどうしてわかるのですか?」
古い事実は、両方の出典ドキュメントとともに、置き換え済み — 削除せずに保持された状態で返されます。これはデモ用の台本ではなく、あなたのデータで信頼性を支える仕組みが働いている証拠です。
確認が終わったら、以下を実行して、同梱のサンプルデータのみを削除できます(あなた自身のインポートデータや記憶には一切触れません)。
mycobrain-onboard --reset-demo
フォルダーまたはリポジトリを一括取り込みする
Brain にディレクトリまたは GitHub リポジトリを指定すると、すべてのテキストファイルをインデックス化できます。セッションをまたいで検索でき、各回答はその出典ファイルまでたどれます。
npx -y -p @mycobrain/mcp-server mycobrain-ingest ./docs # a local folder
npx -y -p @mycobrain/mcp-server mycobrain-ingest github:owner/repo # a GitHub repo
クイックスタートスタックに対して実行する場合、環境変数は不要です。CLI はデフォルトでそのスタックを使用します。独自の Postgres またはワークスペースを使う場合は、MCP サーバーと同じ環境変数(DATABASE_URL、BRAIN_WORKSPACE_ID、BRAIN_API_KEY)を設定してください。
その後、接続済みのエージェントに「取り込んだファイルから認証フローを検索して」や「Myco の記憶統計を見せて」と質問します。プライベートリポジトリには GITHUB_TOKEN を設定してください。
ナレッジグラフを構築 — ローカルで、API キー不要
Myco とベクトルストアの違いは、グラフです。抽出ワーカーは取り込んだドキュメントを読み込み、次の処理を行います。
- エンティティ(人物、会社、プロジェクト、場所)を抽出します。
- 重複を統合して、「Priya」と「Priya Raman」を1つのノードにします。
- 有向関係でエンティティ同士を接続します。たとえば、Mara Quinn —works for→ Northwind Coffee であり、その逆ではありません(付属のプロンプトは方向を認識し、モデルが列挙し忘れた端点は自動的に復元されます)。
- 観測した新しい型を提案するため、スキーマはドメインとともに成長します。
抽出に使うモデルは選択できます。Ollama ならデータはマシンの外に出ません。最も正確なグラフを生成するのは Anthropic です。
14エッジのゴールドフィクスチャにおける、混同されがちな2つの異なる品質指標です
(検証方法:npm run test:direction)。
| 指標 | 測定内容 | スコア |
|---|---|---|
| 有向精度 | エッジの向きが正しいか | 86%(12/14、llama3.2:3b) |
| エッジ保持率 | 端点が削除されずに復元されたか | 約80%(11~12/14、合格基準 ≥75%) |
オプション A — ローカルで無料(Ollama、API キー不要)
# Install Ollama (https://ollama.com/download), then pull a model:
ollama pull llama3.2:3b
# Point the worker at it and restart:
echo "BRAIN_OLLAMA_BASE_URL=http://host.docker.internal:11434" >> .env
docker compose up -d
オプション B — 最も正確(Anthropic、キーを用意)
echo "BRAIN_ANTHROPIC_API_KEY=sk-ant-..." >> .env
docker compose up -d
両方が設定されている場合は、Anthropic が自動的に使われます(こちらのほうが正確です)。BRAIN_EXTRACTION_PROVIDER=ollama|anthropic で選択を指定できます。
試してみる
いくつかのドキュメントを取り込み、ワーカーが処理するまで少し待ってから、接続したエージェントに質問します。
- 「Northwind のドキュメントにはどんなエンティティがありますか?」 —
brain_neighbors - 「Mara Quinn は Northwind とどのようにつながっていますか?」 — エンティティ間の関係
- 「Myco のメモリ統計を表示してください。」 — グラフの成長を確認します(
brain_stats)
どちらを選んでも、正規のグラフは Postgres に保存されます。モデルは提案するだけで、何を永続的な事実とするかはデータベースが決定します。
ベンチマーク — 自分で実行する
ここで重視しているのは、単一のスコアではなく、再現性です。LongMemEval のハーネスがこのリポジトリに含まれているので、スコアはご自身で測定できます。こちらからスコアを断定することはありません。
| 指標 | サブセット(500問) | 設定 | スコア |
|---|---|---|---|
| エンドツーエンド QA | oracle | reader gpt-4o-mini · judge gpt-4o | 73.6% |
| エンドツーエンド QA | oracle | 高性能 reader(gpt-4o) | 71.8% |
エビデンス再現率@5(Ev@5) | longmemeval_s | ハイブリッド(ベクトル + BM25) | 89.2% |
エビデンス再現率@5(Ev@5) | longmemeval_s | キー不要の新しさ再ランキング | 91.6% |
| エビデンス再現率@10 | longmemeval_s | ハイブリッド → 新しさ | 90.2% → 93.2% |
エンドツーエンド QA では、reader にゴールドエビデンスのセッションだけを渡す oracle サブセットを使います。そのため、検索ではなく推論を切り分けて測定できます(検索の指標は下記の Ev@5 です)。高性能 reader の設定ではスコアが低くなります(gpt-4o、71.8%)。エビデンスがすでにコンテキストにあるとメモリ層の性能が飽和するため、reader はボトルネックではありません。これは、システム間で単一の代表スコアを比較すると誤解を招く理由そのものです。他で約90%とされる数値は、通常、異なるサブセット、reader、judge を使っています。私たちは直接比較での勝利を主張しているのではなく、同じ条件であらゆるシステムを評価できるハーネスを提供しています。
cd evals/longmemeval && python3 -m venv .venv && .venv/bin/pip install -r requirements.txt && cd ../..
OPENAI_API_KEY=sk-... DATABASE_URL=postgresql://brain:brain@localhost:5432/brain \
evals/longmemeval/.venv/bin/python3 -m evals.longmemeval.run \
--examples 500 --subset longmemeval_oracle --judge-model gpt-4o
検索品質(表の Ev@5)が実際の検索指標です。上記の oracle サブセットでは検索を評価しません。こちらは、ディストラクターを含む longmemeval_s の全サブセットで測定しています。新しさ再ランキング(brain_search(reranker: 'recency'))は決定論的です。API キーもネットワーク呼び出しも不要です。ハイブリッド検索には埋め込みプロバイダーが必要です(ローカルの Ollama ならキー不要、または OpenAI)。標準の BM25 のみの検索ではスコアが低くなります。再現するには(埋め込みのみ、judge なし):
python -m evals.longmemeval.run --subset longmemeval_s -n 500 --no-qa。
方法論、両方の設定、カテゴリ別の内訳(難しいカテゴリも隠さず報告)、およびより低コストなサンプルコマンドについては、 evals/longmemeval/README.md をご覧ください。
すべての主張に検証手段があります
このページでは、何も信じる必要はありません。各機能について、開発時にその動作を保証する実行可能な検証手段を示しています。(mcp-server/ で npm install を実行した後、npm run と node test/ のチェックを実行してください。node examples/ と evals/ のパスはリポジトリのルートからの相対パスです。)
| 主張 | チェック |
|---|---|
| クイックスタートが最初から最後まで動作します | node test/quickstart-e2e.mjs(実際の Docker スタックに対して CI でも実行されます) |
| 重複は発生せず、来歴がすべて記録されます | node examples/benchmark/run.mjs |
| API キー不要のセマンティック検索で、単語ではなく意味を検索できます | npm run test:local-embeddings |
| 関係性は方向を認識し、エッジは保持されます | npm run test:direction |
| 証拠が増えると信頼度が上がり、矛盾する情報が優先されます | npm run test:compounding |
| 新しい型が提案されます(裏付けがあり、オプトインした場合に限り自動昇格します) | npm run test:dynamic-schema · npm run test:schema-promotion |
| 厳格なキュレーションモードでは、自動昇格がすべてブロックされます | npm run test:strict-mode |
| プライベートドキュメントはプライベートのままです | npm run test:sharing |
| 15 個すべてのツールがコンテキストに収まります(約 4.0K トークン、メモリー専用の 2 ツールでは約 1.5K) | npm run audit:tokens |
| エージェンシー:クライアント A はクライアント B のデータを読み取れません(ワークスペース RLS) | npm run test:agency |
| 提案をレビューすると、実際に昇格または却下されます | npm run test:review |
| 読み取り専用 REST API:認証、読み取り専用、DoS 対策の上限あり | npm run test:rest |
| ベンチマークの数値 | evals/longmemeval/(完全なハーネスをリポジトリ内に収録) |
対象ユーザー
Myco は、AI エージェントに確かな根拠とともに記憶させたいあらゆるチーム向けのメモリーレイヤーです。以下の各ページでは、対象ユーザーに合わせて説明を構成し直し、さまざまな業界(FinTech、Healthcare、Legal、Accounting、Insurance、SaaS、カスタマーサポート、eコマース)で共通するユースケースを紹介します。
- 開発者:本番環境向けにエージェントを構築する方。単一の MCP サーバー、決定論的な書き込みパス、そして自分で管理できる来歴を提供します。
- Vibecoder:すばやくリリースしたい方。1 行で永続メモリーを導入でき、API キー不要かつ無料で、インフラを構築する必要もありません。
- チーム:AI を製品に導入する方。テナントごとに分離された顧客メモリーを、自分で管理する Postgres 上で利用できます。
- エージェンシー:各クライアントに、分離され監査可能なワークスペースを提供します。
アーキテクチャ
意図的にシンプルな設計にしています。データベースが正とする情報源であり、書き込みパスはプログラムで処理し、LLM はメモリーストアになることなく支援します。
ツール一覧
エンジンを設定すると、MCP サーバーは 15 個のツールを公開し、メモリー専用で実行すると 2 個のツールを公開します(Cursor、Windsurf、Claude Desktop 用に mycobrain-setup memory が書き込む設定です)。
メモリーツール:
brain_memory_contextbrain_memory_write
エンジンツール:
brain_context_packbrain_searchbrain_whybrain_neighborsbrain_ingestbrain_propose_factbrain_annotatebrain_save_memorybrain_recall_memorybrain_get_relatedbrain_statsbrain_set_modebrain_self_check
各ツールの完全な入力、出力、使用例については、docs/api-reference.md をご覧ください。
環境変数
Docker クイックスタートでは、これらは一切不要です。ローカル認証情報があらかじめ設定されており、BM25 検索はすぐに動作します。独自のデプロイでは、こちらを参考にしてください。調整用しきい値を含む注釈付きの全一覧は、.env.example をご覧ください。どの設定が有効か分からない場合は、mycobrain-doctor を実行してください。
必須
| 変数 | デフォルト | 説明 |
|---|---|---|
DATABASE_URL | — | Postgres 接続文字列です。必須なのはこれだけです。 |
BRAIN_API_KEY | seeded | brain_<workspace>_<agent>_<secret> 形式のキーです。クイックスタートには localdev キーが付属します。 |
BRAIN_WORKSPACE_ID | from key | BRAIN_API_KEY から導出されます。サービスロール認証の場合に限り、明示的に設定してください。 |
セマンティック検索 (任意 — 設定しなくても BM25 全文検索は動作します)
| 変数 | デフォルト | 説明 |
|---|---|---|
BRAIN_EMBED_PROVIDER | auto | ollama または openai を指定します。設定されている認証情報に応じて自動選択されます。 |
BRAIN_OLLAMA_EMBED_MODEL | nomic-embed-text | ローカルの埋め込みモデルです(キーは不要で、データがマシンの外に送信されることもありません)。 |
BRAIN_OPENAI_API_KEY | — | ローカルではなく OpenAI の埋め込みを使用します。 |
ナレッジグラフ (任意)
| 変数 | デフォルト | 説明 |
|---|---|---|
BRAIN_OLLAMA_BASE_URL | — | ローカルの抽出/埋め込みエンドポイントです(例:http://localhost:11434)。 |
BRAIN_OLLAMA_MODEL | llama3.2:3b | ローカルの抽出モデルです。 |
BRAIN_ANTHROPIC_API_KEY | — | 最も正確なグラフを生成します。設定されている場合、自動的に使用されます。 |
BRAIN_EXTRACTION_PROVIDER | auto | ollama または anthropic を強制的に指定します。 |
信頼度の調整 (ガバナンス)
| 変数 | デフォルト | 説明 |
|---|---|---|
BRAIN_REQUIRE_HUMAN_REVIEW | 0 | 厳格なキュレーションを行います。LLM が提案した内容は、人間による判断なしにグラフへ追加されません。 |
BRAIN_SCHEMA_AUTO_PROMOTE | 0 | 裏付けのある新しい型を、監査対象かつワークスペース単位で自動昇格させます。 |
サービング
| 変数 | デフォルト | 説明 |
|---|---|---|
BRAIN_REST_HOST | 127.0.0.1 | mycobrain-rest のバインド先ホストです。独自の TLS/プロキシの背後に置く場合に限り、0.0.0.0 を使用してください。 |
BRAIN_REST_PORT | 8787 | 読み取り専用 REST ポートです。 |
BRAIN_HEALTH_PORT | 8080 | ヘルスチェック用ポートです。 |
ID とセキュリティ
| 変数 | デフォルト | 説明 |
|---|---|---|
BRAIN_REQUIRE_API_KEY_SECRET | 0 | 認証を成功させるには、すべてのエージェントキーに登録済みの <secret> が必要になります。 |
BRAIN_TRUST_REQUEST_IDENTITY | 0 | Stdio およびマルチテナントゲートウェイ専用です。 オフの場合、ID は環境変数のみから取得されるため、呼び出し元が指定した workspace_id/api_key は無視されます(プロンプトインジェクションへの耐性があります)。各リクエストを認証するゲートウェイの背後にある場合に限り、1 を設定してください。詳細 ↑ |
BRAIN_AGENT_ID | from key | サービスロール認証に使用するエージェント ID です。それ以外の場合は BRAIN_API_KEY から導出されます。 |
BRAIN_SERVICE_ROLE_KEY | — | 信頼されたサービス呼び出し元向けの Supabase サービスロール JWT です(brain_ キーの代替)。 |
調整用しきい値(
BRAIN_SCHEMA_PROMOTE_MIN_SEEN、BRAIN_EXTRACTION_LEASE_MS、BRAIN_FUNCTIONAL_PREDICATES、…)は.env.exampleに記載されています。
リポジトリの構成
myco-brain/
├── mcp-server/ # TypeScript MCP server + bulk-ingest CLI
├── supabase/migrations/ # versioned SQL migrations
├── demos/ # demos-as-code (VHS + ffmpeg + narration pipeline)
├── docs/quickstart.md # setup guide
├── evals/
│ └── longmemeval/ # LongMemEval benchmark harness (run it yourself)
├── examples/
│ ├── demo-corpus/ # sample interconnected docs to ingest
│ └── benchmark/ # reproducible dedup + provenance benchmark
├── docker-compose.yml # local quickstart
├── ROADMAP.md # where this is headed
└── LICENSE # Apache-2.0
ChatGPT/Claude の履歴をインポートする
数か月分のアシスタントとの会話が、出典を追跡でき、重複がなく、検索可能なメモリーになります。会話ごとに1つのドキュメントとして保存されます。
# Official OpenAI data export (zip, extracted folder, or conversations.json)
mycobrain-ingest --from chatgpt-export ./chatgpt-export.zip
# claude.ai data export
mycobrain-ingest --from claude-export ./claude-export.zip
- 再インポートしても重複しません — 各会話はコンテンツハッシュをキーとする1つのドキュメントとして保存されるため、再実行しても何も起こりません。会話を続けて再エクスポートすると、より長いトランスクリプトが新しいバージョンとして元のものと並んでインポートされます。
- ChatGPT の分岐したスレッドでは、アクティブな分岐をインポートします — 実際に残したトランスクリプトが対象となり、破棄した再生成内容は含まれません。
- 完全な出典情報 —
brain_whyにより、インポートしたすべての事実をエクスポートファイルまでたどれます。
検証:npm run test:export-import。
手間いらず — Downloads を監視します。 エクスポートをリクエストしたら、Myco がファイルの到着と同時にインポートします。パスをコピーする必要はなく、データがマシンの外に出ることもありません。
# Poll ~/Downloads and auto-import a ChatGPT/Claude export the second it arrives (Ctrl-C to stop)
mycobrain-ingest --watch-downloads
# Already downloaded it? Import whatever export is there, then exit
mycobrain-ingest --watch-downloads --once
他のインポートと同様に、オプトイン方式で重複を排除します。別のフォルダーを指定するには BRAIN_WATCH_DIR を設定してください(PATH 上に unzip が必要です)。
クラウドのウェイトリスト
セルフホストがデフォルトです。マネージドホスティングをご希望の場合は、ウェイトリストにご登録ください。
このページが正式なウェイトリスト登録先です。この README には意図的にフォームを埋め込んでいません。
OSS ファイル
リソース
開発者について
Myco Brain は、キャリアエンジニアではなくグロースマーケターの Nick Taylor が、AI コーディングエージェントのチームを率いて開発しました。約3か月、モデル利用に約6,000ドルを費やし、AI を活用したエンジニアリングで構築しました。重要なのは費用ではありません。明確な製品ビジョンと最新のエージェントツールがあれば、本番品質のインフラをリリースできるようになったということです。このリポジトリがその成果です。このページに記載された主張には、すべて実行可能な検証方法が示されています(すべての主張には検証方法があります)。開発の経緯をそのまま信じるのではなく、ご自身で判断できます。
気に入りましたか? ⭐ を付けると、ほかの人にも見つけてもらいやすくなります。また、ページ上部の Watch → Releases を設定すると、新機能のリリース時に通知が届きます。今後の予定はロードマップをご覧ください。
チームで導入したいですか? 貴社でこのようなエージェントシステム、自動化、グロースエンジニアリングを構築できる人材をお探しなら、The Good Guys が対応します。[email protected] までメールを送るか、通話を予約してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。