mcpField
P
PostgMem

PostgMem

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

PostgMem について

PostgMemは、永続的な記憶を必要とするAIエージェント向けの、PostgreSQLとpgvectorを使った.NETサービスです。ベクトル類似検索を中心に、タグで結果を絞り込めます。

主な機能

  1. 01埋め込み付きの構造化記憶を保存
  2. 02IDで記憶を取得または削除
  3. 03意味的類似度による検索
  4. 04タグによる検索結果の絞り込み

活用シーン

  1. 01AIエージェントの会話記憶を保持
  2. 02意味に基づいて関連情報を検索
  3. 03タグで記憶を整理・絞り込み

MCP 対応

PostgMemはMCPを通じて、記憶の保存、検索、取得、削除ツールをAIエージェントに公開します。

設定

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

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

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

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

詳細

PostgMem

AI アプリケーション向けに、PostgreSQL と pgvector を使用したベクトルメモリストレージを提供する Model Context Protocol(MCP)サーバーの実装です。

概要

PostgMem は、AI エージェントがベクトル埋め込みを使用してメモリを保存、取得、検索できる .NET ベースのサービスです。pgvector 拡張機能を備えた PostgreSQL を活用し、効率的な類似性検索機能を提供します。

主な機能:

  • ベクトル埋め込みを含む構造化メモリの保存
  • ID によるメモリの取得
  • ベクトル類似度を使用したメモリのセマンティック検索
  • タグを使用した検索結果の絞り込み
  • AI エージェントと簡単に連携できる MCP(Model Context Protocol)統合

テクノロジー

  • .NET 9.0
  • pgvector 拡張機能を備えた PostgreSQL
  • Model Context Protocol(MCP)
  • ASP.NET Core
  • PostgreSQL 接続用の Npgsql

前提条件

  • .NET 9.0 SDK
  • pgvector 拡張機能をインストールした PostgreSQL データベース
  • テキスト埋め込み API(デフォルト設定では Ollama を使用)

セットアップ

データベースの設定
  1. アプリケーション用の PostgreSQL データベースを作成します
  2. データベースに pgvector 拡張機能をインストールします:
    CREATE EXTENSION vector;
    
  3. memories テーブルを作成します:
    CREATE TABLE memories (
        id UUID PRIMARY KEY,
        type TEXT NOT NULL,
        content JSONB NOT NULL,
        source TEXT NOT NULL,
        embedding VECTOR(384) NOT NULL,
        tags TEXT[] NOT NULL,
        confidence DOUBLE PRECISION NOT NULL,
        created_at TIMESTAMP WITH TIME ZONE NOT NULL,
        updated_at TIMESTAMP WITH TIME ZONE NOT NULL
    );
    
環境設定

.env ファイルでアプリケーションの設定を行います:

ConnectionStrings__Storage="Host=localhost;Database=mcp_memory;Username=postgres;Password=postgres"
Embeddings__ApiUrl=http://localhost:11434/
Embeddings__Model=all-minilm:33m-l12-v2-fp16
  • ConnectionStrings__Storage:PostgreSQL 接続文字列
  • Embeddings__ApiUrl:埋め込み API の URL(デフォルトは Ollama)
  • Embeddings__Model:使用する埋め込みモデル

アプリケーションの実行

  1. PostgMem ディレクトリに移動します
  2. アプリケーションを実行します:
    dotnet run
    
  3. デフォルトでは、MCP サーバーは http://localhost:5000 で利用できます

MCP ツール

次の MCP ツールを利用できます:

Store

データベースに新しいメモリを保存します。

パラメーター:

  • type(string):メモリの種類(例:'conversation'、'document' など)
  • content(string):JSON オブジェクトとしてのメモリの内容
  • source(string):メモリのソース(例:'user'、'system' など)
  • tags(string[]):メモリを分類するための任意のタグ
  • confidence(double):メモリの信頼度スコア(0.0~1.0)
Search

指定したテキストに類似するメモリを検索します。

パラメーター:

  • query(string):類似するメモリを検索するためのテキスト
  • limit(int):返す結果の最大数(デフォルト:10)
  • minSimilarity(double):類似度の最小しきい値(0.0~1.0)(デフォルト:0.7)
  • filterTags(string[]):メモリを絞り込むための任意のタグ
Get

ID を指定して特定のメモリを取得します。

パラメーター:

  • id(Guid):取得するメモリの ID
Delete

ID を指定してメモリを削除します。

パラメーター:

  • id(Guid):削除するメモリの ID

実装の詳細

  • Memory.cs:メモリのデータモデルを定義します
  • Storage.cs:メモリの保存と取得に関するデータベース操作を処理します
  • EmbeddingService.cs:テキストのベクトル埋め込みを生成します
  • MemoryTools.cs:メモリストレージを操作する MCP ツールを実装します

ライセンス

[ライセンス情報をここに記載]

コントリビューション

[コントリビューションガイドラインをここに記載]

コメント

MCP は初めてですか?

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

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