/ ディレクトリ / プレイグラウンド / MARM-Systems
● コミュニティ Lyellr88 ⚡ 即起動

MARM-Systems

作者 Lyellr88 · Lyellr88/MARM-Systems

Claude、Qwen、Gemini、その他あらゆるMCPクライアントをまたいで使える、永続的かつ検索可能なメモリ — セッション、ノートブック、セマンティック検索をひとつのサーバーに集約します。

MARM-Systemsは、あらゆるAIクライアントに永続メモリレイヤーを提供するPython製MCPサーバーです。セッション管理、ノートブック、自動分類付きコンテキストログ、セマンティックベクトル検索に対応しています。STDIO、HTTP、WebSocketの3種類のトランスポートをサポートし、WALモードのSQLiteバックエンドにより同時アクセスが可能です。

なぜ使うのか

主な機能

ライブデモ

実際の動作

marm-systems.replay ▶ 準備完了
0/0

インストール

クライアントを選択

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "marm-systems": {
      "command": "uvx",
      "args": [
        "MARM-Systems"
      ],
      "_inferred": true
    }
  }
}

Claude Desktop → Settings → Developer → Edit Config を開く。保存後、アプリを再起動。

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "marm-systems": {
      "command": "uvx",
      "args": [
        "MARM-Systems"
      ],
      "_inferred": true
    }
  }
}

Cursor は Claude Desktop と同じ mcpServers スキーマを使用。プロジェクト設定はグローバルより優先。

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "marm-systems": {
      "command": "uvx",
      "args": [
        "MARM-Systems"
      ],
      "_inferred": true
    }
  }
}

Cline サイドバーの MCP Servers アイコンをクリックし、"Edit Configuration" を選択。

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "marm-systems": {
      "command": "uvx",
      "args": [
        "MARM-Systems"
      ],
      "_inferred": true
    }
  }
}

Claude Desktop と同じ形式。Windsurf を再起動して反映。

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "marm-systems",
      "command": "uvx",
      "args": [
        "MARM-Systems"
      ]
    }
  ]
}

Continue はマップではなくサーバーオブジェクトの配列を使用。

~/.config/zed/settings.json
{
  "context_servers": {
    "marm-systems": {
      "command": {
        "path": "uvx",
        "args": [
          "MARM-Systems"
        ]
      }
    }
  }
}

context_servers に追加。保存時に Zed がホットリロード。

claude mcp add marm-systems -- uvx MARM-Systems

ワンライナー。claude mcp list で確認、claude mcp remove で削除。

ユースケース

実用的な使い方: MARM-Systems

長期プロジェクトでセッションをまたいだ永続メモリを構築する

👤 AIを使って数週間にわたる作業を行うすべてのユーザー ⏱ ~15 min beginner

使うタイミング: 毎回のセッションで同じプロジェクト背景を説明し直している場合に使います。

前提条件
  • MARM-Systemsがインストール・起動済みであること — docker pull lyellr88/marm-mcp-server && docker run -d -p 8001:8001 lyellr88/marm-mcp-server
フロー
  1. プロジェクトにタグ付けしたセッションを開始する
    marm_start with project tag 'dataplatform-migration'. Log that we're migrating from Redshift to Snowflake, deadline end of Q2.✓ コピーしました
    → セッションが開始され、初期エントリが保存される
  2. 作業中にコンテキストを記録する
    marm_contextual_log: 'Decided to use Fivetran for CDC replication, evaluated Airbyte but config overhead too high.'✓ コピーしました
    → 自動分類されて保存される
  3. 次のセッションで呼び出す
    marm_smart_recall 'what did we decide about CDC tooling?'✓ コピーしました
    → 関連する過去の意思決定が表示される

結果: セッションN+1の開始時に、セッション1〜Nのコンテキストすべてがクエリでアクセス可能になり、再入力が不要になります。

注意点
  • すべてのチャットをメモリに保存すると検索精度が低下する — marm_contextual_logは意思決定やマイルストーンの記録に使い、すべてのやり取りを保存しないこと
  • 専門用語でベクトル検索がヒットしない — キーワードフォールバック用にプロジェクト名でエントリに明示的にタグ付けする
組み合わせ: drift

複数のAIアシスタントを使うチーム間でメモリを共有する

👤 メンバーごとにClaude / Qwen / Geminiを使い分けているチーム ⏱ ~45 min advanced

使うタイミング: 特定のメンバーのAIに閉じ込められている知識を共有すべき場合に使います。

フロー
  1. MARMを共有HTTPサーバーとして起動する
    Deploy MARM-Systems on a team server; each teammate points their MCP client at http://marm.team.internal:8001/mcp.✓ コピーしました
    → すべてのクライアントが接続される
  2. 共有コンテキストを記録する
    marm_contextual_log: 'Database backup runbook is at /runbooks/db-backup.md; last updated 2026-04-10.'✓ コピーしました
    → 全員がその情報を呼び出せるようになる
  3. 任意のクライアントから呼び出す
    From a teammate's Qwen session: marm_smart_recall 'how do I restore the DB'?✓ コピーしました
    → 同じ回答が表示される

結果: AIをまたいだ共有の組織ナレッジが構築されます。

注意点
  • 共有メモリには本番レベルのOAuth認証が必要 — 開発用のハードコードされた認証情報に頼らず、本番利用前にIdPと連携すること
  • 機密データが共有メモリに漏洩する可能性がある — プロジェクトタグを使い、タグでクエリのスコープを限定する

ノートブックをAIが検索可能なスクラッチパッドとして使う

👤 学習者、研究者 ⏱ ~5 min beginner

使うタイミング: トピックごとに整理されたメモ領域をAIが後から検索できるようにしたい場合に使います。

フロー
  1. ノートブックを作成する
    marm_notebook_add name='rust-ownership' with entry: 'Move vs borrow: move transfers ownership, borrow lets you peek.'✓ コピーしました
    → ノートブックが作成される
  2. 学んだことを随時追加する
    marm_notebook_add 'rust-ownership': 'Mutable borrow is exclusive; only one at a time.'✓ コピーしました
    → エントリが追記される
  3. 後から呼び出す
    marm_notebook_show 'rust-ownership'✓ コピーしました
    → ノートブック全体が表示される

結果: 検索可能な学習ジャーナルが構築されます。

組み合わせ

他のMCPと組み合わせて10倍の力を

marm-systems + drift

driftがコード規約を記憶し、MARMがプロジェクトの意思決定を記憶する

Recall drift conventions AND MARM decisions for project 'dataplatform-migration' and summarize where they interact.✓ コピーしました
marm-systems + claude-code-organizer

Claude Code内の短期メモリをMARMに移行し、長期的に呼び出せるようにする

Organizer listed my 12 biggest memories — move the 5 project-specific ones into MARM notebooks.✓ コピーしました

ツール

このMCPが提供する機能

ツール入力呼び出すタイミングコスト
marm_start project?, tags? 作業セッションの開始時 free (local)
marm_refresh session_id? セッション中にコンテキストを再読み込みする時 free
marm_smart_recall query: str, top_k?: int 過去のエントリをセマンティック検索する時 free (local embeddings)
marm_contextual_log text: str, tags?: str[] 意思決定・マイルストーン・事実を永続化する時 free
marm_log_session session_id 過去のセッションを振り返る時 free
marm_notebook_add name: str, entry: str トピックごとのメモを記録する時 free
marm_notebook_use name: str セッション中にトピックを固定する時 free
marm_notebook_show name: str ノートブックを閲覧する時 free
marm_summary scope: session|notebook|tag, id 長い履歴を要約する時 free (local)
marm_context_bridge from_session, to_session プロジェクト横断の推論を行う時 free

コストと制限

運用コスト

APIクォータ
なし — ローカル専用
呼び出しあたりのトークン
呼び出しごとのレスポンスは通常500〜2000トークン
金額
無料、オープンソース
ヒント
古いセッションは定期的にローテーションまたはアーカイブしてください。SQLiteはスケールに対応しますが、ノイズが増えると検索精度が低下します。

セキュリティ

権限、シークレット、影響範囲

認証情報の保管: ローカルSQLite。共有HTTPモードでは環境変数ベースのOAuthシークレットを使用してください
データ送信先: デフォルトではデータ送信なし(ローカルストレージ)。共有モードで運用する場合はネットワーク内のみ
絶対に付与しない: Exposing port 8001 to the public internet without an auth layer

トラブルシューティング

よくあるエラーと対処法

Cannot connect to localhost:8001

コンテナが起動していません。docker psで確認し、docker start marm-mcp-serverで起動してください。

確認: curl http://localhost:8001/docs
Embeddings model download fails

初回起動時にモデルをダウンロードするため、外部ネットワーク接続が必要です。ダウンロード完了後はオフラインで動作します。

確認: Check docker logs for HuggingFace download
Recall returns unrelated entries

エントリ数が少なすぎてエンベディングの精度が不十分です。エントリを追加するか、タグでフィルタリングしてください。

確認: marm_smart_recall with tag filter

代替案

MARM-Systems 他との比較

代替案代わりに使う場面トレードオフ
driftコード固有のメモリ(規約、意思決定)が必要な場合コードに特化しており、汎用性は低い
Letta (MemGPT)単なるサーバーではなく、研究グレードのメモリエージェントが必要な場合実行負荷が高く、アーキテクチャに制約がある
CC native memoriesClaude Codeのみで使用し、クロスクライアントの必要がない場合セマンティック検索なし。コンテキストが肥大化する

その他

リソース

📖 GitHub の公式 README を読む

🐙 オープンな issue を見る

🔍 400以上のMCPサーバーとSkillsを見る