长期记忆与文件操作服务

为OpenViking提供长期记忆和文件系统操作的服务,包括回忆、存储、删除、列表、读取和搜索功能。

  • by 2218342221
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 2218342221/openviking-mcp

使用说明

@gdpa/openviking内存mcp

用于OpenViking长期内存和文件系统操作的MCP服务器,具有回调、存储、遗忘、fs/ls、fs/read和fs/grep操作。

安装

npm install @gdpa/openviking-memory-mcp

用法

通过stdio传输作为MCP服务器运行:

npx @gdpa/openviking-memory-mcp --base-url <OPENVIKING_URL> --api-key <API_KEY> --agent-id <AGENT_ID>

光标MCP配置

添加到您的 mcp.json:

{
  "mcpServers": {
    "openviking-memory": {
      "command": "npx",
      "args": [
        "--registry",
        "https://bnpm.byted.org",
        "@gdpa/openviking-memory-mcp",
        "--base-url", "https://gdpa.bytedance.net/openviking-public",
        "--api-key", "<YOUR_API_KEY>",
        "--agent-id", "<YOUR_AGENT_ID>"
      ]
    }
  }
}

CLI参数

参数 必填 描述
--base-url 是 OpenViking API基础URL
--api-key 是 用于身份验证的API密钥
--agent-id 是 代理标识符

可选参数

支持这些参数,但它们不是默认示例配置的一部分:

参数 描述
--resource-uri, --resource_uri 默认资源搜索范围。设置后,recall仅搜索此URI前缀下的资源,同时仍正常搜索内存。如果工具调用显式传递资源 targetUri,它必须保持在此配置范围内。
--tools 逗号分隔的动作满列表。支持的值: recall, store, forget, fs/ls, fs/read, fs/grep默认值为所有操作。例子: --tools recall 或 --tools recall,store,fs/read.

MCP工具: memory

recall --对存储的记忆和资源进行语义搜索

  • query (字符串,必填):搜索查询
  • limit (数字,可选):最大结果(默认值10)
  • scoreThreshold (数字,可选):最低相关性得分
  • targetUri (字符串,可选):将搜索范围缩小到特定的内存或资源URI。如果 resource_uri 已配置,任何资源 targetUri 必须在该前缀内。
  • 结果格式:每行召回都包括 context_type 和 is_leaf 标记。

store --将新信息存储为内存

  • text (string,可选):要附加到会话中的内容。追加模式需要。
  • role (字符串,可选):消息角色
  • session_id (字符串,有条件要求):用于附加到现有会话的会话标识符(别名: sessionId)
  • create_session (布尔值,有条件要求):当 session_id 如果不存在,则必须显式传递并设置为 true 创建新会话(别名: createSession)
  • commit_session (boolean,可选):添加此消息后提交会话(默认值: false).Commit异步运行提取并返回 task_id (别名: commitSession)
  • 会话选择器规则(必填):每个 store 调用必须通过以下任一方式明确标识会话源 session_id 或 create_session=true (当否 session_id).
  • 仅提交模式:设置 commit_session=true 不要通过 text。它可以与现有的 session_id,或 create_session=true 如果你有意创建,那么在一次调用中提交。
  • 生命周期规则:如果 commit_session=false,数据仅被附加,内存提取尚未开始。你最终必须打一个决赛 store 和 commit_session=true.
  • 之后 commit_session=true,这个 session_id 被视为关闭;不要向它推送更多消息。启动一个新会话以进行后续写入。
  • 如果提交失败,需要重试,请仅重试提交(session_id + commit_session=true,没有 text)以避免重复写入。

forget --删除存储的记忆

  • uri (字符串,可选):要删除的特定URI
  • query (字符串,可选):基于查询的删除
  • targetUri (字符串,可选):可选搜索范围URI。省略时,基于查询的删除会搜索用户和代理内存。
  • scoreThreshold (数字,可选):基于查询删除的分数阈值

fs/ls --列出目录内容

  • uri (字符串,必填):目标维京URI(用于定位可读 is_leaf=true 节点)
  • recursive (boolean,可选):递归列出子体
  • simple (boolean,可选):返回更简单的相对路径输出

fs/read --阅读完整内容

  • uri (字符串,必填):目标维京URI is_leaf=true 仅限节点

fs/grep --内容中的模式搜索

  • uri (字符串,必填):目标Viking URI范围
  • pattern (字符串,必填):正则表达式搜索模式
  • caseInsensitive (布尔值,可选):忽略大小写(别名: case_insensitive)

需求

  • Node.js>=18.0.0