mcpField
I
In Memoria

In Memoria

ローカル
github.com/pi22by7メモリ・ナレッジ17544 週間前に更新

In Memoria について

In Memoria は、ローカルのコードベースからパターンやアーキテクチャを学習し、セッションをまたいで保持して AI コーディングアシスタントが参照できるようにする MCP サーバーです。ローカルファーストの設計で、コード情報はユーザーのマシン上に保存されます。プロジェクトの文脈を繰り返し説明したくない開発者に適しています。

主な機能

  1. 01命名規則とアーキテクチャパターンの学習
  2. 02技術スタックと入口を示すプロジェクトブループリント
  3. 03機能要求に対応する関連ファイルのルーティング
  4. 04セマンティック、テキスト、パターンによるコード検索
  5. 05タスクと決定事項を保持するセッション間メモリ

活用シーン

  1. 01新しいセッションでプロジェクトの文脈を再説明せずに取得
  2. 02パスワードリセットの追加など曖昧な要求をファイルに対応付け
  3. 03学習済みの規約に沿った Copilot でのコードレビュー

MCP 対応

MCP サーバーとして、AI コーディングアシスタントに analyze_codebase、search_codebase、get_project_blueprint、predict_coding_approach など 13 のツールを提供します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"In-Memoria": {
"command": "npx",
"args": [
"-y",
"in-memoria"
]
}
}
}
起動コマンドnpx -y in-memoria

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npmin-memoria

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

In Memoria

npm version npm downloads License: MIT Discord

AI コーディングアシスタントに、実際に保持され続けるメモリーを。

クイックデモ

asciicast

In Memoria の動作をご覧ください。コードベースを学習し、すぐにコンテキストを提供し、機能に応じてファイルへ誘導します。


問題:セッションごとに記憶がリセットされる

よくあることです。Claude、Copilot、Cursor を起動して、コードベースの作業を手伝ってもらいます。アーキテクチャを説明し、パターンを説明し、規約を伝えます。AI は理解し、作業を手伝ってくれて、すべて順調です。

そして、ウィンドウを閉じます。

次のセッションでは?記憶が完全にリセットされています。同じアーキテクチャ上の判断をまた説明することになります。同じ命名規則も。「いや、ここではクラスではなく関数合成を使うんです」と、もう15回目になります。

AI コーディングセッションは毎回、ゼロから始まります。

これは煩わしいだけでなく、非効率でもあります。こうしたツールはやり取りのたびにコードベースを再分析するため、トークンと時間を消費します。あなたのスタイルに合わない一般的な提案をします。前回うまくいったこと、却下したこと、その理由も記憶していません。

解決策:永続的なインテリジェンス

In Memoria は、実際のコードベースから学習し、セッションをまたいで記憶する MCP サーバーです。コードに関する永続的なインテリジェンス(パターン、アーキテクチャ、規約、判断)を構築し、AI アシスタントが Model Context Protocol 経由で照会できるようにします。

セッションを再起動するたびに消去されないメモ帳を、AI ペアプログラマーに持たせるようなものです。

現在のバージョン:0.6.0 - 変更点を見る

できること
  • パターンを学習 - コードを分析し、命名規則、アーキテクチャ上の選択、構造上の好みを理解します
  • プロジェクトのコンテキストを即座に提供 - 技術スタック、エントリーポイント、アーキテクチャを <200 トークンで提供します(再分析は不要です)
  • スマートなファイル振り分け - 「パスワードリセットを追加して」のような曖昧なリクエストから、関連ファイルへ直接誘導します
  • セマンティック検索 - キーワードだけでなく、意味に基づいてコードを検索します
  • 作業メモリー - 現在のタスクとアーキテクチャ上の判断をセッション間で追跡します
  • パターン予測 - これまでの履歴に基づいて、類似の問題をどのように解決するか提案します
ワークフローの例
# First time: Learn your codebase
npx in-memoria learn ./my-project

# Start the MCP server
npx in-memoria server

# Now in Claude/Copilot:
You: "Add password reset functionality"
AI: *queries In Memoria*
    "Based on your auth patterns in src/auth/login.ts, I'll use your
     established JWT middleware pattern and follow your Result<T>
     error handling convention..."

# Next session (days later):
You: "Where did we put the password reset code?"
AI: *queries In Memoria*
    "In src/auth/password-reset.ts, following the pattern we
     established in our last session..."

説明し直す必要はありません。一般的な提案もありません。コンテキストを把握した支援が途切れることなく続きます。

クイックスタート

インストール
# Install globally
npm install -g in-memoria

# Or use directly with npx
npx in-memoria --help
AI ツールに接続

Claude Desktop - 設定ファイル(~/Library/Application Support/Claude/claude_desktop_config.json)に追加します:

{
  "mcpServers": {
    "in-memoria": {
      "command": "npx",
      "args": ["in-memoria", "server"]
    }
  }
}

Claude Code CLI:

claude mcp add in-memoria -- npx in-memoria server

GitHub Copilot - 下記のCopilot 連携セクションをご覧ください

コードベースを学習させる
# Analyze and learn from your project
npx in-memoria learn ./my-project

# Or let AI agents trigger learning automatically
# (Just start the server and let auto_learn_if_needed handle it)
npx in-memoria server

仕組み

In Memoria は Rust + TypeScript で構築されており、Model Context Protocol を使用して AI ツールを永続的なコードベースインテリジェンスに接続します。

アーキテクチャ
┌─────────────────────┐    MCP     ┌──────────────────────┐    napi-rs    ┌─────────────────────┐
│  AI Tool (Claude)   │◄──────────►│  TypeScript Server   │◄─────────────►│   Rust Core         │
└─────────────────────┘            └──────────┬───────────┘               │  • AST Parser       │
                                              │                           │  • Pattern Learner  │
                                              │                           │  • Semantic Engine  │
                                              ▼                           │  • Blueprint System │
                                   ┌──────────────────────┐               └─────────────────────┘
                                   │ SQLite (persistent)  │
                                   │ SurrealDB (in-mem)   │
                                   └──────────────────────┘
中核コンポーネント

Rust レイヤー - 高速なネイティブ処理:

  • 12 言語(TypeScript、JavaScript、Python、PHP、Rust、Go、Java、C/C++、C#、Svelte、SQL)の Tree-sitter AST 解析
  • ブループリントアナライザー(プロジェクト構造、エントリーポイント、アーキテクチャパターンを検出)
  • パターン学習機能(コーディングスタイルの統計分析)
  • セマンティックエンジン(コードの関係性と概念を理解)

TypeScript レイヤー - MCP サーバーとオーケストレーション:

  • AI アシスタント向けの 13 個の専用ツール(4 カテゴリに分類)
  • 構造化データには SQLite、永続的なベクトル埋め込みには SurrealKV を使用する SurrealDB
  • 差分更新のためのファイル監視
  • 機能をファイルに対応付けるスマートルーティング

ストレージ - ローカルファースト:

  • すべてのデータはお使いのマシン上に保持されます
  • パターンとメタデータには SQLite を使用
  • 永続的なベクトル埋め込みのバックエンドには SurrealKV を使用する SurrealDB
  • 埋め込みには transformers.js をローカルで使用(Xenova/all-MiniLM-L6-v2)
他との違い

これは単なる別の RAG システムや静的ルールエンジンではありません。

  • 実際のコードから学習 - 手動で定義したルールではなく、実際のコードベースから統計的なパターンを学習します
  • アプローチを予測 - 類似した問題を以前どのように解決したかに基づいて予測します
  • トークン効率に優れる - LLM のコンテキスト使用量を最小限に抑える応答を生成します(プロジェクトコンテキストは 200 トークン未満)
  • ファイルへルーティング - 「ログインを追加」→ src/auth/login.ts を自動的に提案します
  • コンテキストを記憶 - 作業セッション、タスク、アーキテクチャ上の決定を追跡します
  • マルチモード検索 - セマンティック(意味)、テキスト(キーワード)、パターンベースの検索に対応します

v0.5.x の新機能

実装ロードマップのフェーズ 1~4 を最近完了しました。

🗺️ プロジェクトブループリント(フェーズ 1)

学習をすべて完了しなくても、プロジェクトのコンテキストをすぐに把握できます。コードベースについて質問すると、技術スタック、エントリーポイント、主要なディレクトリ、アーキテクチャを 200 トークン未満ですべて取得できます。

💼 作業コンテキストシステム(フェーズ 2)

AI エージェントが作業セッションを追跡し、タスクリストを管理し、アーキテクチャ上の決定を記録できるようになりました。中断したところから正確に作業を再開できます。

🧭 スマートファイルルーティング(フェーズ 3)

10 カテゴリ(認証、API、データベース、UI など)にわたって機能とファイルを対応付けます。「パスワードリセットを追加」のような曖昧なリクエストも、特定のファイルへ自動的にルーティングされます。

⚡ スムーズな進捗表示(v0.5.3)

煩わしいコンソールへの大量出力はもうありません。進捗バーは 500ms 間隔で一貫して更新され、その場で表示が切り替わります。

AI アシスタント向け MCP ツール

In Memoria は、AI アシスタントが MCP 経由で呼び出せる 13 個の専用ツールを提供します。4 カテゴリに分類されています(フェーズ 4 で重複するツールを統合したため、16 個から削減されました)。

🎯 中核分析(2 ツール)
  • analyze_codebase - ファイルやディレクトリを、概念、パターン、複雑さの観点から分析します(フェーズ 4:ファイルとディレクトリの両方に対応)
  • search_codebase - マルチモード検索(セマンティック/テキスト/パターン)
🧠 インテリジェンス(7 ツール)
  • learn_codebase_intelligence - パターンとアーキテクチャを抽出するための詳細な学習
  • get_project_blueprint - 技術スタックとエントリーポイントを含む、即時取得可能なプロジェクトコンテキスト ⭐(フェーズ 4:学習状況を含む)
  • get_semantic_insights - 学習済みの概念と関係性を照会
  • get_pattern_recommendations - 一貫性を保つための、関連ファイルとともにパターンを取得
  • predict_coding_approach - ファイルルーティングを含む実装ガイダンス ⭐
  • get_developer_profile - コーディングスタイルと作業コンテキストにアクセス
  • contribute_insights - アーキテクチャ上の決定を記録
🤖 自動化(1 ツール)
  • auto_learn_if_needed - 古さを検出するスマートな自動学習 ⭐(フェーズ 4:クイックセットアップ機能を含む)
📊 モニタリング(3 個のツール)
  • get_system_status - ヘルスチェック
  • get_intelligence_metrics - 学習したパターンの分析
  • get_performance_status - パフォーマンス診断

フェーズ 4 の統合:AX(エージェント体験、笑)を向上させるため、3 個のツールを既存のツールに統合しました。

  • get_file_content → analyze_codebase に統合
  • get_learning_status → get_project_blueprint に統合
  • quick_setup → auto_learn_if_needed に統合

AI エージェント向け:使用パターンと判断ツリーを含む完全なツールリファレンスは、AGENT.md を参照してください。

GitHub Copilot との連携

In Memoria は、カスタム指示とチャットモードを通じて GitHub Copilot と連携します。

セットアップ

このリポジトリには以下が含まれています。

  • .github/copilot-instructions.md - Copilot への自動ガイダンス
  • .github/chatmodes/ - 3 つの特化型チャットモード:
    • 🔍 inmemoria-explorer - インテリジェントなコードベースナビゲーション
    • 🚀 inmemoria-feature - パターンを活用した機能の実装
    • 🔎 inmemoria-review - 一貫性チェックを伴うコードレビュー

GitHub Copilot との連携(VS Code)

In Memoria は、MCP + カスタムエージェント(以前の名称は チャットモード)を使って GitHub Copilot Chat と連携します。 これらのエージェントを使うと、エージェントモードで作業する際に、Copilot が In Memoria の永続的なインテリジェンスを照会できます。

⚠️ 重要:Copilot が MCP ツールを呼び出すのは、チャットがエージェントモードの場合のみです(Ask または Edit モードでは呼び出しません)。

要件
  • VS Code 1.106+
  • GitHub Copilot Chat が有効であること
  • In Memoria MCP サーバーが設定され、実行中であること

MCP サーバーのセットアップ(必須)

ワークスペース内で以下のファイルを作成または編集します。

.vscode/mcp.json

{
  "servers": {
    "in-memoria": {
      "command": "npx",
      "args": ["in-memoria", "server"]
    }
  }
}

VS Code でこのファイルを開き、表示されたら Start をクリックするか、手動で起動します。


Copilot の指示(自動)

このリポジトリには以下が含まれています。

  • .github/copilot-instructions.md

VS Code はこのファイルを自動的に読み込み、Copilot Chat に指示を適用します。 追加のセットアップは必要ありません。


カスタムエージェント(以前の「チャットモード」)

このリポジトリには、Copilot 用の3 つのカスタムエージェントが用意されています。

エージェント目的
🔍 inmemoria-explorerインテリジェントなコードベースナビゲーション
🚀 inmemoria-feature学習したパターンを活用した機能の実装
🔎 inmemoria-review一貫性とパターンに基づくコードレビュー
エージェントファイルの場所

⚠️ VS Code では、チャットモード の名称が カスタムエージェント に変更されました。

現在の VS Code バージョンとの互換性を確保するには:

  1. 次のフォルダーを作成します。

    .github/agents/
    
  2. 次の場所からファイルを移動またはコピーします。

    .github/chatmodes/
    

    次の場所へ:

    .github/agents/
    
  3. 各ファイルの名前を変更します。

    *.chatmode.md → *.agent.md
    

例:

inmemoria-feature.chatmode.md → inmemoria-feature.agent.md

VS Code でエージェントを使用する
  1. Copilot Chat を開きます
  2. ドロップダウンからカスタムエージェント(例:inmemoria-featurename)を直接選択します。

エージェントが表示されない場合:

  • ウィンドウを再読み込みします
  • ファイルが .github/agents/ にあることを確認します

使用例
Where is the authentication logic?

→ Copilot が In Memoria のセマンティックインデックスを照会します

Add password reset functionality

→ Copilot が以下を取得します。

  • ファイルのルーティング
  • アーキテクチャパターン
  • 以前の認証に関する判断
Review this code for consistency

→ Copilot が学習済みの規約と照合します


よくある問題
  • ❌ Ask/Edit モードを使用している → MCP ツールは無視されます
  • ❌ MCP サーバーが実行されていない
  • ❌ エージェントファイルが .github/chatmodes/ にだけ置かれている
  • ❌ VS Code のバージョンが 1.106 未満

VS Code の用語に関する注意
以前の名称現在の名称
チャットモードカスタムエージェント
Chat: Configure Chat Modes…Chat: Configure Custom Agents
.github/chatmodes/.github/agents/

VS Code は引き続き従来のファイルも認識しますが、今後は .github/agents/*.agent.md が推奨形式です。

言語サポート

tree-sitter によるネイティブ AST 解析:

  • TypeScript と JavaScript(JSX/TSX を含む)
  • Python
  • PHP
  • Rust
  • Go
  • Java
  • C と C++
  • C#
  • Svelte
  • SQL

ビルド成果物(node_modules/、dist/、.next/ など)は自動的に除外されます。

ステータス:開発中

率直に言うと、In Memoria は初期段階のソフトウェアです。動作しますが、完璧ではありません。

正常に動作する機能
  • ✅ 実際のコードベースからのパターン学習
  • ✅ 概念を横断したセマンティック検索
  • ✅ プロジェクトの設計図の生成
  • ✅ Claude Desktop/Code との MCP 連携
  • ✅ クロスプラットフォーム対応(Linux、macOS、Windows)
  • ✅ トークン効率の高い応答
既知の制限事項
  • ⚠️ 大規模なコードベース(10 万ファイル以上)は、初回の解析に時間がかかることがあります
  • ⚠️ パターンの精度は、コードベースの一貫性が高まるほど向上します
  • ⚠️ 言語によって、tree-sitter のサポート状況に差があります
  • ⚠️ ドキュメントはさらに充実させる必要があります
皆さんの協力が必要です

これは AI 支援開発のためのオープンソースの基盤です。現在は @pi22by7 による個人プロジェクトですが、コントリビューションは歓迎されるだけでなく、不可欠です。

コードをコントリビュートする前に、次のことをお願いします。

  • GitHub Projects board を確認し、予定されている内容をご覧ください
  • Discord に参加して、アイデアについて話し合ってください(@pi_22by7)
  • 機能や修正について話し合うため、issue を作成してください
  • 大規模なコントリビューションについては、[email protected] までメールでご連絡ください

コントリビューションの方法:

  • 🐛 バグを報告する - 不具合を見つけましたか?issue を作成してください
  • 💡 機能を提案する - アイデアがありますか?Discord または GitHub Discussions で話し合ってください
  • 🔧 PR を送る - コードのコントリビューションをいつでも歓迎します(まずは話し合ってください!)
  • 📖 ドキュメントを改善する - 内容をより分かりやすくするため、ご協力ください
  • 🧪 ご自身のコードベースでテストする - 試してみて、問題があればお知らせください
  • 💬 コミュニティに参加する - リアルタイムの話し合いは Discord で行っています

開発環境のセットアップとガイドラインについては、CONTRIBUTING.md をご覧ください。

技術比較

GitHub Copilot のメモリーとの比較:

  • Copilot:基本的な事実の保存。パターン学習なし
  • In Memoria:セマンティック解析+パターン学習+アーキテクチャに関するインテリジェンス+作業コンテキスト

Cursor のルールとの比較:

  • Cursor:静的なルールを手動で定義
  • In Memoria:実際のコードからの動的な学習+スマートなファイル振り分け+プロジェクトの設計図

カスタム RAG との比較:

  • RAG:関連するコードスニペットを取得
  • In Memoria:パターンを理解+アプローチを予測+ファイルへ振り分け+作業コンテキストを追跡

チームでの利用

In Memoria は、個人の開発者にもチームにも役立ちます。

個人:

  • 個人のコーディングスタイルを学習します
  • これまでに行ったアーキテクチャ上の決定を記憶します
  • コンテキストを考慮した提案を提供します

チーム:

  • .in-memoria.db ファイルを共有して、学習したパターンを配布できます
  • コードベースのインテリジェンスをあらかじめ学習させ、新しい開発者をオンボーディングできます
  • チーム全体で AI の提案に一貫性を持たせることができます

ソースからビルドする

git clone https://github.com/pi22by7/in-memoria
cd in-memoria
npm install
npm run build

要件:

  • Node.js 18+
  • Rust 1.70+(ソースからビルドする場合)
  • 最低 2GB の RAM

開発:

npm run dev          # Start in development mode
npm test            # Run test suite (98.3% pass rate)
npm run build:rust  # Build Rust components

品質指標:

  • ユニットテスト 120 件中 118 件が成功(98.3%)
  • MCP 統合テスト 23 件すべてが成功(100%)
  • Rust コードの clippy 警告ゼロ
  • メモリーリークがないことを確認済み

FAQ

Q: これは AI コーディングアシスタントの代わりになりますか? A: いいえ、機能を強化するものです。In Memoria は、Claude、Copilot、Cursor などのツールがより良い提案を行うために活用できるメモリとコンテキストを提供します。

Q: どのようなデータが収集されますか? A: すべてローカルに保管されます。テレメトリーも、外部へのデータ送信もありません。コードがマシンの外に出ることはありません。すべての埋め込みは、transformers.js モデルを使ってローカルで生成されます。

Q: パターン学習の精度はどの程度ですか? A: コードベースの規模が大きく、一貫性が高いほど向上します。確立されたパターンがあるプロジェクトでは、小規模または一貫性のないコードベースより良い結果が得られます。このシステムは頻度と反復から学習します。

Q: パフォーマンスへの影響はどの程度ですか? A: 最小限です。初回の学習には時間がかかります(コードベースの規模に比例します)が、その後のクエリは高速です。ファイル監視により、増分更新が可能です。スマートフィルタリングによって、ビルド成果物は自動的にスキップされます。

Q: 分析に失敗したり、予期しない結果が出たりした場合はどうすればよいですか? A: 詳細を添えてイシューを作成してください。組み込みのタイムアウトとサーキットブレーカーでほとんどのエッジケースに対応できますが、実際のコードベースは複雑です。改善のため、皆さんからのフィードバックが必要です。

Q: 本番環境で使用できますか? A: _使用できます_が、これは v0.5.x であることをお忘れなく。まだ不安定な部分があります。十分にテストしてください。問題があれば報告してください。安定性の向上に取り組んでいますが、まだ達成できていません。

Q: なぜ Rust と TypeScript なのですか? A: パフォーマンスが重要な AST 解析とパターン分析には Rust を使い、MCP サーバーとオーケストレーションには TypeScript を使います。それぞれの長所を活かし、高速なコアと柔軟な統合レイヤーを実現します。

Q: Claude/Copilot 以外の AI ツールには対応していますか? A: MCP に対応するツールであれば、どれでも In Memoria を使用できます。Claude Desktop、Claude Code、GitHub Copilot でテスト済みです。ほかのツールも動作するはずですが、設定が必要な場合があります。

ロードマップ

段階的なアプローチで進めています。

  • ✅ フェーズ 1:プロジェクトブループリントシステム(v0.5.0)
  • ✅ フェーズ 2:作業コンテキストとセッションメモリ(v0.5.0)
  • ✅ フェーズ 3:スマートファイルルーティング(v0.5.0)
  • ✅ フェーズ 4:ツールの統合(v0.5.0)
  • 🚧 フェーズ 5:ベクトル検索と埋め込みの強化
  • 📋 フェーズ 6:複数プロジェクトのインテリジェンス
  • 📋 フェーズ 7:コラボレーション機能

詳細な進捗状況はGitHub Projectsをご覧ください。

コミュニティとサポート

プロジェクトメンテナー:⁠@pi22by7

  • 💬 Discord:discord.gg/6mGsM4qkYm - コミュニティに参加して、質問したり、改善について話し合ったりできます(@pi_22by7 にメンションしてください)
  • 📧 メール:[email protected] - 非公開のお問い合わせや、大規模な貢献に関する相談はこちら
  • 🐛 イシュー:GitHub Issues - バグの報告や機能のリクエストはこちら
  • 💡 ディスカッション:GitHub Discussions - 一般的な議論や Q&A はこちら
  • 📖 ドキュメント:AI エージェント向けの手順についてはAGENT.mdをご覧ください
  • 🤝 コントリビューション:開発ガイドラインについてはCONTRIBUTING.mdをご確認ください

貢献を始める前に:大規模な機能の作業に取りかかる前に、Discord、メール、またはイシューでアイデアについて話し合ってください。これにより、プロジェクトの方針との整合性を確保し、作業の重複を避けられます。

ライセンス

MIT - LICENSEをご覧ください

AI 支援開発コミュニティのために、@pi22by7が ❤️ を込めて開発しました。


お試しください:npx in-memoria server

最新リリース:v0.6.0 - スムーズな進捗トラッキングとフェーズ 1~4 の完了

In memoria:記憶の中に。AI アシスタントも覚えておくべきだから。

質問やアイデアはありますか?Discordに参加するか、[email protected]までご連絡ください

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。