zettelkasten-memory-server
Version:
基于 Zettelkasten 记忆片段盒方法的 MCP 记忆服务器 v1.6.X
123 lines • 8.08 kB
JavaScript
// 工具定义映射
export const TOOL_DEFINITIONS = {
getMemory: {
description: "获取指定记忆片段的内容,支持递归展开引用的其他记忆片段。请不要重复调用同一记忆片段,除非该记忆片段内容在不知情的情况下发生变化(使用 setMemory 属于在可控的情况下变更了内容,因为设置的内容即为最新的内容),比如使用 extractMemory 提取了内容,或者insetLinkAt 插入了链接,使用带有行号的模式可以忽略这一点。如果接下来希望使用 extractMemory 提取内容,推荐使用 withLineNumber=true",
inputSchema: {
type: "object",
properties: {
fragmentName: { type: "string", description: "要获取内容的记忆片段名称" },
expandDepth: { type: "number", description: "展开深度,0表示不展开引用,1表示展开一层引用,以此类推", default: 0, minimum: 0, maximum: 10 },
withLineNumber: { type: "boolean", description: "是否输出带行号的内容,默认false", default: false }
},
required: ["fragmentName"]
}
},
setMemory: {
description: "创建或更新记忆片段的内容。支持使用 [[记忆片段名]] 语法引用其他记忆片段,并自动处理引用关系。注意:如果该记忆片段已存在,内容会被覆盖。如果需要合并内容,请使用 renameMemory 方法。在编辑前请确保该记忆片段的内容是最新的,如果上下文中没有相关内容,请先使用 getMemory 获取最新内容。",
inputSchema: {
type: "object",
properties: {
fragmentName: { type: "string", description: "要设置内容的记忆片段名称" },
content: { type: "string", description: "记忆片段的内容,支持 Markdown 格式和 [[记忆片段名]] 引用语法" }
},
required: ["fragmentName", "content"]
}
},
deleteMemory: {
description: "删除指定的记忆片段",
inputSchema: {
type: "object",
properties: {
fragmentName: { type: "string", description: "要删除的记忆片段名称" }
},
required: ["fragmentName"]
}
},
renameMemory: {
description: "重命名记忆片段或将两个记忆片段合并。如果目标记忆片段已存在,会将内容合并。同时更新所有引用了旧记忆片段的地方。在使用此方法前,请确保旧记忆片段的内容是最新的。如果上下文中没有相关内容,请先使用 getMemory 获取最新内容。",
inputSchema: {
type: "object",
properties: {
sourceFragmentName: { type: "string", description: "原记忆片段名称" },
targetFragmentName: { type: "string", description: "新记忆片段名称" }
},
required: ["sourceFragmentName", "targetFragmentName"]
}
},
getMemoryHints: {
description: "获取按权重排序的重要记忆片段提示。权重通过递归计算记忆片段引用关系得出。用于发现知识网络的核心节点。如需优化整体结构,建议配合 getOptimizeSuggestions 使用",
inputSchema: {
type: "object",
properties: {
fileCount: { type: "number", description: "返回的记忆片段数量", default: 10, minimum: 1, maximum: 100 }
}
}
},
getOptimizeSuggestions: {
description: "获取优化建议,识别低信息散度的记忆片段和孤立片段。信息散度 = 权重 / 字符数。该方法同时提供低信息散度片段和孤立片段的优化建议,包括详细的拆分、链接和合并策略。系统片段(如 bootloader 片段)是只读的,具有保护机制无法修改。当记忆片段数量较多或想要改善知识网络质量时使用",
inputSchema: {
type: "object",
properties: {
optimizationThreshold: { type: "number", description: "优化阈值,信息散度低于此值的记忆片段会被标记为需要优化", default: 0.1, minimum: 0, maximum: 1 },
maxFileCount: { type: "number", description: "返回的低信息散度记忆片段最大数量", default: 10, minimum: 1, maximum: 50 }
}
}
},
extractMemory: {
description: "内容提取功能 - 支持精确范围定位。通过行号和正则表达式精确定位内容范围进行提取。适用于需要从大段文本中提取特定内容的场景。可以指定起始和结束位置,支持行号和正则表达式匹配,提取前请使用 getMemory 的 withLineNumber=true 获取带行号的内容,以确保行号准确。这是 getOptimizeSuggestions 推荐的主要优化方法。",
inputSchema: {
type: "object",
properties: {
from: { type: "string", description: "源记忆片段名称" },
to: { type: "string", description: "目标记忆片段名称" },
range: {
type: "object",
description: "提取范围定义",
properties: {
start: {
type: "object",
description: "开始位置",
properties: {
line: { type: "number", description: "起始行号(1-based),如果不提供则从文件开头开始", minimum: 1 },
regex: { type: "string", description: "正则表达式匹配,从指定行号开始搜索匹配的内容" }
}
},
end: {
type: "object",
description: "结束位置",
properties: {
line: { type: "number", description: "结束行号(1-based),如果不提供则从文件结尾开始", minimum: 1 },
regex: { type: "string", description: "正则表达式匹配,从指定行号开始倒过来搜索匹配的内容" }
}
}
}
}
},
required: ["from", "to", "range"]
}
},
insertLinkAt: {
description: "在指定位置插入记忆片段链接。在使用前请确保已获取相关记忆片段的最新内容,推荐使用 withLineNumber=true 获取带行号的内容。",
inputSchema: {
type: "object",
properties: {
sourceFragmentName: { type: "string", description: "源记忆片段名称(要在其中插入链接的记忆片段)" },
targetFragmentName: { type: "string", description: "目标记忆片段名称(要链接到的记忆片段)" },
linePosition: { type: "number", description: "行号位置。正数表示从文件开头计数(1-based),负数表示从文件末尾计数,0或不提供则默认添加到文件末尾" },
anchorText: { type: "string", description: "链接的锚文本,可选。如果提供,链接格式为 '锚文本 [[目标记忆片段]]',否则为 '[[目标记忆片段]]'" }
},
required: ["sourceFragmentName", "targetFragmentName"]
}
},
getBacklinks: {
description: "获取指定记忆片段的所有反向链接。返回引用指定记忆片段的其他记忆片段名称列表,有助于了解知识网络中的连接关系",
inputSchema: {
type: "object",
properties: {
fragmentName: { type: "string", description: "要查询反向链接的记忆片段名称" }
},
required: ["fragmentName"]
}
}
};
//# sourceMappingURL=toolDefinetion.old.js.map