mcpField
I
import

import

github.com/mem0aiエージェントワークフロー68.2k93 回インストール1 日前に更新
リポジトリ

import について

エクスポートしたメモリを現在のプロジェクトに取り込む Mem0 スキルです。複数の AI コーディングツールの設定や Claude Code の MEMORY.md からの取り込みにも対応します。

主な機能

  1. 01Mem0 エクスポートファイルの解析
  2. 02メタデータ付きレコードの取り込み
  3. 03指定したコーディングツール設定の取り込み
  4. 04Claude Code MEMORY.md の取り込み

活用シーン

  1. 01エクスポートからメモリを復元
  2. 02対応するコーディングツールのルールを移行
  3. 03Claude Code のメモリを Mem0 に取り込み

MCP 対応

add_memory などの Mem0 MCP ツールを呼び出し、インポートしたレコードをプロジェクトに追加します。

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/mem0ai/mem0 --skill import

インストール後、Claude Code で/importを入力して読み込まれたか確認します。

詳細

Mem0 のインポート

mem0 のエクスポートファイルから、現在のプロジェクトにメモリをインポートします。

実行

ステップ 1:インポートするエクスポートファイルを決定する

ユーザーが /mem0:import <filename> の引数としてファイル名を指定した場合は、そのファイルを使用します。

それ以外の場合は、現在のディレクトリにある名前に mem0-export を含む .md ファイルを一覧表示します。

ls -1 *.md 2>/dev/null | grep mem0-export || echo "No export files found"

複数のファイルが見つかった場合は、どのファイルをインポートするかユーザーに尋ねます。ファイルが見つからない場合は、次を出力します。

No mem0-export files found in the current directory.
Run /mem0:export first, or provide the filename: /mem0:import <path-to-file>
ステップ 2:エクスポートファイルを解析する

プラグインのルートを特定します。現在のプラットフォームに対応する変数を使用します。

  • Claude Code:${CLAUDE_PLUGIN_ROOT}
  • Codex:${CODEX_PLUGIN_ROOT}
  • Cursor:${CURSOR_PLUGIN_ROOT}

パーサースクリプトを実行して、メモリレコードを JSON として抽出します。

python3 "<PLUGIN_ROOT>/scripts/parse_export_file.py" "<path-to-export-file>"

次の要素を持つ JSON 配列が出力されます。

  • id — 元のメモリ ID(参照用のみ。インポート時に新しい ID が割り当てられます)
  • type — メタデータのタイプ
  • confidence — メタデータの信頼度
  • branch — メタデータのブランチ
  • files — 関連ファイルのリスト
  • categories — カテゴリのリスト
  • content — メモリのテキスト

スクリプトが失敗した場合、または [] を出力した場合は、次を出力します。

Failed to parse <filename> or file contains no valid memory blocks.

その後、停止します。

ステップ 3:ID を解決する

アクティブな ID を特定します。

  • user_id は MEM0_USER_ID 環境変数、なければ $USER、それもなければ "default" から取得します。
  • project_id(app_id として使用)は、MEM0_PROJECT_ID 環境変数、またはプロジェクトリゾルバーから取得します。
ステップ 4:各メモリをインポートする

解析した JSON 配列の各レコードについて、次の内容で add_memory を呼び出します。

  • text="<record.content>"
  • user_id=<active_user_id>
  • app_id=<active_project_id>
  • metadata={
    • "type": "<record.type>"(空でない場合)
    • "confidence": "<record.confidence>"(空でない場合)
    • "branch": "<record.branch>"(空でない場合)
    • "files": <record.files>(空でない場合はリスト)
    • "source": "import"
    • }
  • infer=False

注意:

  • 元の id は渡さないでください。新しい ID はプラットフォームによって割り当てられます。
  • content が空のレコードはスキップします(パーサーで既に除外されていますが、念のため確認してください)。
  • 個々のレコードのインポートに失敗しても処理を続け、成功数を記録します。
ステップ 5:結果を出力する
Imported <N> memories into project <project_id>

ここで、<N> はインポートに成功したメモリの数です。

失敗があった場合:

Imported <N>/<total> memories into project <project_id> (<failed> failed)

競合する AI ツールからのインポート(--tools)

--tools(例:/mem0:import --tools)を指定して呼び出された場合は、競合する AI ツールの設定ファイルを検出してインポートします。

対応ツール
ツールファイル/ディレクトリ
Cursor.cursorrules
GitHub Copilot.github/copilot-instructions.md
Clinememory-bank/(.md ファイルのディレクトリ)
Continue.continue/rules.md
T1:検出
test -f .cursorrules && echo "cursor: .cursorrules"
test -f .github/copilot-instructions.md && echo "copilot: .github/copilot-instructions.md"
test -d memory-bank/ && echo "cline: memory-bank/"
test -f .continue/rules.md && echo "continue: .continue/rules.md"
T2:ユーザーに尋ねる

見つかったファイルを一覧表示し、どれをインポートするか尋ねます(番号をカンマ区切りで指定するか、"all" を指定)。 見つからない場合:

No competing tool configuration files found.
Checked: .cursorrules, .github/copilot-instructions.md, memory-bank/, .continue/rules.md
T3:インポートを実行する

選択した各ツールについて:

python3 "<PLUGIN_ROOT>/scripts/import_competing_tools.py" <tool> --path <file>

ツール:cursorrules、copilot、cline、continue。

T4:結果を報告する
Imported <N> memories into <project_id> (cursor: <N>, copilot: <N>)

注意:infer=False を指定し、metadata.source=<tool>-import のタグを付けます。50 文字未満のセクションはスキップされ、10k 文字を超えるチャンクは切り詰められます。安全に再実行できます(重複排除によって処理されます)。


Claude Code のネイティブな MEMORY.md のインポート

Claude Code のネイティブな MEMORY.md ファイル(通常は ~/.claude/projects/<proj-key>/memory/MEMORY.md)のパスを指定して呼び出された場合、または on_session_start.sh がネイティブの自動メモリーを検出し、ユーザーがインポートを選択した場合:

  1. ファイルを読み込みます。改行で区切られたメモリー項目(1 行につき 1 つの事実。場合によっては - の箇条書き記号付き)が含まれています。
  2. 空でない行に分割します。各行が 1 つのメモリーになります。
  3. 20 文字未満の行と、見出しだけの行(#)はスキップします。
  4. 各行について、次の内容で add_memory を呼び出します:
    • text="<line>"
    • user_id=<active_user_id>
    • app_id=<active_project_id>
    • metadata={"type": "task_learning", "source": "memory-md-import", "confidence": 0.8}
    • infer=False
  5. 次のように報告します:Imported <N> memories from MEMORY.md into project <project_id>
  6. ネイティブの自動メモリーを無効にするよう提案します:
    To avoid duplicate memory systems, add to ~/.claude/settings.json:
      "autoMemoryEnabled": false
    

これにより、Claude Code のネイティブなメモリーを使っていたユーザーが mem0 に切り替える際のコールドスタートギャップに対応できます。

エラー処理

  • パーサースクリプトが <PLUGIN_ROOT>/scripts/parse_export_file.py に見つからない場合は、エラーを出力して停止します。
  • add_memory の呼び出しが継続的に失敗する場合(認証エラーなど)は、問題を報告して早期に停止します。

コメント