项目简介

Columnist-DB AI记忆MCP服务器是基于Columnist-DB数据库引擎构建的,专为AI应用优化。它提供了一个统一的AI记忆层,能够存储和管理多种类型的内容(如对话、文档、网页、研究论文、笔记),并通过MCP协议向LLM客户端(如Claude Code)提供上下文信息和工具调用能力。

主要功能点

  • 通用内容存储: 能够存储各种结构化和非结构化数据,包括对话历史、文档、网页内容和研究论文。
  • 混合搜索: 支持结合全文搜索和向量相似度搜索,实现高效且语义相关的内存检索。
  • 上下文感知能力: 提供高级内存功能,如上下文搜索、记忆整合和相关内容发现,提升LLM的交互质量。
  • 多设备同步: 内置企业级同步机制,支持跨设备数据一致性,确保AI记忆的持久性和可访问性。
  • 生产级性能: 针对AI应用优化,查询10万个向量嵌入可在50毫秒内完成,并支持客户端持久化。

安装步骤

  1. 确保您已安装 Node.js (推荐 18+版本)。
  2. 打开您的终端或命令行工具。
  3. 运行以下命令安装AI记忆MCP服务器包: 'npm install columnist-db-ai-memory'

服务器配置

将以下配置信息添加到您的MCP客户端(例如Claude Code)的配置文件中,以启用AI记忆服务。请将 'my-ai-memory-db' 替换为您希望存储AI记忆的数据库名称。

{
  "mcpServers": {
    "ai-memory": {
      "command": "node",
      "args": ["./node_modules/columnist-db-ai-memory/index.js"],
      "env": {
        "DB_NAME": "my-ai-memory-db"
      },
      "description": "Columnist-DB AI记忆MCP服务器,提供通用内容存储和检索工具。",
      "tools": [
        {
          "name": "store_content",
          "description": "在AI记忆中存储任何类型的内容(对话、文档、网页、笔记、自定义、研究论文等)。",
          "parameters_schema": {
            "content": "要存储的内容文本",
            "content_type": "内容类型,例如:conversation, document, web, note, custom, research",
            "title": "(可选)内容标题",
            "tags": "(可选)逗号分隔的标签",
            "metadata": "(可选)JSON格式的附加元数据",
            "source": "(可选)内容来源"
          }
        },
        {
          "name": "search_memory",
          "description": "搜索所有存储的AI记忆内容。",
          "parameters_schema": {
            "query": "搜索查询文本",
            "content_type": "(可选)按内容类型过滤",
            "tags": "(可选)按逗号分隔的标签过滤",
            "limit": "(可选)最大返回结果数量,默认为10"
          }
        },
        {
          "name": "get_content",
          "description": "根据ID检索特定内容。",
          "parameters_schema": {
            "content_id": "要检索的内容ID"
          }
        },
        {
          "name": "store_conversation",
          "description": "存储AI对话历史。",
          "parameters_schema": {
            "messages": "JSON数组格式的对话消息",
            "summary": "(可选)对话摘要",
            "tags": "(可选)逗号分隔的标签"
          }
        },
        {
          "name": "search_conversations",
          "description": "搜索对话历史。",
          "parameters_schema": {
            "query": "搜索查询文本",
            "tags": "(可选)按逗号分隔的标签过滤"
          }
        },
        {
          "name": "store_document",
          "description": "存储带有元数据的文档。",
          "parameters_schema": {
            "content": "文档内容",
            "title": "文档标题",
            "author": "(可选)文档作者",
            "document_type": "(可选)文档类型,例如:article, report, email",
            "tags": "(可选)逗号分隔的标签"
          }
        },
        {
          "name": "store_web_content",
          "description": "存储网页或在线内容。",
          "parameters_schema": {
            "content": "网页内容",
            "url": "来源URL",
            "title": "(可选)页面标题",
            "summary": "(可选)内容摘要"
          }
        },
        {
          "name": "store_research_paper",
          "description": "存储带有学术元数据的研究论文。",
          "parameters_schema": {
            "title": "论文标题",
            "authors": "逗号分隔的作者列表",
            "abstract": "论文摘要",
            "publication_date": "出版日期 (YYYY-MM-DD)",
            "tags": "(可选)逗号分隔的标签",
            "url": "(可选)论文URL",
            "journal": "(可选)期刊/会议名称"
          }
        },
        {
          "name": "get_memory_stats",
          "description": "获取存储内容的统计信息。",
          "parameters_schema": {}
        },
        {
          "name": "clear_memory",
          "description": "从记忆中清除所有或筛选后的内容。",
          "parameters_schema": {
            "content_type": "(可选)清除特定内容类型",
            "tags": "(可选)清除带有特定标签的内容"
          }
        },
        {
          "name": "export_memory",
          "description": "将记忆内容导出为各种格式。",
          "parameters_schema": {
            "format": "(可选)导出格式,例如:json, csv, markdown",
            "content_type": "(可选)导出特定内容类型"
          }
        },
        {
          "name": "find_related_content",
          "description": "查找与某个主题或现有内容相关的内容。",
          "parameters_schema": {
            "topic": "主题或内容ID",
            "similarity_threshold": "(可选)相似度阈值,默认为0.7"
          }
        },
        {
          "name": "summarize_content",
          "description": "生成存储内容的摘要。",
          "parameters_schema": {
            "content_ids": "(可选)逗号分隔的内容ID",
            "content_type": "(可选)摘要特定内容类型"
          }
        },
        {
          "name": "contextual_memory_search",
          "description": "基于上下文感知搜索记忆。",
          "parameters_schema": {
            "current_topic": "当前对话主题",
            "user_preferences": "(可选)JSON格式的用户偏好",
            "time_context": "(可选)JSON格式的时间上下文"
          }
        },
        {
          "name": "consolidate_memories",
          "description": "整合和优化记忆存储。",
          "parameters_schema": {}
        }
      ]
    }
  }
}

基本使用方法

一旦MCP服务器配置完成并启动,您的LLM客户端(例如Claude Code、ChatGPT等)就可以通过调用上述定义的MCP工具与AI记忆服务器进行交互。

  • 存储内容: LLM客户端可以调用 'store_content' 工具来存储任何类型的文本数据,例如:
    • 'mcp.store_content({ content: "这是一个重要的项目笔记", content_type: "note", title: "项目A概述", tags: "项目, 笔记" })'
  • 搜索记忆: LLM客户端可以调用 'search_memory' 工具来检索相关记忆,例如:
    • 'mcp.search_memory({ query: "关于机器学习的讨论", content_type: "conversation", limit: 5 })'
  • 获取统计: LLM客户端可以调用 'get_memory_stats' 工具来获取记忆使用情况的统计信息,例如:
    • 'mcp.get_memory_stats()'

LLM客户端会根据其内部逻辑和用户指令,自动选择并调用这些工具,并处理服务器返回的响应。您无需直接编写代码调用这些工具,而是通过LLM客户端的自然语言交互来利用AI记忆服务器的功能。

信息

分类

AI与计算