{"id":47951110,"url":"https://github.com/kagura-ai/memory-cloud","last_synced_at":"2026-05-31T07:01:13.676Z","repository":{"id":347636253,"uuid":"1194728455","full_name":"kagura-ai/memory-cloud","owner":"kagura-ai","description":"Adaptive AI Agent Memory — Self-hosted MCP server that gets smarter as you use it. Hybrid search, neural memory graph, AI reranking, and web UI. Built with FastAPI, Next.js, PostgreSQL, and Qdrant.","archived":false,"fork":false,"pushed_at":"2026-05-30T08:26:48.000Z","size":6984,"stargazers_count":4,"open_issues_count":27,"forks_count":4,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-30T09:20:06.078Z","etag":null,"topics":["adaptive-memory","ai-agents","docker","fastapi","hybrid-search","japanese","llm","mcp","mcp-server","multilingual","neural-memory","nextjs","ollama","postgresql","python","qdrant","rag","self-hosted","typescript","vector-search"],"latest_commit_sha":null,"homepage":"https://github.com/kagura-ai/memory-cloud","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kagura-ai.png","metadata":{"files":{"readme":"README.ja.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":"JFK"}},"created_at":"2026-03-28T18:28:03.000Z","updated_at":"2026-05-30T08:26:45.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/kagura-ai/memory-cloud","commit_stats":null,"previous_names":["kagura-ai/memory-cloud"],"tags_count":39,"template":false,"template_full_name":null,"purl":"pkg:github/kagura-ai/memory-cloud","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kagura-ai%2Fmemory-cloud","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kagura-ai%2Fmemory-cloud/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kagura-ai%2Fmemory-cloud/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kagura-ai%2Fmemory-cloud/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kagura-ai","download_url":"https://codeload.github.com/kagura-ai/memory-cloud/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kagura-ai%2Fmemory-cloud/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33722156,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-31T02:00:06.040Z","response_time":95,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["adaptive-memory","ai-agents","docker","fastapi","hybrid-search","japanese","llm","mcp","mcp-server","multilingual","neural-memory","nextjs","ollama","postgresql","python","qdrant","rag","self-hosted","typescript","vector-search"],"created_at":"2026-04-04T09:03:08.495Z","updated_at":"2026-05-31T07:01:13.668Z","avatar_url":"https://github.com/kagura-ai.png","language":"Python","funding_links":["https://github.com/sponsors/JFK"],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://www.kagura-ai.com/ja/\"\u003e\n    \u003cimg src=\"docs/assets/kagura-logo.svg\" alt=\"Kagura Memory Cloud\" width=\"400\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"README.md\"\u003eEnglish\u003c/a\u003e · 日本語\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cstrong\u003eチーム向けセルフホスト LLM Knowledge Base\u003c/strong\u003e — RAG を超えて。\u003cbr\u003e\n  MCP-as-compile-API + Hebbian 学習 + Sleep Maintenance。\u003cbr\u003e\n  \u003ca href=\"https://gist.github.com/karpathy/442a6bf555914893e9891c11519de94f\"\u003eKarpathy の LLM Wiki パターン\u003c/a\u003e をチーム規模 + 永続化対応に拡張。\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"LICENSE\"\u003e\u003cimg src=\"https://img.shields.io/badge/License-Apache_2.0-blue.svg\" alt=\"License\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/kagura-ai/memory-cloud/actions/workflows/ci.yml\"\u003e\u003cimg src=\"https://github.com/kagura-ai/memory-cloud/actions/workflows/ci.yml/badge.svg\" alt=\"CI\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://codecov.io/gh/kagura-ai/memory-cloud\"\u003e\u003cimg src=\"https://codecov.io/gh/kagura-ai/memory-cloud/graph/badge.svg\" alt=\"codecov\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://www.python.org/downloads/\"\u003e\u003cimg src=\"https://img.shields.io/badge/python-3.11+-blue.svg\" alt=\"Python 3.11+\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://nodejs.org/\"\u003e\u003cimg src=\"https://img.shields.io/badge/node.js-20+-green.svg\" alt=\"Node.js 20+\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://modelcontextprotocol.io/\"\u003e\u003cimg src=\"https://img.shields.io/badge/MCP-Streamable_HTTP-purple.svg\" alt=\"MCP\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://safeskill.dev/scan/kagura-ai-memory-cloud\"\u003e\u003cimg src=\"https://img.shields.io/badge/SafeSkill-90%2F100_Verified%20Safe-brightgreen\" alt=\"SafeSkill 90/100\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  Claude、ChatGPT、Gemini、その他あらゆる MCP 互換クライアントで動作。\u003cbr\u003e\n  \u003ca href=\"https://github.com/kagura-ai/kagura-memory-python-sdk\"\u003e\u003cstrong\u003ePython SDK (KaguraClient / KaguraAgent)\u003c/strong\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n## なぜ Kagura Memory Cloud か？\n\n\u003e **AI は会話のたびに全てを忘れる。Kagura はそれを解決し、検索するたびに賢くなる。**\n\n多くの AI メモリツールはベクトル DB にチャット UI を被せただけ。Kagura は違います — Karpathy の [LLM Wiki](https://gist.github.com/karpathy/442a6bf555914893e9891c11519de94f) パターンを **チーム規模で完全実装**:\n\n| アプローチ | ストレージ | 複利成長 (compounding) | 規模 |\n|---|---|---|---|\n| Vector DB / RAG | embedded chunks | なし — 取得専用 | 任意 |\n| Karpathy の LLM Wiki | markdown ファイル | LLM がページを書き換え | 個人 (約 100 ページ) |\n| **Kagura Memory Cloud** | **PostgreSQL + Qdrant + Neural graph** | **Hebbian + Sleep Maintenance** | **チーム / 組織** |\n\n\n\n| 機能 | 説明 |\n|------|------|\n| **Adaptive Memory** | 検索のたびに関連メモリ間の接続が自動強化。使うほど `explore()` が隠れた関連性を発見する精度が上がる |\n| **Hybrid Search** | Semantic (OpenAI/Ollama) + BM25 キーワード — top-1 精度 96% |\n| **AI Reranking** | Ollama (ローカル・無料)、Voyage AI、Cohere — cross-encoder reranker で精度向上 |\n| **Neural Memory Graph** | Hebbian 学習がバックグラウンドで知識グラフを構築。`explore()` がそれを辿り偶発的発見を提供 |\n| **37 の MCP ツール** | Memory、Neural edges、Contexts、Tags、Files (R2)、Analyses (broadlistening)、Resources、Sleep Maintenance、Usage |\n| **マルチプロバイダ** | 埋め込みに OpenAI か Ollama (ローカル・非公開・コストゼロ) |\n| **チーム対応** | Workspace、RBAC、context 分離、共有メモリ |\n| **Web UI** | Next.js ダッシュボード — context、検索設定、メンバー管理 |\n| **5 分セットアップ** | `./setup.sh` のみ |\n\n## アーキテクチャ\n\n```\nWorkspace (チーム/組織)\n├── Context A (\"my-project\")     ← フォルダのような単位\n│   ├── Memory 1                 ← 3 層構造: summary / context / content\n│   ├── Memory 2\n│   └── Neural edges (Hebbian)   ← 自動接続\n├── Context B (\"learning-notes\")\n│   └── ...\n└── Members (Owner/Admin/Member/Viewer)\n```\n\n### LLM Knowledge Base — 5 層実装\n\nKarpathy の [LLM Wiki パターン](https://gist.github.com/karpathy/442a6bf555914893e9891c11519de94f) は「生きた知識ベース」を 5 層で記述しています (RAG を超えるパターン)。Kagura はこの 5 層全てをチーム規模で実装:\n\n| Layer | Kagura の実装 | Karpathy パターンとの違い |\n|---|---|---|\n| **Ingest** | REST `/api/v1/memory`、MCP `remember`、R2 ファイルストレージ、resource tokens | + バイナリ blob、+ マルチテナント |\n| **Compile** | **MCP-as-compile-API** — chat agent が構造化 tool call (`remember(summary, content, type, tags)`) で compile + Sleep Maintenance がバッチ統合 | バッチ wiki 書き換えではなく連続マイクロ compile — schema 強制 |\n| **Index** | 三重 index: **BM25** (keyword) + **Qdrant** (semantic) + **Hebbian graph** (relational) — 全自動維持 | 手動の `index.md` メンテ不要 |\n| **Query** | Hybrid Search + AI Reranker + `explore` グラフ探索 | markdown grep を超え、semantic + relational query をサポート |\n| **Enhance** | **Hebbian 学習** — `recall()` のたびに共起 memory 間の edge が強化。Sleep Maintenance が定期統合 | LLM コストゼロのバックグラウンド成長 (LLM による page 書き換えと違う) |\n\n**Compounding loop**: 現状は明示的 (user/agent が回答合成後に `remember()` を呼ぶ)。回答の自動書き戻しはノイズを抑えるため意図的に opt-in。\n\n\n### Adaptive Memory: 2 つの検索経路\n\nKagura は **精密検索** と **発見** を独立した 2 経路に分け、それぞれを用途特化で最適化:\n\n```\nrecall()  ──→ Hybrid Search (semantic + BM25) ──→ [Reranker] ──→ 精密結果\n                      │\n                      └──→ Hebbian 学習 (バックグラウンド) ──→ グラフ edge が成長\n                                                                 │\nexplore() ──→ グラフ探索 (Neural Memory) ←───────────────────────┘  関連発見\n```\n\n- **`recall()`** — 精密検索。Hybrid (semantic 60% + BM25 40%) + 任意の AI reranking。最も関連度の高いメモリを返す\n- **`explore()`** — 発見。Neural Memory グラフを辿り、キーワード検索では拾えない関連メモリを見つける\n- **Hebbian 学習** — `recall()` のたびに共起したメモリ間の edge が暗黙に強化。明示的な学習不要で、使うほどグラフが有機的に成長\n\nこの分離は意図的です。グラフ信号を recall に混ぜると精度が落ちる ([ベンチマーク検証済み](docs/neural-memory-evaluation.md))。各経路が自分の得意領域に集中する設計。\n\n**データ分離:** 全データは `workspace_id → context_id → user_id` でフィルタ。境界を越えた漏洩なし。Qdrant は単一 collection + payload filtering。\n\n**技術スタック:** FastAPI (async) · PostgreSQL · Qdrant · Redis · Next.js 16 · OAuth2 · MCP over Streamable HTTP\n\n## クイックスタート\n\n### 動作要件\n\n|  | 最小 | 推奨 |\n|--|------|------|\n| CPU | 2 コア | 4 コア以上 |\n| RAM | 4 GB | 8 GB 以上 |\n| ディスク | 10 GB 空き | 20 GB 以上 空き |\n\n### 前提\n\n- Docker と Docker Compose\n- Python 3.11+\n- Node.js 20+\n- 埋め込み用 OpenAI API キー — または Ollama (ローカル埋め込み)\n- OAuth2 クレデンシャル (任意 — OAuth 無しでもパスワード + MFA ログイン可)\n\n### セットアップ\n\n**ワンライナー:**\n\n```bash\ngit clone https://github.com/kagura-ai/memory-cloud.git\ncd memory-cloud\n./setup.sh\n```\n\n**Claude Code 併用:**\n\n```bash\ngit clone https://github.com/kagura-ai/memory-cloud.git\ncd memory-cloud\nclaude   # 起動後 /setup\n```\n\n**ステップ個別実行:**\n\n```bash\n# 1. Clone\ngit clone https://github.com/kagura-ai/memory-cloud.git\ncd memory-cloud\n\n# 2. 環境設定 (secrets 生成、API キー入力)\n(cd backend \u0026\u0026 python3 -m src.cli.setup_env)\n\n# 3. サービス起動\ndocker compose up -d\n\n# 4. マイグレーション\n(cd backend \u0026\u0026 alembic upgrade head)\n\n# 5. admin 作成 (対話式 — パスワード/MFA/API キー/埋め込みプロバイダ設定)\n(cd backend \u0026\u0026 python3 -m src.cli.create_admin)\n\n# Backend API:  http://localhost:8080\n# Frontend UI:  http://localhost:3000\n# API docs:     http://localhost:8080/redoc\n```\n\n**`.env.local` 設定** (`setup_env` が自動構成):\n\n| 設定 | 必須 | 説明 |\n|------|------|------|\n| `API_KEY_SECRET` | **必須** | API キー暗号化用 secret (自動生成) |\n| `JWT_SECRET` | **必須** | JWT トークン用 secret (自動生成) |\n| `OPENAI_API_KEY` | **必須**\\* | 埋め込み用 OpenAI API キー |\n| `OLLAMA_BASE_URL` | 任意 | Ollama URL (既定: `http://localhost:11434`) |\n| `EMBEDDING_PROVIDER` | 任意 | `openai` (既定) または `ollama` |\n| `GOOGLE_CLIENT_ID/SECRET` | 任意 | Google OAuth2 ログイン (任意 — パスワードログインも可) |\n| `GITHUB_CLIENT_ID/SECRET` | 任意 | GitHub OAuth2 ログイン (任意) |\n\n\\* メモリ機能には `OPENAI_API_KEY` または稼働中の Ollama が必要。\n\n### Admin CLI\n\n| コマンド | 用途 |\n|----------|------|\n| `python3 -m src.cli.setup_env` | secrets 生成 + `.env.local` 構成 (Docker 起動前) |\n| `python3 -m src.cli.create_admin` | admin + workspace + API キー + `.mcp.json` + 埋め込み設定 |\n| `python3 -m src.cli.reset_password` | パスワード / MFA リセット |\n| `python3 -m src.cli.delete_admin` | admin 削除 (再作成用) |\n\n\u003e `backend/` ディレクトリで実行。Docker API コンテナの起動が必須。\n\n## MCP クライアント設定\n\n### Claude Code (推奨)\n\nClaude Code + Kagura Memory Cloud で、**セッション / マシン / プロジェクト横断の永続・検索可能・チーム共有メモリ** を AI アシスタントに与えます。\n\n**Claude Code の組込みメモリで足りないのはなぜ？**\n\n| | Claude Code メモリ | Kagura Memory Cloud |\n|---|---|---|\n| 保存場所 | ローカルファイル (`~/.claude/`) | クラウド (PostgreSQL + Qdrant) |\n| 検索 | ファイル名のみ | Hybrid Search (semantic + 全文) |\n| 共有 | 単一マシン | RBAC 付き team workspace |\n| 構造 | フラット markdown | 3 層 + Neural Memory graph |\n| プロジェクト横断 | プロジェクトごと | MCP で任意プロジェクト |\n\n**セットアップ (3 ステップ):**\n\n1. サービス起動後 `http://localhost:3000/workspace/integrations/api-keys` で API キー作成\n2. `.mcp.json.example` を `.mcp.json` にコピーし workspace ID と API キーを設定:\n\n```bash\ncp .mcp.json.example .mcp.json\n# .mcp.json を編集 — URL の workspace_id と API キーを入れる\n```\n\n3. Claude Code を再起動して確認:\n```\nあなた: \"メモリの context 一覧を教えて\"\n→ AI が list_contexts() を呼ぶ\n\nあなた: \"覚えておいて: API は JWT 1h expiry + refresh token rotation\"\n→ AI が remember() で恒久保存\n\nあなた: \"認証について何を知ってる？\"\n→ AI が recall() で即検索、数ヶ月後でも発見\n```\n\n\u003e `.mcp.json` は `.gitignore` 済み — 絶対に commit しない (API キーが入るため)。\n\u003e プロジェクトごとはプロジェクトルート、全体設定は `~/.claude/.mcp.json` に配置。\n\n### Claude Desktop / Claude Chat (Web)\n\n**Claude Desktop**: `.mcp.json` の形式は Claude Code と同一。プロジェクトルートまたは `~/.claude/.mcp.json` に置く。\n\n**Claude Chat (claude.ai)**: Settings \u003e Integrations でリモート MCP サーバを追加:\n1. \"Add Integration\" → \"Custom MCP Server\"\n2. MCP エンドポイント URL: `https://your-domain.com/mcp/w/{workspace_id}`\n3. `Authorization: Bearer kagura_{your_api_key}` ヘッダを追加\n\n\u003e Claude Chat は `localhost` 不可、公開 URL が必須。production 配備または tunnel (ngrok、Cloudflare Tunnel 等) を使う。\n\n### ChatGPT Desktop\n\nChatGPT デスクトップ版は MCP サーバ対応。Settings \u003e MCP Servers から追加:\n1. サーバ URL: `https://your-domain.com/mcp/w/{workspace_id}`\n2. 認証: Bearer トークン `kagura_{your_api_key}`\n\n\u003e Claude Chat と同様に公開 URL が必要。ローカル開発では tunnel または REST API 直接使用を推奨。\n\n### Gemini CLI\n\n`.gemini/settings.json` (プロジェクトルートまたは `~/.gemini/settings.json`) に追加:\n\n```json\n{\n  \"mcpServers\": {\n    \"kagura-memory\": {\n      \"url\": \"http://localhost:8080/mcp/w/{workspace_id}\",\n      \"headers\": {\n        \"Authorization\": \"Bearer kagura_{your_api_key}\"\n      }\n    }\n  }\n}\n```\n\n### その他の MCP クライアント / REST API\n\nMCP 互換クライアントなら Streamable HTTP 経由で接続可。MCP 非対応クライアントは REST API を直接利用:\n\n```bash\n# メモリ検索\ncurl -X POST -H \"Authorization: Bearer kagura_{your_key}\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"query\": \"your search\", \"context_id\": \"...\"}' \\\n  http://localhost:8080/api/v1/memories/search\n```\n\n## MCP ツール\n\n9 カテゴリ・全 37 ツール。Workspace ロール: **Owner** \u003e Admin \u003e Member \u003e **Viewer** (read-only)。Context ロール: **Owner** \u003e Editor \u003e Viewer。Private context は作成者のみ閲覧可。Member を特定 context に allowlist で制限可能。\n\n### Memory (6)\n\n| ツール | 説明 | 必要ロール |\n|--------|------|------------|\n| `remember` | 新規メモリ保存 (summary + content + type) | Member+ |\n| `recall` | Hybrid Search でメモリ検索 | Viewer+ |\n| `reference` | メモリの 3 層詳細取得 | Viewer+ |\n| `update_memory` | メモリ更新 / 外部 ID で upsert | Member+ |\n| `forget` | ソフト削除 (30 日保持) | Member+ |\n| `explore` | Neural Memory graph で関連メモリ発見 | Viewer+ |\n\n### Neural Edges (4)\n\n| ツール | 説明 | 必要ロール |\n|--------|------|------------|\n| `list_edges` | メモリに接続された edge 一覧 | Viewer+ |\n| `create_edge` | 2 メモリ間に edge 作成 | Member+ |\n| `update_edge` | edge の weight / type 更新 | Member+ |\n| `delete_edge` | 2 メモリ間の edge 削除 | Member+ |\n\n### Contexts (7)\n\n| ツール | 説明 | 必要ロール |\n|--------|------|------------|\n| `get_context_info` | context メタデータとガイドライン取得 | Viewer+ |\n| `list_contexts` | workspace 内の context 一覧 | Viewer+ |\n| `create_context` | context 新規作成 | Owner/Admin |\n| `update_context` | context 設定更新 (summary、usage guide、resource_id、is_public) | Editor+ |\n| `delete_context` | context とその全メモリを削除 | Owner/Admin |\n| `merge_contexts` | source context から target context へメモリを統合 | Owner/Admin |\n| `update_search_config` | context 単位で hybrid search 重みと reranker 設定を調整 | Editor+ |\n\n### Tags (1)\n\n| ツール | 説明 | 必要ロール |\n|--------|------|------------|\n| `list_tags` | context 内の tag 語彙一覧 (remember/recall 前に呼んで揃える用途) | Viewer+ |\n\n### Files / R2 添付ファイル (5)\n\n| ツール | 説明 | 必要ロール |\n|--------|------|------------|\n| `init_file_upload` | quota 予約 + presigned PUT URL 発行 (R2、≤100 MiB) | Member+ |\n| `complete_file_upload` | R2 PUT 後にアップロード確定、sha256 検証、status=uploaded に遷移 | Member+ |\n| `list_files` | workspace 内のアップロード済み (非削除) ファイル一覧 (新しい順) | Viewer+ |\n| `get_file_download_url` | ファイルへの presigned GET URL 発行 | Viewer+ |\n| `delete_file` | ファイルオブジェクトのソフト削除 | Member+ |\n\n### Analyses — Broadlistening (5)\n\nメモリを UMAP + KMeans + LLM ラベリング (kouchou-ai 方式) で大規模クラスタリング。質的分析用途。\n\n| ツール | 説明 | 必要ロール |\n|--------|------|------------|\n| `analyze_context` | 分析 run 開始 (`dry_run=true` でコスト試算のみ可) | Owner + Pro プラン + BYOK + quota |\n| `list_analyses` | context の過去分析 run 一覧 | Owner |\n| `get_analysis` | 完了済み分析 (クラスタ、ラベル、統計) 取得 | Owner |\n| `get_active_analysis` | 実行中分析の取得 (あれば) | Owner |\n| `get_cluster` | 単一クラスタの所属メモリを drilldown | Owner |\n\n### Resources — 外部データ取り込み (5)\n\n| ツール | 説明 | 必要ロール |\n|--------|------|------------|\n| `setup_resource` | public context 作成 + resource token 発行 | Owner/Admin + Pro プラン |\n| `list_resource_tokens` | workspace の有効 resource token 一覧 | Owner/Admin |\n| `ingest_events` | resource に batch upsert/delete events (最大 100 events、session-auth MCP 経路) | Member+ |\n| `get_resource_impact` | resource 統計 (token 数、memory 数、schema version) | Viewer+ |\n| `get_resource_schema` | resource のフィールド定義取得 | Viewer+ |\n\n### Sleep Maintenance (3)\n\nバックグラウンドでメモリ統合 (decay、edge pruning、テーマ要約) を実行。\n\n| ツール | 説明 | 必要ロール |\n|--------|------|------------|\n| `get_sleep_history` | 過去 sleep run 一覧 | Viewer+ |\n| `get_sleep_report` | sleep run の詳細レポート (全 action 込み) | Viewer+ |\n| `rollback_sleep_run` | 完了済み sleep run の全 action をロールバック | Member+ (report 作成者のみ) |\n\n### Usage (1)\n\n| ツール | 説明 | 必要ロール |\n|--------|------|------------|\n| `get_usage` | workspace の現在使用量 (memory / context / member / MCP 呼出/日) | Viewer+ |\n\n## REST API\n\nMCP ツールに加えてフル REST API を提供:\n\n- **Memory**: remember、recall、reference、forget、explore (`/api/v1/memory/*`)\n- **Contexts**: CRUD、検索設定 (`/api/v1/contexts/*`)\n- **Attachments**: メモリ添付ファイル (`/api/v1/attachments/*`、5MB 上限)\n- **Workspaces**: 管理、メンバー、招待 (`/api/v1/workspaces/*`)\n- **Admin**: ユーザ、プラン管理、neural config (`/api/v1/admin/*`)\n\n完全な API ドキュメント: `http://localhost:8080/redoc`\n\n## 認証\n\n2 つの OAuth2 プロバイダをサポート:\n\n- **Google OAuth2** — 必須。`GOOGLE_CLIENT_ID` と `GOOGLE_CLIENT_SECRET` を設定\n- **GitHub OAuth2** — 任意。`GITHUB_CLIENT_ID` と `GITHUB_CLIENT_SECRET` を設定\n\nプロバイダ間で同じメールアドレスのユーザは単一アカウントを共有。\n\n## プランティア カスタマイズ\n\nプランは workspace ごとのリソース上限を制御。既定:\n\n| プラン | Contexts | Memories | MCP 呼出/日 |\n|--------|----------|----------|------------|\n| S (Free) | 1 | 1,000 | 1,000 |\n| M (Basic) | 3 | 10,000 | 10,000 |\n| L (Pro) | 20 | 100,000 | 50,000 |\n\n環境変数でオーバーライド:\n\n```bash\nPLAN_FREE_MAX_CONTEXTS=5\nPLAN_FREE_MEMORY_LIMIT=5000\nPLAN_BASIC_MAX_CONTEXTS=10\nPLAN_PRO_MAX_CONTEXTS=50\n```\n\nセルフホストの個人利用では自分の workspace に L (Pro) を割当て。プラン変更は既定で admin のみ。SaaS で self-service billing を使う場合は Stripe を有効化:\n\n```bash\nBILLING_ENABLED=true\nSTRIPE_SECRET_KEY=sk_...\nSTRIPE_WEBHOOK_SECRET=whsec_...\nSTRIPE_PRICE_BASIC=price_xxx\nSTRIPE_PRICE_PRO=price_yyy\n```\n\n## Claude Code プラグイン\n\n`kagura-memory` プラグインは Claude Code にセッション管理とメモリワークフロースキルを追加します。一度インストールすれば全プロジェクトで使えます。\n\n**インストール:**\n\n```bash\n# マーケットプレイスから追加\n/plugin marketplace add kagura-ai/memory-cloud\n/plugin install kagura-memory@kagura-memory-cloud\n```\n\n**利用可能なスキル:**\n\n| スキル | 説明 |\n|--------|------|\n| `/kagura-memory:session-start` | 前回のセッションコンテキストを復元 |\n| `/kagura-memory:session-summary` | セッション終了前に知識を保存 |\n| `/kagura-memory:recall` | 過去の知識を検索 |\n| `/kagura-memory:remember` | 新しい知識を保存 |\n| `/kagura-memory:guide` | 使い方ガイド・接続確認・セットアップ |\n| `/kagura-memory:smoke-test` | 全 MCP ツールの動作確認 |\n\n**推奨ワークフロー:**\n\n```\n/kagura-memory:session-start       # ← 開始: 前回コンテキストを復元\n  ... 通常の作業 ...\n/kagura-memory:recall              # 過去の設計判断 / パターン / 修正を検索\n/kagura-memory:remember            # 重要な学びを都度保存\n  ... 作業完了 ...\n/kagura-memory:session-summary     # ← 終了: 次回のためにセッション知識を保存\n```\n\nスキルは MCP ツール (`recall`、`remember` 等) をワークフローロジックで包んだもの。context 選択、git 状態分析、構造化プロンプトが組込まれています。セッション管理やガイド付きワークフローはスキル、細かい操作は MCP ツール直接、という使い分けを推奨。\n\n\u003e **前提:** MCP 接続の設定が必要 (`.mcp.json` に API キー)。プロジェクトで `/kagura-memory:guide` を実行してセットアップ。\n\n## ドキュメント\n\n**API リファレンス** — 2 つの入口:\n\n- **コンセプト (markdown)**: [API Reference](docs/api-reference.md) — 認証、ベース URL、MCP エンドポイント、リクエスト/レスポンス例\n- **エンドポイント (ライブ)**: `http://localhost:8080/redoc` — FastAPI から自動生成、稼働バックエンドと常に同期\n\n**コンセプトとガイド:**\n\n- [Core Concepts](docs/concepts.md) — Workspace、Context、Memory、Neural Memory、MCP ツール\n- [Architecture](docs/architecture.md) — システム設計とデータフロー\n- [Getting Started](docs/getting-started.md) — 詳細セットアップガイド\n- [Chunking Guide](docs/chunking-guide.md) — メモリ保存のベストプラクティス\n- [Resource Tokens Guide](docs/resource-tokens-guide.md) — resource token 経由の外部データ取込\n- [Neural Memory Evaluation](docs/neural-memory-evaluation.md) — ベンチマーク結果、設計判断\n- [Search Quality Benchmark](docs/search-quality-benchmark.md) — 精度テスト、reranking、ベストプラクティス\n- [Deployment](docs/deployment.md) — Caddy リバースプロキシを用いた production 配備\n- [Contributing](CONTRIBUTING.md) — 開発セットアップ、コードスタイル、PR ワークフロー\n- [Security](SECURITY.md) — 脆弱性報告、セキュリティ設計\n- [Python SDK](https://github.com/kagura-ai/kagura-memory-python-sdk) — `KaguraClient` と `KaguraAgent`\n- **プロジェクトサイト**: [www.kagura-ai.com/ja](https://www.kagura-ai.com/ja/) — 概要、ユースケース、スタート手順\n\n## コントリビューション\n\n開発セットアップ、コードスタイル、PR ワークフローは [CONTRIBUTING.md](CONTRIBUTING.md) を参照。\n\n## ライセンス\n\n[Apache License 2.0](LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkagura-ai%2Fmemory-cloud","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkagura-ai%2Fmemory-cloud","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkagura-ai%2Fmemory-cloud/lists"}