知识管理MCP服务器
模型上下文协议(MCP)服务器,可有效存储和检索业务知识。
特点
- 无智能存储:MCP服务器只负责存储/查询数据
- LLM负责所有智能:LLM执行分析、分类、关键字提取、关系确定和重复检查
- 简单清晰的界面:8个核心工具提供所有功能
- 全文搜索(FTS5):使用SQLite FTS5进行高性能专业搜索
- 关系图:管理节点之间的依赖性、关联性、版本关系等
- 层次结构:通过父子关系支持树结构
安装
安装为NPM
npm install -g knowledge-mcp本地开发
git clone
cd knowledge-mcp
npm install
npm run build用法
与Claude Desktop配合使用
~/.config/claude-code/claude_desktop_config.json 将以下内容添加到文件:
{
"mcpServers": {
"knowledge": {
"command": "npx",
"args": ["-y", "knowledge-mcp"]
}
}
}使用本地开发版本:
{
"mcpServers": {
"knowledge": {
"command": "node",
"args": ["/path/to/knowledge-mcp/dist/index.js"]
}
}
}独立运行
# NPM 설치 버전
npx knowledge-mcp
# 로컬 빌드 버전
node dist/index.js数据库位置
默认情况下,将在以下位置创建数据库:
~/.knowledge-mcp/knowledge.db可将位置更改为环境变量:
KNOWLEDGE_DB_PATH=/custom/path/knowledge.db npx knowledge-mcp提供的工具
1.创建节点
创建新的知识节点。
create_node({
type: "policy", // policy, procedure, decision, knowledge, meeting, template, reference
title: "API 인증 정책",
summary: "모든 API는 OAuth 2.0 인증 필요",
content: "상세 내용...",
keywords: ["API", "인증", "OAuth"],
tags: ["security", "urgent"],
entities: {
people: ["홍길동"],
projects: ["AUTH-2024"],
systems: ["API Gateway"]
},
parent_id: "부모_노드_ID", // 선택사항
source_type: "email",
external_links: [{
type: "dooray_task",
url: "https://...",
title: "관련 태스크"
}]
})2.get_node
使用节点ID查询特定节点。
get_node({ node_id: "노드_ID" })3.update_node
修改现有节点。
update_node({
node_id: "노드_ID",
updates: {
tags: ["security", "urgent", "reviewed"]
}
})4.delete_node
删除节点。
delete_node({ node_id: "노드_ID" })5.搜索节点
使用复合条件搜索节点。
// 텍스트 검색
search_nodes({ query: "API 인증" })
// 분류 필터
search_nodes({
type: "policy",
tags: ["security"],
keywords: ["API", "인증"]
})
// 엔티티 필터
search_nodes({
entities: {
projects: ["AUTH-2024"],
people: ["홍길동"]
}
})
// 시간 필터
search_nodes({
updated_after: "2024-10-01",
sort_by: "updated_at"
})
// 관계 기반 검색
search_nodes({
related_to: {
node_id: "특정_노드_ID",
relation_types: ["depends_on"],
direction: "incoming",
max_hops: 2
}
})6.创建关系
创建两个节点之间的关系。
create_relation({
source_id: "노드_A",
target_id: "노드_B",
relation_type: "depends_on", // depends_on, related_to, supersedes, conflicts_with, implements, references
metadata: {
reason: "배포 전 승인 필요",
strength: 0.9
}
})7.获取相关信息
查询节点的关系。
get_relations({
node_id: "노드_ID",
direction: "both", // incoming, outgoing, both
relation_type: "depends_on" // 선택사항
})8.获取树
查看节点的层次结构。
// 루트 노드들 조회
get_tree({ parent_id: null })
// 특정 노드의 하위 트리
get_tree({
parent_id: "부모_노드_ID",
max_depth: 3
})节点类型
- 政策:法规、政策、合规性
- 程序:流程、流程、工作流
- 决定:决定,选择的理由和背景
- 知识:域知识、技术知识、最佳实践
- 会议:会议记录,讨论内容,动作道具
- 模板:可重复使用的表单、模板
- 参考:参考资料,链接外部文档
关系类型
- 依赖:A需要B(依赖性)
- related_to:相同的主题/上下文(一般关联)
- 取代:A取代B(版本控制)
- 冲突_与:相互矛盾(冲突)
- 实现:A实施B(实施关系)
- 参考文献:A引用B(请参阅)
LLM指南
系统包含指南资源,以帮助LLM有效使用:
- URI:
guide://knowledge-system - 内容:信息存储过程、搜索策略、实战示例
开发
构建
npm run build运行开发模式
npm run dev项目结构
knowledge-mcp/
├── src/
│ ├── index.ts # MCP 서버 엔트리 포인트
│ ├── database/
│ │ ├── db.ts # SQLite 연결 및 초기화
│ │ ├── schema.ts # 테이블/인덱스 생성
│ │ └── queries.ts # SQL 쿼리 함수들
│ ├── tools/
│ │ ├── node-tools.ts # 노드 관련 도구
│ │ ├── search-tools.ts # 검색 도구
│ │ ├── relation-tools.ts # 관계 도구
│ │ └── tree-tools.ts # 트리 도구
│ ├── types/
│ │ └── index.ts # TypeScript 타입 정의
│ └── resources/
│ └── guide.md # LLM 가이드 문서
├── package.json
├── tsconfig.json
└── README.md技术堆栈
- 语言:TypeScript
- 框架:人类MCP SDK(@modelcontextprotocol/SDK)
- 数据库:SQLite3(更好的平方3)
- 全文搜索:SQLite FTS5
许可证
麻省理工学院
贡献
欢迎话题和PR!
今后计划
- \[\]版本控制(节点修改历史记录)
- \[\]自动备份
- \[\]导出/导入数据
- \[\]节点合并功能
- \[\]优化搜索性能
- \[\]缓存层
