Memory MCP Server について
Memory MCP Server は、ナレッジグラフを管理する MCP サーバーの Swift 実装です。LLM が永続的なグラフ内でエンティティとリレーションを作成、参照、更新、削除できるため、会話をまたいで文脈を保持するアシスタントに向いています。macOS 14.0 以降が必要です。
主な機能
- 01エンティティとリレーションの永続保存
- 02カスタムタイプとオブザベーションの管理
- 03名前、タイプ、オブザベーションによる検索
- 04JSON 形式でのデータ保存
- 05環境変数による保存先の指定
活用シーン
- 01AI アシスタントにセッションをまたぐ長期記憶を提供
- 02人物、場所、概念の関係を記録
- 03イベントや日次ログを構造化して保管
MCP 対応
このプロジェクトは MCP サーバーとして、create_entities、create_relations、search_nodes、read_graph などのツールを MCP クライアントに公開し、LLM がナレッジグラフを読み書きできるようにします。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Memory MCP サーバー
ナレッジグラフの管理機能を提供する Model Context Protocol サーバーです。このサーバーにより、LLM は永続的なナレッジグラフ内のエンティティやリレーションを作成、読み取り、更新、削除でき、AI アシスタントが会話をまたいで記憶を維持できるようになります。これは、公式の TypeScript Memory MCP Server を Swift で実装したものです。
注: この Swift 版には macOS 14.0 以降が必要です(Windows、Linux、macOS 11.0 以降を含む、より幅広いプラットフォームに対応したものをお探しの場合は、Go 言語による実装 memory-mcp-server-go をご確認ください)。
✨ 特長
- ナレッジグラフストレージ:エンティティとその関係を永続的なグラフとして維持します
- エンティティ管理:カスタムタイプを使用してエンティティを作成、取得、更新、削除します
- リレーション追跡:エンティティ間の関係を能動態で定義、管理します
- 観測システム:エンティティに関する観測情報を継続的に追加、削除します
- 強力な検索:名前、タイプ、観測内容に基づいて関連するノードを検索します
- 永続ストレージ:シンプルな JSON 形式で、セッション間もデータを保持します
利用可能なツール
-
create_entities- ナレッジグラフに複数の新しいエンティティを作成しますentities(配列、必須):作成するエンティティオブジェクトの配列name(文字列):エンティティの名前entityType(文字列):エンティティのタイプobservations(文字列の配列):エンティティに関連付ける観測情報
-
create_relations- エンティティ間に複数の新しいリレーションを作成しますrelations(配列、必須):リレーションオブジェクトの配列from(文字列):リレーションの始点となるエンティティの名前to(文字列):リレーションの終点となるエンティティの名前relationType(文字列):リレーションのタイプ(能動態)
-
add_observations- 既存のエンティティに観測情報を追加しますobservations(配列、必須):観測情報の追加内容を表す配列entityName(文字列):観測情報を追加するエンティティの名前contents(文字列の配列):追加する観測情報
-
delete_entities- 複数のエンティティとそれに関連するリレーションを削除しますentityNames(配列、必須):削除するエンティティ名の配列
-
delete_observations- エンティティから特定の観測情報を削除しますdeletions(配列、必須):観測情報の削除内容を表す配列entityName(文字列):観測情報を含むエンティティの名前observations(文字列の配列):削除する観測情報
-
delete_relations- ナレッジグラフから複数のリレーションを削除しますrelations(配列、必須):削除するリレーションオブジェクトの配列from(文字列):始点のエンティティ名to(文字列):終点のエンティティ名relationType(文字列):リレーションのタイプ
-
read_graph- ナレッジグラフ全体を読み取ります- パラメーターは不要です
-
search_nodes- クエリに基づいてナレッジグラフ内のノードを検索しますquery(文字列、必須):エンティティ名、タイプ、観測情報と照合する検索クエリ
-
open_nodes- 名前を指定してナレッジグラフ内の特定のノードを開きますnames(配列、必須):取得するエンティティ名の配列
インストール
方法 1:ワンラインインストール(curl)
最も簡単なインストール方法は、ワンラインインストーラーを使用することです。最新バージョンを自動的にダウンロードし、ホームディレクトリ内の ~/.local/bin にインストールします。
curl -fsSL https://raw.githubusercontent.com/okooo5km/memory-mcp-server/main/install.sh | bash
インストーラーは次の処理を行います。
~/.local/binが存在しない場合は作成します- このディレクトリを PATH に追加します(.zshrc または .bashrc 内)
- 最新バージョンをダウンロードしてインストールします
- バイナリを実行可能にします
オプション 2:ソースからビルドする
-
リポジトリをクローンします。
git clone https://github.com/okooo5km/memory-mcp-server.git cd memory-mcp-server -
プロジェクトをビルドします。
swift build -c release -
バイナリをインストールします。
# Install to user directory (recommended, no sudo required) mkdir -p ~/.local/bin cp $(swift build -c release --show-bin-path)/memory-mcp-server ~/.local/bin/シェルの設定ファイルに追加して、
~/.local/binが PATH に含まれていることを確認してください。echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zshrc # or ~/.bashrc source ~/.zshrc # or source ~/.bashrc
コマンドライン引数
サーバーでは、次のコマンドライン引数を使用できます。
-h, --help:サーバーのヘルプ情報、使い方、利用可能なオプションを表示します-v, --version:memory-mcp-server のバージョン番号を表示します
使用例:
# Display help information
memory-mcp-server --help
# Display version information
memory-mcp-server --version
設定
環境変数
サーバーでは、次の環境変数を使用できます。
MEMORY_FILE_PATH:ナレッジグラフを保存するカスタムパス(任意)- 指定しない場合、現在の作業ディレクトリにある
memory.jsonがデフォルトで使用されます - 絶対パス、または現在の作業ディレクトリからの相対パスを指定できます
- 指定しない場合、現在の作業ディレクトリにある
サーバーの起動時にログを確認すると、設定されたファイルパスを確認できます。
export MEMORY_FILE_PATH="/path/to/your/memory.json"
Claude.app の設定
Claude の設定に追加します。
"mcpServers": {
"memory": {
"command": "memory-mcp-server",
"env": {
"MEMORY_FILE_PATH": "/path/to/your/memory.json"
}
}
}
Cursor の設定
次の設定を Cursor エディターの「Settings - mcp.json」に追加します。
{
"mcpServers": {
"memory": {
"command": "memory-mcp-server",
"env": {
"MEMORY_FILE_PATH": "/path/to/your/memory.json"
}
}
}
}

Chatwise の設定
Chatwise の「Settings - Tools」に Memory MCP サーバーを追加します。

システムプロンプトの例
次のシステムプロンプトを使用すると、Claude が memory-mcp-server を効果的に活用できるようになります。
You have access to a Knowledge Graph memory system, which can store and retrieve information across conversations. Use it to remember important details about the user, their preferences, and any facts they've shared.
When you discover important information, save it using memory tools:
- `create_entities` to add new people, places, or concepts
- `create_relations` to record how entities relate to each other
- `add_observations` to record facts about existing entities
Before answering questions that might require past context, check your memory:
- `search_nodes` to find relevant information
- `open_nodes` to retrieve specific entities
- `read_graph` to get a complete view of your knowledge
Always prioritize information from your memory when responding to the user, especially when they reference past conversations.
開発要件
- Swift 6.0 以降
- macOS 14.0 以降
- MCP Swift SDK 0.2.0 以降
ナレッジグラフの構造
Memory MCP Server では、ナレッジを保存するためにシンプルなグラフ構造を使用します。
- エンティティ:名前、種類、観察事項のリストを持つグラフ内のノード
- リレーション:能動態の関係の種類を持つ、エンティティ間のエッジ
- 観察事項:エンティティに関連付けられた事実や詳細
ナレッジグラフは、改行区切りの JSON ファイルとしてディスクに保存されます。各行はエンティティオブジェクトまたはリレーションオブジェクトのいずれかです。
使用例
エンティティの作成
{
"entities": [
{
"name": "John Smith",
"entityType": "Person",
"observations": ["Software engineer", "Lives in San Francisco", "Enjoys hiking"]
},
{
"name": "Acme Corp",
"entityType": "Company",
"observations": ["Founded in 2010", "Tech startup"]
}
]
}
リレーションの作成
{
"relations": [
{
"from": "John Smith",
"to": "Acme Corp",
"relationType": "works at"
}
]
}
観察事項の追加
{
"observations": [
{
"entityName": "John Smith",
"contents": ["Recently promoted to Senior Engineer", "Working on AI projects"]
}
]
}
ノードの検索
{
"query": "San Francisco"
}
特定のノードを開く
{
"names": ["John Smith", "Acme Corp"]
}
ユースケース
- AI アシスタントの長期記憶:AI アシスタントがユーザーの好み、過去のやり取り、重要な事実を記憶できるようにします
- ナレッジ管理:人物、場所、出来事、概念に関する情報を整理します
- 関係の追跡:エンティティ間の関係のネットワークを維持します
- コンテキストの保持:複数のセッションにわたって重要なコンテキストを保持します
- 日記と日次ログ:出来事、活動、振り返りを時系列で構造化して記録し、過去の経験を時系列で簡単に検索したり関連付けたりできるようにします
バージョン履歴
バージョン履歴と変更履歴については、GitHub Releases をご覧ください。
☕️ プロジェクトを支援する
Memory MCP Server が役立つと感じた場合は、開発へのご支援をご検討ください。
- ⭐️ GitHub でプロジェクトにスターを付ける
- 🐛 バグを報告する、または機能を提案する
- 💝 次の方法で支援する:
ライセンス
memory-mcp-server は MIT License の下でライセンスされています。つまり、MIT License の利用規約に従うことを条件に、ソフトウェアを自由に使用、変更、配布できます。
概要
Model Context Protocol(MCP)向けのナレッジグラフメモリサーバーを Swift で実装したもので、LLM に永続的なメモリ機能を提供します。このプロジェクトは公式の TypeScript 実装を基に、MCP Swift SDK を使用して Swift で書き直したものです。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。