mcpField
K
kernal-mcp

kernal-mcp

本地服务
github.com/pintomatic记忆与知识25 天前更新

关于 kernal-mcp

Kernal 是面向专业人士的开源知识图谱,可将对话转为相互关联的人员、组织、活动、主题和跟进事项记录。它使用 LLM 提取信息,并将数据存储在本地 SQLite 中,同时提供命令行工具和仪表板。

主要功能

  1. 01基于对话提取实体
  2. 02关联人员、组织和活动
  3. 03模糊匹配以避免重复
  4. 04SQLite 本地数据存储
  5. 05命令行工具和交互式仪表板

适用场景

  1. 01将会议记录整理为关联联系人和活动
  2. 02跟踪跟进事项、负责人和截止日期
  3. 03查看联系人或组织的历史与关系网络
  4. 04以图谱浏览专业关系

MCP 相关

MCP 服务提供记录摄取、实体创建与更正,以及知识图谱查询工具。LLM 解读对话并调用结构化写入工具,Kernal 负责存储和实体匹配。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"pintomatic-kernal": {
"command": "npx",
"args": [
"-y",
"kernal-mcp"
]
}
}
}
启动命令npx -y kernal-mcp

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmkernal-mcp0.2.1

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

Kernal

面向专业人士的开源知识图谱。通过 MCP 从自然对话中自动提取实体和关系。

用自然的方式与 Claude 谈论你的会议、通话和互动。Kernal 会存储人物、组织、主题和关系,构建一个由你掌控的知识图谱。

包含内容(开源)

在自己的机器上本地运行 Kernal 所需的一切:

  • 13 个 MCP 工具 — 数据导入、CRUD、查询、更正(见下方完整列表)
  • SQLite 数据库 — 本地优先,数据永远不会离开你的机器
  • 由大模型驱动的提取 — Claude 阅读文本、决定提取哪些内容,并调用结构化写入工具
  • 实体消歧 — 模糊匹配 + Levenshtein 距离可防止重复
  • CLI — init、serve、status、export
  • 云服务 — 使用 API 密钥进行身份验证、速率限制、CORS 和会话管理的 Express.js 服务
  • 仪表板 — React 应用,包含关系网络图、时间线、行动项和概览
  • 50 个测试 — 全面的测试套件

这是一个功能完备的知识图谱,你可以永久免费自行运行。

Andes 提供的内容(托管服务)

对于需要更多功能的团队和专业人士,Andes 提供:

  • 云托管 — 无需自行托管,即可从任何设备访问你的知识图谱
  • 仪表板 — 基于你的数据提供托管的交互式可视化
  • 多用户 — 团队功能、共享知识库、基于角色的访问控制
  • 入门指导与支持 — 我们会为你完成设置,并帮助团队从第一天起就发挥价值
  • 行业工作流 — 为高管猎寻、咨询和专业服务预先构建的模式

开源核心是引擎。Andes 为其提供基础设施、用户体验和支持。


快速开始

npx kernal-mcp init

这会在 ~/.kernal/kernal.db 创建一个 SQLite 数据库,并打印要添加到 Claude Desktop 的配置。

将以下内容添加到你的 claude_desktop_config.json:

{
  "mcpServers": {
    "kernal": {
      "command": "npx",
      "args": ["-y", "kernal-mcp", "serve"]
    }
  }
}

重启 Claude Desktop。然后自然地开始对话:

“今天我和 Nordvik Energy 的 Jonas Lindberg 共进午餐。他是他们的数字化副总裁。我们讨论了他们的云迁移计划,目标是在 Q3 完成。”

Claude 会提取 Jonas、Nordvik Energy 和云迁移主题,并通过 Kernal 的写入工具存储这些信息。然后你可以询问:

  • “我对 Nordvik Energy 了解多少?” → 提供包含人物、互动和主题的完整简报
  • “我应该跟进联系谁?” → 显示带有负责人和截止日期的待办行动项
  • “列出 Nordvik Energy 的所有人员” → 显示按组织筛选的联系人列表

工作原理

Kernal 使用由大模型驱动的提取模式:

  1. 告诉 Claude 一场会议、通话或互动的情况
  2. Claude 使用原始文本调用 kernal_remember
  3. Kernal 将文本存储为笔记,并返回提取说明和现有实体(用于去重)
  4. Claude 智能地阅读文本,并调用结构化写入工具(kernal_add_person、kernal_add_org、kernal_add_activity 等)
  5. 每次写入都会经过实体消歧,以防止重复
  6. 所有提取决策都由大模型作出,不靠正则表达式猜测

MCP 服务是一个纯粹的数据存储。大模型才是大脑。

MCP 工具

数据导入(写入)
工具描述
kernal_remember存储原始文本,获取提取说明和现有实体列表以便去重
kernal_add_person创建或更新人物(通过姓名模糊匹配自动去重)
kernal_add_org创建或更新组织(自动去重)
kernal_add_activity记录互动,并关联参与者和组织
kernal_add_action创建跟进事项或任务,可选择分配给某个人
kernal_link在任意两个实体(人物、组织或主题)之间建立关系
查询(读取)
工具描述
kernal_recall按关键词搜索知识库中的所有实体类型
kernal_people列出/搜索联系人——按姓名、组织、职位筛选
kernal_orgs列出/搜索组织——按类型、行业筛选
kernal_activities最近的互动——按类型、人员、日期筛选
kernal_actions未完成的后续事项——按状态、负责人、截止日期筛选
kernal_context某个人员或组织的完整简报——时间线、人脉网络、主题
更正
工具描述
kernal_correct更新字段、删除实体、合并重复项或重置数据库

存储内容

对于像 “与 Arctura Tech 的 Sofia Andersen 喝了咖啡。她是他们的销售副总裁。我们讨论了他们向亚太地区扩张的事。我需要在周五之前把合作伙伴提案发给她。” 这样的单段描述,Claude 会调用:

  • kernal_add_person — Sofia Andersen,销售副总裁,任职于 Arctura Tech
  • kernal_add_org — Arctura Tech
  • kernal_add_activity — 咖啡会面,今天,参与者:[Sofia Andersen],组织:[Arctura Tech]
  • kernal_add_action — “向 Sofia 发送合作伙伴提案”,截止日期为周五,负责人:Sofia Andersen
  • kernal_link — Sofia → 任职于 → Arctura Tech

每次调用都是大模型有意做出的结构化决策,而不是通过正则表达式猜测。

CLI 命令

kernal init      Create database + print Claude Desktop config
kernal serve     Start MCP server (stdio transport)
kernal status    Show database stats
kernal export    Export database to a file
kernal help      Show help

控制面板

该仓库包含一个 React 控制面板(dashboard/),提供四个视图:

  • 概览 — 实体数量、联系最紧密的人、活动分类
  • 人脉网络 — 交互式力导向图(人员 + 组织)
  • 时间线 — 按时间顺序排列的活动动态,包含参与者和摘要
  • 事项 — 按紧急程度分组的后续事项(已逾期、本周、即将到期)

自然语言命令栏会将查询路由到相应视图(“显示我的人脉网络” → 图表)。

# Start the cloud API server
KERNAL_API_KEY=your-key KERNAL_DB_PATH=~/.kernal/kernal.db npm run cloud

# Start the dashboard (separate terminal)
cd dashboard && npm run dev

数据模型

Kernal 存储 6 种实体类型,并通过通用关系图将它们连接起来:

People ←→ Organizations
  ↕           ↕
Activities ←→ Topics
  ↕
Actions ←→ Notes

所有实体都可以通过 relationships 表与任意其他实体建立关联,从而支持以下查询:

  • “Sofia 与谁见过面?”(人员 → 活动 → 其他人员)
  • “与 Nordvik Energy 有关的活动中出现了哪些主题?”(组织 → 人员 → 活动 → 主题)
  • “Jonas 和 Arctura Tech 之间有什么关联?”(沿图中的路径查找)

安全性

  • 所有 SQL 查询均使用参数化语句(无注入风险)
  • 使用 API 密钥进行身份验证,并采用恒定时间比较(crypto.timingSafeEqual)
  • CORS 限制为已配置的来源
  • 速率限制(每个 IP 每分钟 120 个请求,可配置)
  • MCP 会话超时(空闲 30 分钟后清除)
  • 代码中不包含密钥——所有配置均通过环境变量设置
  • React 控制面板会自动转义所有渲染的数据(无 XSS 风险)

开发

git clone https://github.com/pintomatic/kernal.git
cd kernal
npm install
npm run build
npm test        # 50 tests
自托管云服务
KERNAL_API_KEY=your-secret KERNAL_DB_PATH=~/.kernal/kernal.db npm run cloud

项目包含一个 Dockerfile。环境变量:

变量默认值描述
KERNAL_DB_PATH~/.kernal/kernal.dbSQLite 数据库路径
KERNAL_API_KEY(云端必需)用于身份验证的 API 密钥
KERNAL_CORS_ORIGINhttp://localhost:5174允许的 CORS 来源(逗号分隔)
KERNAL_RATE_LIMIT120每个 IP 每分钟的最大请求数
PORT3001服务端口
填充演示数据
npx tsx scripts/seed-demo.ts

创建 12 个联系人、18 个组织、19 条活动记录和 123 个关系,构成一个真实的专业服务场景。

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。