内存存储检索系统

MCP Memory Server 是一个开源的基于Golang和Upstash向量数据库的内存存储、检索和管理系统,为AI助手提供简单的HTTP API接口。

  • by bqx619
  • Go
  • 本地部署
  • 更新于
在 GitHub 查看 bqx619/mcp-memory-server

使用说明

MCP内存服务器

概述

MCP内存服务器是一个目前正在开发的开源项目,它使用Golang和Upstash的矢量数据库提供内存存储、检索和管理系统。它为人工智能助手提供了一个简单的HTTP API来存储和检索上下文信息。

该项目实现了MCP(模型控制协议)规范,允许AI模型以标准化的方式与外部工具进行交互。

特性

目前,该项目正在开发中,实现了三种核心API方法:

  1. 存储内存 -使用自动矢量嵌入保存信息
  2. 检索内存 -使用自然语言查询进行相关信息的语义搜索
  3. 删除内存 -按ID删除特定记忆

技术栈

  • 后端:Go(高朗)
  • 矢量数据库:目前支持Uptash Vector
  • 运输:HTTP API

入门指南

安装

  1. 克隆存储库

    git clone https://github.com/bqx619/mcp-memory-server.git
    cd mcp-memory-server
    
  2. 安装依赖项

    go mod download
    
  3. 创建一个 .env 包含以下变量的文件:

    VECTOR_PROVIDER=upstash
    VECTOR_URL=your-upstash-vector-url
    VECTOR_TOKEN=your-upstash-vector-token
    HTTP_PORT=8080
    

运行服务器

go run .

服务器将在配置的端口(默认:8080)上启动。

api参考

存储内存

将新信息存储在矢量数据库中。

端点:POST/工具/store_memory 请求正文:

{
  "content": "Memory content to store"
}

响应:

{
  "content": "Successfully stored memory with ID: abcd1234"
}

检索内存

根据查询执行语义搜索以查找相关信息。

端点:POST/tools/retrieve_memory 请求正文:

{
  "query": "search term",
  "n_results": 5
}

响应:

{
  "content": "Found the following memories:
Memory 1:
Content: The first relevant memory
Id: abcd1234
Relevance Score: 0.92
Memory 2:
Content: Another related memory
Id: efgh5678
Relevance Score: 0.85
..."
}

删除内存

按ID删除特定内存。

端点:POST/tools/delete_memory 请求正文:

{
  "memory_id": "abcd1234"
}

响应:

{
  "content": "Successfully deleted memory with ID: abcd1234"
}

发展路线图

  • 添加身份验证
  • 实现记忆标记和分类
  • 支持其他矢量数据库提供商
  • 增强搜索能力
  • 添加内存过期和TTL功能
  • ...

贡献

由于该项目目前正在开发中,欢迎捐款。请随时提交问题和拉取请求。