Memory OS AI について
Memory OS AIは、AIエージェント向けのローカル優先型メモリーシステムです。文書やチャット履歴を検索可能なセマンティックメモリーに変換し、MCP経由で複数形式の取り込み、プロジェクト間共有、クラウドへの退避を提供します。
主な機能
- 01FAISSによるセマンティック検索
- 02文書・画像・音声の取り込み
- 03チャット履歴の抽出と保存
- 04プロジェクト間のメモリー連携
- 05ローカル容量不足時のクラウド退避
- 0621個のMCPツールと3種類のトランスポート
活用シーン
- 01ローカル文書から関連情報を探す
- 02新しいセッション向けにメモリー概要を作る
- 03複数のプロジェクト間でメモリーを共有する
- 04ディスク容量不足時にメモリーをクラウドへ退避する
MCP 対応
MCPサーバーは、メモリー管理、検索、チャット保存、プロジェクト連携、クラウドストレージ用の21個のツールとmemory://リソースを提供します。stdio、SSE、Streamable HTTPに対応します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Memory OS AI
AI エージェント向けの適応型メモリシステム — Claude Code、Codex CLI、VS Code Copilot、ChatGPT など、あらゆる MCP 対応クライアントで使える汎用 MCP サーバーです。
コンセプト
Memory OS AI は、ローカルのドキュメント(PDF、DOCX、画像、音声)を、MCP(Model Context Protocol)を通じてあらゆる AI モデルから検索できるセマンティックメモリに変換します。
┌──────────────────────────────────┐
│ AI Client (any MCP-compatible) │
│ Claude Code / Codex / Copilot │
│ ChatGPT / custom agents │
├──────────────────────────────────┤
│ MCP Protocol │
│ stdio / SSE / Streamable HTTP │
├──────────────────────────────────┤
│ Memory OS AI Server │
│ ┌────────┐ ┌───────────────┐ │
│ │ FAISS │ │ Chat Extractor│ │
│ │ Index │ │ (4 sources) │ │
│ └────────┘ └───────────────┘ │
│ ┌────────────────────────────┐ │
│ │ Cross-Project Linking │ │
│ └────────────────────────────┘ │
└──────────────────────────────────┘
特長
- メモリ管理、検索、チャットの永続化、プロジェクトのリンク、クラウドストレージに対応する21 個の MCP ツール
- FAISS + SentenceTransformers(all-MiniLM-L6-v2)によるセマンティック検索
- マルチフォーマットの取り込み:PDF、DOCX、TXT、画像(OCR)、音声(Whisper)、PPTX
- チャットの抽出:Claude、ChatGPT、Copilot、ターミナルの履歴を自動検出
- プロジェクト間のリンク:複数のワークスペース間でメモリを共有
- クラウドストレージへの自動退避:Google Drive、iCloud、Dropbox、OneDrive、S3、Azure、Box、B2 に自動バックアップ
- 3 種類のトランスポート:stdio(デフォルト)、SSE(
--sse)、Streamable HTTP(--http) - MCP リソース:
memory://documents/*、memory://logs/conversation、memory://linked/* - ローカル優先:デフォルトではすべてのデータをローカルマシンに保存し、ディスク容量が不足した場合のみクラウドを使用
21 個の MCP ツール
| ツール | 説明 |
|---|---|
memory_ingest | ドキュメントのフォルダーを FAISS にインデックス化 |
memory_search | インデックス化されたすべてのコンテンツをセマンティック検索 |
memory_search_occurrences | ドキュメント全体でキーワードの出現回数をカウント |
memory_get_context | 現在のタスクに関連するコンテキストを取得 |
memory_list_documents | 統計情報付きで、インデックス化されたすべてのドキュメントを一覧表示 |
memory_transcribe | 音声ファイルを文字起こし(Whisper) |
memory_status | エンジンの状態(インデックスサイズ、モデル、デバイス) |
memory_compact | FAISS インデックスを圧縮/重複排除 |
memory_chat_sync | 設定済みのチャットソースからメッセージを同期 |
memory_chat_source_add | チャットソースを追加(Claude、ChatGPT など) |
memory_chat_source_remove | チャットソースを削除 |
memory_chat_status | すべてのチャットソースの状態 |
memory_chat_auto_detect | ディスク上のチャットワークスペースを自動検出 |
memory_session_brief | セッション開始時にメモリの概要をすべて取得 |
memory_chat_save | 会話メッセージをメモリに保存 |
memory_project_link | 別のプロジェクトのメモリをリンク |
memory_project_unlink | プロジェクトのリンクを解除 |
memory_project_list | リンク済みのすべてのプロジェクトを一覧表示 |
memory_cloud_configure | 容量超過時に使用するクラウドストレージのバックエンドを設定 |
memory_cloud_status | ローカルディスクとクラウドストレージの状態を表示 |
memory_cloud_sync | ローカルとクラウド間で送信/取得/自動同期 |
クイックスタート
前提条件
- Python 3.10+
- オプション:
tesseract(OCR)、ffmpeg(音声)、antiword(旧形式の .doc)
# macOS
brew install tesseract ffmpeg antiword
# Ubuntu/Debian
sudo apt-get install tesseract-ocr ffmpeg antiword
インストール
git clone https://github.com/romainsantoli-web/Memory-os-ai.git
cd Memory-os-ai
pip install -e ".[dev,audio]"
自動セットアップ(推奨)
# Setup for your AI client:
memory-os-ai setup claude-code # Claude Code
memory-os-ai setup codex # Codex CLI
memory-os-ai setup vscode # VS Code Copilot
memory-os-ai setup claude-desktop # Claude Desktop
memory-os-ai setup chatgpt # ChatGPT (manual bridge)
memory-os-ai setup all # All of the above
# Check status:
memory-os-ai setup status
手動起動
# stdio (default — Claude Code, VS Code, Codex)
memory-os-ai
# SSE transport (port 8765)
memory-os-ai --sse
# Streamable HTTP (port 8765)
memory-os-ai --http
プロジェクト構成
Memory-os-ai/
├── src/memory_os_ai/
│ ├── __init__.py # Public API: MemoryEngine, ChatExtractor, TOOL_MODELS
│ ├── __main__.py # python -m memory_os_ai entry point
│ ├── server.py # MCP server — 21 tools, 3 transports, resources
│ ├── engine.py # FAISS engine — indexing, search, compact, session brief
│ ├── cloud_storage.py # 8 cloud backends (GDrive, iCloud, Dropbox, OneDrive, S3, Azure, Box, B2)
│ ├── storage_router.py # Smart routing: local-first with cloud overflow
│ ├── models.py # 21 Pydantic models + TOOL_MODELS registry
│ ├── chat_extractor.py # 4 extractors: Claude, ChatGPT, Copilot, terminal
│ ├── instructions.py # MEMORY_INSTRUCTIONS for AI clients
│ └── setup.py # Auto-setup CLI for 5 AI clients
├── bridges/
│ ├── claude-code/ # CLAUDE.md with memory rules
│ ├── claude-desktop/ # config.json for Claude Desktop
│ ├── codex/ # AGENTS.md for Codex CLI
│ ├── vscode/ # mcp.json for VS Code
│ └── chatgpt/ # mcp-connection.json for ChatGPT
├── tests/ # 410+ tests — 96% coverage
│ ├── test_memory.py # Engine + models (60 tests)
│ ├── test_chat_extractor.py # Chat extraction (39 tests)
│ ├── test_bridges.py # Bridge configs (22 tests)
│ ├── test_gaps.py # Compact, cross-project, resources (34 tests)
│ ├── test_server_dispatch.py # Server dispatch + async (61 tests)
│ ├── test_setup.py # Setup CLI targets
│ ├── test_z_coverage_boost.py # Coverage boost (35 tests)
│ └── test_zz_full_coverage.py # Full coverage (97 tests)
├── pyproject.toml # v3.1.0 — deps, scripts, coverage config + cloud optional deps
├── Dockerfile # Container deployment
└── README.md
クラウドストレージ(v3.1.0)
ローカルディスクの空き容量がデフォルトのしきい値(500 MB)を下回ると、メモリデータは設定済みのクラウドバックエンドに自動的に退避されます。
対応プロバイダー
| プロバイダー | インストール | 認証情報 |
|---|---|---|
| Google Drive | pip install memory-os-ai[cloud-gdrive] | credentials_json または token_json + folder_id |
| iCloud Drive | (macOS 標準機能、追加の依存関係なし) | container 名(デフォルト:memory-os-ai) |
| Dropbox | pip install memory-os-ai[cloud-dropbox] | access_token + folder |
| OneDrive | (マウントを自動検出) または Graph API | mount_path または access_token |
| Amazon S3 | pip install memory-os-ai[cloud-s3] | bucket、aws_access_key_id、aws_secret_access_key |
| Azure Blob | pip install memory-os-ai[cloud-azure] | connection_string + container |
| Box | pip install memory-os-ai[cloud-box] | access_token + folder_id |
| Backblaze B2 | pip install memory-os-ai[cloud-b2] | application_key_id、application_key、bucket_name |
| すべてのプロバイダー | pip install memory-os-ai[cloud-all] | — |
使用方法
# Configure via environment (auto-activates on server start)
export MEMORY_CLOUD_PROVIDER=icloud
export MEMORY_CLOUD_CONFIG='{"container": "memory-os-ai"}'
memory-os-ai
# Or configure at runtime via MCP tool:
# memory_cloud_configure(provider="s3", credentials={"bucket": "my-bucket", ...})
# memory_cloud_status() → local disk + cloud usage
# memory_cloud_sync("push") → backup to cloud
# memory_cloud_sync("pull") → restore from cloud
# memory_cloud_sync("auto") → offload if disk low
設定
環境変数
| 変数 | デフォルト | 説明 |
|---|---|---|
MEMORY_CACHE_DIR | ~/.memory-os-ai | キャッシュ/FAISS インデックスのディレクトリ |
MEMORY_MODEL | all-MiniLM-L6-v2 | SentenceTransformer のモデル名 |
MEMORY_API_KEY | (なし) | SSE/HTTP 認証用の任意の API キー |
MEMORY_CLOUD_PROVIDER | (なし) | クラウドプロバイダー名(上の表を参照) |
MEMORY_CLOUD_CONFIG | (なし) | JSON 認証情報、または JSON ファイルへのパス |
MEMORY_DISK_THRESHOLD | 524288000 | クラウドへのオーバーフローが発生するまでの空きバイト数(500 MB) |
開発
# Install dev dependencies
pip install -e ".[dev]"
# Run tests
python -m pytest tests/ -v
# Run with coverage
python -m pytest tests/ --cov=memory_os_ai --cov-report=term-missing
# Coverage threshold: 80% (enforced in pyproject.toml)
ライセンス
GNU Lesser General Public License v3.0(LGPL-3.0)。詳細は LICENSE をご覧ください。
商用ライセンスについては、[email protected] までお問い合わせください。
OpenClaw エコシステムの一部
Memory OS AI は、OpenClaw エージェントインフラストラクチャと連携して動作するように設計されています。
| リポジトリ | 説明 |
|---|---|
| setup-vs-agent-firm | AI エージェント企業のファクトリー — 28 の SKILL.md、5 つの SOUL.md、15 の業種 |
| mcp-openclaw-extensions | 115 個の MCP ツール — セキュリティ監査、A2A ブリッジ、フリート管理 |
| Memory OS AI (このリポジトリ) | セマンティックメモリ + チャットの永続化 — 汎用 MCP ブリッジ |
これらを組み合わせると、メモリ(このリポジトリ)→ スキルとソウル(setup-vs-agent-firm)→ セキュリティとオーケストレーション(mcp-openclaw-extensions)という完全なスタックが構成されます。
貢献
貢献を歓迎します!ガイドラインについては CONTRIBUTING.md をご覧ください。
⚠️ AI によって生成されたコンテンツです — 使用前に人間による確認が必要です。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。