ContextBase 使用说明

项目简介

ContextBase 是一个后端服务器,旨在为 AI 代理、助手和应用程序提供用户情境记忆管理能力。它允许开发者通过简单的 API 接口,为每个用户存储和检索上下文数据,从而构建更加个性化和情境感知的 AI 应用。虽然项目名称中包含“ContextBase (MCP Server)”,但该项目实际上并未完全遵循 Model Context Protocol (MCP) 的标准,它主要提供基于 RESTful API 的用户记忆管理功能,而非基于 JSON-RPC 的 MCP 协议。因此,不能直接作为标准的 MCP 服务器与 MCP 客户端对接,但可以作为理解 MCP 概念和构建情境感知应用的参考。

主要功能点

  • 用户认证系统: 使用 JWT 和 bcrypt 实现安全的 JWT 认证和用户注册登录。
  • 情境记忆管理: 提供 API 端点用于存储、检索、更新和删除用户的记忆数据(上下文信息)。
  • 用户行为日志: 记录用户对记忆数据的操作日志。
  • 技术栈: 采用 TypeScript, Fastify, Prisma ORM, PostgreSQL, Redis 等现代技术栈。
  • 数据库支持: 使用 PostgreSQL 进行持久化存储,Redis 用于缓存提高性能。

需要注意的是,该项目主要关注用户记忆的存储和管理,并未实现 MCP 定义中的“工具 (Tools)”注册和执行以及 “Prompt 模板 (Prompts)” 定义和渲染功能。它更像是一个通用的用户上下文数据管理后端服务。

安装步骤

  1. 克隆仓库:

    git clone https://github.com/imfeniljikadara/contextbase.git
    cd contextbase/mcp-server
  2. 安装依赖:

    npm install
  3. 配置环境变量: 在 'mcp-server' 目录下创建 '.env' 文件,并配置以下环境变量:

    DATABASE_URL=postgresql://你的用户名:你的密码@localhost:5432/mcp  # PostgreSQL 数据库连接 URL
    REDIS_HOST=localhost                                    # Redis 主机名
    REDIS_PORT=6379                                       # Redis 端口号
    JWT_SECRET=your_jwt_secret                              # JWT 密钥,用于token签名,请设置为高强度随机字符串
    PORT=3000                                             # 服务器端口号,默认为 3000

    请根据你的实际 PostgreSQL 和 Redis 环境配置进行修改。'JWT_SECRET' 务必设置为安全的随机字符串。

  4. 运行数据库迁移:

    npx prisma migrate dev

    此命令将根据 'prisma/schema.prisma' 文件创建数据库表结构。

  5. 启动服务器:

    npm start

    或者使用 Docker 容器化部署:

    docker-compose up

服务器配置 (非 MCP 客户端配置)

由于 ContextBase 实际上是一个 RESTful API 服务,并非标准的 MCP 服务器,因此 不需要 MCP 客户端配置。如果你想将它与 AI 应用集成,你需要通过 HTTP 请求调用其提供的 API 接口。

如果你需要使用 MCP 客户端连接到符合 MCP 协议标准的服务器,ContextBase 仓库 不适用

基本使用方法 (API 调用示例)

ContextBase 提供 RESTful API 接口进行操作。以下是一些基本 API 使用示例 (假设服务器运行在 'http://localhost:3000'),你需要先注册并登录用户以获取 JWT Token,然后在请求头中携带 Token 进行后续操作。

  1. 用户注册 (POST /api/auth/signup):

    curl -X POST \
      -H "Content-Type: application/json" \
      -d '{"email": "[email protected]", "password": "password123"}' \
      http://localhost:3000/api/auth/signup
  2. 用户登录 (POST /api/auth/login):

    curl -X POST \
      -H "Content-Type: application/json" \
      -d '{"email": "[email protected]", "password": "password123"}' \
      http://localhost:3000/api/auth/login

    登录成功后,响应会返回 'token' 字段,这就是 JWT Token。

  3. 存储记忆 (POST /api/memory):

    curl -X POST \
      -H "Content-Type: application/json" \
      -H "Authorization: Bearer YOUR_JWT_TOKEN"  \
      -d '{"key": "user_profile", "value": {"name": "Alice", "age": 30}}' \
      http://localhost:3000/api/memory

    将 'YOUR_JWT_TOKEN' 替换为实际的 Token。

  4. 获取记忆 (GET /api/memory/{key}):

    curl -X GET \
      -H "Authorization: Bearer YOUR_JWT_TOKEN" \
      http://localhost:3000/api/memory/user_profile
  5. 列出所有记忆键 (GET /api/memory):

    curl -X GET \
      -H "Authorization: Bearer YOUR_JWT_TOKEN" \
      http://localhost:3000/api/memory

更多 API 接口请参考仓库 'README.md' 或查看 'mcp-server/src/api' 目录下的路由定义文件。你需要使用 HTTP 客户端(如 'curl'、Postman、浏览器 Fetch API 等)按照 RESTful API 的方式与 ContextBase 服务器进行交互。

总结: ContextBase 提供了一个用户情境记忆管理的后端服务,但它 不是标准的 MCP 服务器实现。如果你需要构建基于 MCP 协议的应用,可能需要寻找更符合 MCP 标准的服务器实现或自行开发。如果你只是需要一个简单的用户上下文数据管理方案,ContextBase 可以作为一个参考或直接使用。

信息

分类

数据库与文件