elefante について
Elefanteは、MCPエージェント向けのGitネイティブなメモリーサーバーで、ユーザーが管理するリポジトリに編集可能なMarkdownファイルとして記憶を保存します。複数のエージェントで共有でき、Gitリモートに基づいてプロジェクトごとに自動分類されます。
主な機能
- 01Markdownファイルでメモリーを保存
- 02Git履歴で変更と削除を追跡
- 03複数のMCPエージェントで共有
- 04検出したプロジェクトごとに分類
- 05ツールによるメモリーの検索と管理
- 06起動時に重要なメモリーを注入
活用シーン
- 01異なるMCPエージェント間で設定を再利用
- 02メモリー変更の確認や取り消し
- 03リポジトリごとにプロジェクト情報を分離
- 04エージェントのメモリーボルトのバックアップと同期
MCP 対応
Elefanteは、メモリーの書き込み、読み取り、検索、一覧表示、更新、削除、同期を行う7つのツールを提供します。起動時にはMCP instructionsを通じて重要なメモリーを渡し、任意のMCPエージェントが同じボルトに接続できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Elefante
MCP エージェント向けのオープンな Git ネイティブのメモリプロトコルです。ポータブルで、検査可能で、バージョン管理され、人が編集できます。
Your agent's memory is a Git repo you own.
Every memory is a Markdown file you can read.
Every change is a commit you can audit.
Any MCP agent can connect to it.
その理由
AI エージェントには、それぞれ独自のメモリシステムがあります。Claude のメモリは Claude でしか使えません。ChatGPT のメモリは ChatGPT でしか使えません。どれも中身が見えず、ベンダーにロックインされ、ポータブルではありません。
Elefante は異なるアプローチを取ります。検索の品質を最適化するのではなく、メモリが隠れた実装の詳細ではなく第一級の資産である場合に重要となる、所有権、監査可能性、ポータビリティを最適化します。
| 質問 | 回答 |
|---|---|
| エージェントのメモリを所有するのは誰ですか? | あなたです。Git リポジトリです。 |
| エージェントは私について何を知っていますか? | cat memories/user/*.md |
| 先週から何が変わりましたか? | git log --since="1 week ago" |
| Claude、Codex、Cursor で使うにはどうすればよいですか? | それらを同じ MCP サーバーに接続します。 |
| バックアップするにはどうすればよいですか? | クローンはすべて完全なバックアップです。 |
| 不適切なメモリを取り消すにはどうすればよいですか? | git revert |
クイックスタート
# Install
npm install -g elefante-mcp
# Initialize vault (uses a private GitHub repo as storage)
elefante init [email protected]:yourname/my-memory.git
# Add your first memory
elefante add \
--name "TypeScript strict mode" \
--type user \
--body "Always enable strict: true in tsconfig.json"
# Search
elefante search "typescript"
# Check status
elefante status
エージェントに接続する
ターミナルから(Claude Code を起動する前):
claude mcp add --scope user elefante -- npx -y elefante-mcp mcp
Claude Code の内部から(セッション中):
/mcp add --scope user elefante -- npx -y elefante-mcp mcp
または手動で — MCP 設定(~/.claude.json、.cursor/mcp.json など)に追加します:
{
"mcpServers": {
"elefante": {
"command": "npx",
"args": ["-y", "elefante-mcp", "mcp"]
}
}
}
Cursor / VS Code / Codex — 同じ設定です。MCP に対応しているエージェントなら、どれでも同じボルトに対して読み書きできます。
接続すると、エージェントは 7 つのツールを利用できます:memory_write、memory_read、memory_search、memory_list、memory_update、memory_delete、memory_sync。
自動検出
Elefante は起動時に、MCP の instructions を通じて、上位のメモリをエージェントのシステムプロンプトに直接挿入します。エージェントは、検索しなくても、あなたの好み、フィードバック、プロジェクトのコンテキストを把握できます。
CLAUDE.md の小細工は不要です。「Elefante のメモリを検索して」というプロンプトも不要です。そのまま機能します。
プロジェクトを考慮したメモリ
Elefante は現在のプロジェクトを自動検出し、それに応じてメモリの対象範囲を設定します。設定は不要です。
仕組み
MCP サーバーの起動時に、作業ディレクトリから Git リモートを読み取ります:
~/Projects/acme-api/ → git remote = github.com:you/acme-api.git
→ profile = "you/acme-api"
→ memories scoped to this project
~/Projects/my-cli/ → git remote = github.com:you/my-cli.git
→ profile = "you/my-cli"
→ different project, different memories
対象範囲
| あなたの発言 | 動作 |
|---|---|
| 「このプロジェクトは Postgres 16 を使うことを覚えておいて」 | profile: you/acme-api を付けて保存されます(プロジェクト対象) |
| 「npm より Bun のほうが好みだと覚えておいて」 | エージェントは profile: global → null を付けて保存します(どこでも適用) |
| 「ステージング URL は staging.acme.io だと覚えておいて」 | profile: you/acme-api を付けて保存されます(プロジェクト対象) |
エージェントはコンテキストに基づいて判断します。ユーザーの好みや行動に関するフィードバックは、通常グローバルに設定されます。プロジェクトの詳細や参照情報は、通常プロジェクトごとに設定されます。
検索時に表示される内容
Working in acme-api:
✓ "Uses Postgres 16" (profile: you/acme-api)
✓ "Prefers Bun over npm" (profile: null — global)
✗ "Uses SQLite" (profile: you/my-cli — different project)
Working in my-cli:
✓ "Uses SQLite" (profile: you/my-cli)
✓ "Prefers Bun over npm" (profile: null — global)
✗ "Uses Postgres 16" (profile: you/acme-api — different project)
グローバルメモリは常に表示されます。プロジェクトメモリは、そのプロジェクト内でのみ表示されます。
例外指定
| Profile の値 | 意味 |
|---|---|
| (省略) | 検出されたプロジェクトに自動的に対象範囲を設定 |
"global" | 明示的にグローバルに設定 — プロジェクトの対象範囲なし |
"all" | すべてのプロジェクトを対象に検索/一覧表示 |
"owner/other-repo" | 別のプロジェクトを明示的に指定 |
メモリの形式
各メモリは YAML フロントマター付きの Markdown ファイルです。どのエディターでも開けます。
---
id: mem_a1b2c3d4e5f6
type: feedback
name: No database mocking in tests
description: Integration tests must use real database connections
profile: you/acme-api
importance: 3
tags: [testing, database]
created_at: "2026-04-14T10:30:00Z"
updated_at: "2026-04-14T14:22:00Z"
---
Do not mock the database in integration tests — use a real connection
to a test database.
**Why:** Mocked tests passed but the production migration failed because
the mock didn't reflect actual schema constraints.
**How to apply:** Use the test database helper (`createTestDb()`)
instead of jest mocks.
Git ログの形式
$ git log --oneline
f4a2c1e remember: No database mocking in tests
b3d8e7a remember: TypeScript strict mode preference
a1c9f2b update: REST to GraphQL migration deadline
9e7d4c3 forget: Outdated staging URL
2f8a6b1 Initialize elefante vault
すべての書き込みは remember:、更新は update:、削除は forget: として記録されます。メモリの履歴は整理され、監査可能です。
ボルトの構成
~/.elefante/vault/
├── .elefante/
│ └── config.yaml # Vault settings
├── memories/
│ ├── user/ # Who the user is
│ │ └── mem_*.md
│ ├── feedback/ # How the agent should behave
│ │ └── mem_*.md
│ ├── project/ # Active work context
│ │ └── mem_*.md
│ └── reference/ # External resource pointers
│ └── mem_*.md
├── profiles/
│ └── *.yaml # Named scopes for partitioning
└── index/
├── manifest.json # All memory metadata (generated)
└── search.json # Search index (generated)
メモリの種類
4 種類です。意図的に種類を絞っています。分類体系を小さくすることで、適切な分類を促します。
| 種類 | 保存する内容 | 通常の対象範囲 |
|---|---|---|
user | あなたに関する事実 — 役割、好み、専門知識 | グローバル |
feedback | エージェントの動作に関する指針 — 修正、確認 | グローバル |
project | 進行中の作業に関するコンテキスト — 目標、期限、決定事項 | プロジェクト |
reference | 外部の参照先 — URL、ダッシュボード、ツール | プロジェクト |
認証
Elefante は認証の仕組みを独自に作り直しません。既にお使いの Git 認証情報をそのまま利用します。
認証情報の解決順序:
- ローカルの Git 認証情報(SSH キー、macOS Keychain、認証情報ヘルパー)
gh auth token(GitHub CLI がインストールされている場合)ELEFANTE_GITHUB_TOKEN環境変数~/.elefante/config.jsonの token フィールド
git または gh が認証済みであれば、設定不要で Elefante を利用できます。
CLI リファレンス
elefante init <repo-url> Clone vault repo to ~/.elefante/vault/
elefante status Vault status, sync state, memory count
elefante list [--type TYPE] List memories with filters
elefante search <query> Search by keyword
elefante read <id> Read a specific memory
elefante add Create a memory
elefante delete <id> Delete a memory
elefante sync Pull and push changes
elefante reindex Rebuild search index
elefante mcp Start MCP stdio server
比較
Elefante が競うのは検索品質ではありません。データの所有権です。
| Elefante | Claude/ChatGPT Memory | Mem0 / Zep | |
|---|---|---|---|
| データの所有権 | 自分で管理する Git リポジトリ | ベンダーが管理 | セルフホストまたは SaaS |
| 人間が読みやすい形式 | Markdown ファイル | いいえ | いいえ |
| バージョン履歴 | Git のログを無料で利用 | いいえ | いいえ |
| エージェントを問わない | 任意の MCP エージェント | 単一ベンダー | はい |
| インフラ不要 | Git +ローカルプロセス | 該当なし(マネージド) | サーバー+データベース |
| オフラインアクセス | ローカルクローン | いいえ | いいえ |
| プロジェクトの自動スコープ設定 | Git のリモートを検出 | 会話ごと | 手動 |
| セマンティック検索 | 未対応(予定) | はい | はい |
「Obsidian + MCP プラグインではだめなのですか?」 — Obsidian は、エージェントもアクセスできる人間向けのツールです。Elefante は、人間もアクセスできるエージェント向けのツールです。データ形式(Markdown + Git)は同じですが、設計の中心が異なります。
プロトコル
メモリモデル、Vault 構造、MCP インターフェース、同時実行モデル、インデックス作成、セキュリティ上の考慮事項を含むプロトコルの完全な仕様は、PROTOCOL.md に記載されています。
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。