mcpField
P
PostgMem

PostgMem

本地服务
github.com/dariogriffo记忆与知识1678 周前更新

关于 PostgMem

PostgMem 是基于 .NET、PostgreSQL 和 pgvector 的记忆存储服务,面向需要持久化和检索记忆的 AI Agent。它以向量相似度搜索为核心,并支持按标签筛选。

主要功能

  1. 01存储带向量嵌入的结构化记忆
  2. 02按 ID 获取或删除记忆
  3. 03按语义相似度搜索
  4. 04使用标签筛选搜索结果

适用场景

  1. 01为 AI Agent 保存对话记忆
  2. 02按语义检索相关信息
  3. 03按标签整理和筛选记忆

MCP 相关

PostgMem 通过 MCP 暴露存储、搜索、获取和删除记忆的工具,供 AI Agent 调用。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

PostgMem

一种 MCP(Model Context Protocol)服务实现,使用 PostgreSQL 和 pgvector 为 AI 应用提供向量记忆存储。

概览

PostgMem 是一项基于 .NET 的服务,可让 AI Agent 使用向量嵌入存储、检索和搜索记忆。它利用带有 pgvector 扩展的 PostgreSQL,提供高效的相似度搜索功能。

主要功能:

  • 使用向量嵌入存储结构化记忆
  • 按 ID 检索记忆
  • 使用向量相似度对记忆进行语义搜索
  • 使用标签筛选搜索结果
  • 集成 MCP(Model Context Protocol),便于与 AI Agent 搭配使用

技术

  • .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 工具

许可证

[此处填写许可证信息]

贡献

[此处填写贡献指南]

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。