知识管理服务器

MCP服务器允许代理从个人知识管理系统中学习,提供知识图谱构建、内容搜索和语义搜索等功能。

  • by khuedoan
  • Rust
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 khuedoan/knowledge-mcp

使用说明

知识MCP

MCP服务器允许代理从我的个人知识管理中学习 系统。知识库示例可在以下网址获得 ./examples.

免责声明: 我基本上编写了这个MCP服务器。我提供了代理人 方向、架构选择、要使用的库、使用时的反馈 服务器等,但我很少查看实际的代码。

特性

  • Vault索引:解析wiki风格的markdown文件 [[links]]
  • 知识图谱:构建笔记连接图(链接、反向链接)
  • 内容搜索:基于正则表达式的所有笔记搜索
  • 语义搜索:具有链接上下文和图扩展的分块局部嵌入
  • 实时更新:文件系统监视以自动重新索引
  • 敏感数据过滤:可配置的基于关键字的内容过滤
  • 内容缓存:具有修改时间跟踪功能的LRU缓存

这个MCP服务器曾经具有消化源材料的功能,但我 对此持怀疑态度,因为这并不能真正帮助我理解 源材料和用自己的话写笔记(这是 Zettelkasten)。在让特工进入之前,我希望这些知识是我的 它,而不是相反,所以我最终删除了编辑功能并转向 将MCP服务器设置为只读。

用法

安装

默认情况下,它会将二进制文件复制到 ~/.local/bin,你需要把它放进去 $PATH 或者更改安装目标。

make install

配置

以下是一个OpenCode配置示例:

{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "knowledge": {
      "type": "local",
      "command": [
        "knowledge-mcp"
      ],
      "environment": {
        "KNOWLEDGE_VAULT_PATH": "~/Documents/notes"
      },
      "enabled": true
    }
  }
}

环境变量:

变量 默认值 描述
KNOWLEDGE_VAULT_PATH (必填) 标记库路径
KNOWLEDGE_SENSITIVE_KEYWORDS salary 要筛选的逗号分隔关键字
KNOWLEDGE_ENABLE_WATCHER true 启用实时文件观看
KNOWLEDGE_CACHE_SIZE 500 要缓存在内存中的笔记数
KNOWLEDGE_CACHE_DIR 系统缓存目录 嵌入缓存目录
KNOWLEDGE_EMBEDDING_MAX_CHARS 1800 每个嵌入块的最大字符数
KNOWLEDGE_EMBEDDING_CHUNK_OVERLAP_CHARS 200 块(字符)之间的重叠
KNOWLEDGE_EMBEDDING_LINK_CONTEXT_MAX_CHARS 320 链接上下文嵌入的最大字符数
KNOWLEDGE_EMBEDDING_LINK_CONTEXT_WEIGHT 0.7 应用于链接上下文相似性的权重
KNOWLEDGE_EMBEDDING_INCLUDE_LINK_CONTEXT true 包含链接上下文嵌入

MCP工具

工具 说明
get_note 获取笔记内容、外发链接和反向链接
search_notes 按文本或正则表达式模式搜索笔记
semantic_search 按含义搜索笔记(自然语言)
find_similar_notes 查找与给定注释类似的注释
get_backlinks 获取链接到特定笔记的所有笔记
get_links 从笔记中获取所有传出链接
get_graph_stats 获取知识图统计

语义搜索行为

  • 长音符由重叠的部分组成;笔记分数在块之间聚合。
  • 每个注释都添加了链接上下文嵌入(外发链接+反向链接)。
  • 结果通过链接邻居(反向链接+传出链接)扩展。
  • 注释如下 archive/ 以及类似日记的笔记(例如。, index, journal/, daily/) 排名略有下降。

发展

make dev
make test