关于 kernal-mcp
Kernal 是面向专业人士的开源知识图谱,可将对话转为相互关联的人员、组织、活动、主题和跟进事项记录。它使用 LLM 提取信息,并将数据存储在本地 SQLite 中,同时提供命令行工具和仪表板。
主要功能
- 01基于对话提取实体
- 02关联人员、组织和活动
- 03模糊匹配以避免重复
- 04SQLite 本地数据存储
- 05命令行工具和交互式仪表板
适用场景
- 01将会议记录整理为关联联系人和活动
- 02跟踪跟进事项、负责人和截止日期
- 03查看联系人或组织的历史与关系网络
- 04以图谱浏览专业关系
MCP 相关
MCP 服务提供记录摄取、实体创建与更正,以及知识图谱查询工具。LLM 解读对话并调用结构化写入工具,Kernal 负责存储和实体匹配。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
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 使用由大模型驱动的提取模式:
- 告诉 Claude 一场会议、通话或互动的情况
- Claude 使用原始文本调用
kernal_remember - Kernal 将文本存储为笔记,并返回提取说明和现有实体(用于去重)
- Claude 智能地阅读文本,并调用结构化写入工具(
kernal_add_person、kernal_add_org、kernal_add_activity等) - 每次写入都会经过实体消歧,以防止重复
- 所有提取决策都由大模型作出,不靠正则表达式猜测
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 Techkernal_add_org— Arctura Techkernal_add_activity— 咖啡会面,今天,参与者:[Sofia Andersen],组织:[Arctura Tech]kernal_add_action— “向 Sofia 发送合作伙伴提案”,截止日期为周五,负责人:Sofia Andersenkernal_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.db | SQLite 数据库路径 |
KERNAL_API_KEY | (云端必需) | 用于身份验证的 API 密钥 |
KERNAL_CORS_ORIGIN | http://localhost:5174 | 允许的 CORS 来源(逗号分隔) |
KERNAL_RATE_LIMIT | 120 | 每个 IP 每分钟的最大请求数 |
PORT | 3001 | 服务端口 |
填充演示数据
npx tsx scripts/seed-demo.ts
创建 12 个联系人、18 个组织、19 条活动记录和 123 个关系,构成一个真实的专业服务场景。
许可证
MIT
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。