知识图谱MCP服务器
______________________________________________________________________
英语
用TypeScript实现的MCP(模型上下文协议)服务器,用于管理具有实体和关系的知识图。跟踪实体之间的关系,记录随时间的观察结果,并提供强大的搜索功能。
主要特点
- 实体管理:创建、检索和删除具有名称、类型和观察值的实体
- 关系管理:创建和删除实体之间的方向关系
- 观测系统:添加和删除对实体的基于时间的观察
- 搜索功能:按名称、类型或观察值搜索实体
- 坚持:通过JSON文件进行永久数据存储
- 并发控制:安全并发操作处理
- MCP协议:符合标准MCP协议
用法
MCP客户端配置
将服务器添加到Kiro或其他MCP客户端配置文件中:
{
"mcpServers": {
"knowledge-graph": {
"command": "npx",
"args": [
"-y",
"github:YUChoe/knowledge-graph-mcp-server"
]
}
}
}要指定项目路径,请执行以下操作:
{
"mcpServers": {
"knowledge-graph": {
"command": "npx",
"args": [
"-y",
"github:YUChoe/knowledge-graph-mcp-server",
"C:\\Users\\user\\src\\projectdir"
]
}
}
}存储位置
- 指定项目路径: `
/knowledge-graph.json`
- 未指定路径:
~/knowledge-graph.json(用户主目录)
API 文档
服务器提供9个MCP工具:
1.create_entities
创建新实体。
参数:
{
entities: Array
}例子:
{
"entities": [
{
"name": "TypeScript",
"entityType": "programming-language",
"observations": [
"Provides static type system",
"Superset of JavaScript"
]
}
]
}2.创建关系
创建实体之间的关系。
参数:
{
relations: Array
}3.附加观察
将观察结果添加到现有实体中。
参数:
{
observations: Array
}4.删除内容
删除实体和所有关联关系。
参数:
{
entityNames: string[] // Array of entity names to delete
}5.删除观察
从实体中删除具体观察结果。
参数:
{
deletions: Array
}6.删除相关内容
删除特定关系。
参数:
{
relations: Array
}7.读图
阅读整个知识图谱。
参数: 无
8.搜索节点
按名称、类型或观察值搜索实体。
参数:
{
query: string // Search query string
}9.开放节点
按名称检索特定实体。
参数:
{
names: string[] // Array of entity names to retrieve
}错误处理
所有错误都会返回英文和韩文消息:
Error: Entity with name "TypeScript" already exists
"TypeScript" 이름을 가진 엔티티가 이미 존재합니다常见错误类型
- 重复实体:同名实体已存在
- 未找到实体:找不到引用的实体
- 无效参数:缺少必需的参数或类型不匹配
- 文件系统错误:存储文件读/写失败
发展
运行测试
# Run all tests
npm test
# Test watch mode
npm run test:watch项目结构
src/
├── types.ts # Type definitions
├── graph-storage.ts # Storage layer
├── knowledge-graph-manager.ts # Business logic
├── mcp-server.ts # MCP server implementation
└── bin/
└── index.ts # CLI entry point
tests/
├── unit/ # Unit tests
├── property/ # Property-based tests
└── integration/ # Integration tests测试策略
该项目采用双重测试方法:
- 单元测试:验证具体示例和边缘案例
- 基于属性的测试:使用快速检查验证通用属性
许可证
麻省理工学院
贡献
欢迎问题和拉取请求。
______________________________________________________________________
韩语
用TypeScript实现的模型上下文协议(MCP)服务器,管理由实体和关系组成的知识图。跟踪实体之间的关系,记录观察时间,并提供强大的搜索功能。
主要功能
- 实体管理:创建、查询、删除实体,包括名称、类型和观察
- 关系管理:创建和删除图元之间的定向关系
- 观察系统:添加和删除实体的逐小时观察
- 搜索功能:通过名称、类型和观察内容搜索实体
- 永久性:通过JSON文件永久存储数据
- 并发控制:安全的并发操作处理
- MCP协议:符合标准MCP协议
使用方法
MCP客户端设置
将服务器添加到Kiro或其他MCP客户端的配置文件:
{
"mcpServers": {
"knowledge-graph": {
"command": "npx",
"args": [
"-y",
"github:YUChoe/knowledge-graph-mcp-server"
]
}
}
}要指定特定项目路径,请:
{
"mcpServers": {
"knowledge-graph": {
"command": "npx",
"args": [
"-y",
"github:YUChoe/knowledge-graph-mcp-server",
"C:\\Users\\user\\src\\projectdir"
]
}
}
}存储位置
- 指定项目路径时: `
/knowledge-graph.json`
- 未指定路径:
~/knowledge-graph.json(用户主目录)
API文档
服务器提供9种MCP工具:
1.create_entities
创建新图元。
参数:
{
entities: Array
}示例:
{
"entities": [
{
"name": "TypeScript",
"entityType": "programming-language",
"observations": [
"정적 타입 시스템을 제공합니다",
"JavaScript의 상위 집합입니다"
]
}
]
}回复:
[
{
"name": "TypeScript",
"entityType": "programming-language",
"observations": [
"정적 타입 시스템을 제공합니다",
"JavaScript의 상위 집합입니다"
]
}
]2.创建关系
创建图元之间的关系。
参数:
{
relations: Array
}示例:
{
"relations": [
{
"from": "TypeScript",
"to": "JavaScript",
"relationType": "compiles-to"
}
]
}回复:
[
{
"from": "TypeScript",
"to": "JavaScript",
"relationType": "compiles-to"
}
]3.附加观察
向现有图元添加观察。
参数:
{
observations: Array
}示例:
{
"observations": [
{
"entityName": "TypeScript",
"contents": [
"Microsoft에서 개발했습니다",
"2012년에 처음 출시되었습니다"
]
}
]
}4.删除内容
删除与实体相关的所有关系。
参数:
{
entityNames: string[] // 삭제할 엔티티 이름 배열
}示例:
{
"entityNames": ["TypeScript"]
}5.删除观察
从实体中删除特定观察。
参数:
{
deletions: Array
}示例:
{
"deletions": [
{
"entityName": "TypeScript",
"observations": ["2012년에 처음 출시되었습니다"]
}
]
}6.删除相关内容
删除特定关系。
参数:
{
relations: Array
}示例:
{
"relations": [
{
"from": "TypeScript",
"to": "JavaScript",
"relationType": "compiles-to"
}
]
}7.读图
查看整个知识图。
参数: 无
回复:
{
"entities": [
{
"name": "TypeScript",
"entityType": "programming-language",
"observations": ["정적 타입 시스템을 제공합니다"]
}
],
"relations": [
{
"from": "TypeScript",
"to": "JavaScript",
"relationType": "compiles-to"
}
]
}8.搜索节点
按名称、类型和观察内容搜索实体。
参数:
{
query: string // 검색 쿼리 문자열
}示例:
{
"query": "typescript"
}回复:
[
{
"name": "TypeScript",
"entityType": "programming-language",
"observations": ["정적 타입 시스템을 제공합니다"]
}
]9.开放节点
按名称查询特定实体。
参数:
{
names: string[] // 조회할 엔티티 이름 배열
}示例:
{
"names": ["TypeScript", "JavaScript"]
}回复:
[
{
"name": "TypeScript",
"entityType": "programming-language",
"observations": ["정적 타입 시스템을 제공합니다"]
},
{
"name": "JavaScript",
"entityType": "programming-language",
"observations": ["동적 타입 언어입니다"]
}
]错误处理
所有错误都附带英文信息和韩语说明:
Error: Entity with name "TypeScript" already exists
"TypeScript" 이름을 가진 엔티티가 이미 존재합니다主要错误类型
- 重复图元:同名实体已存在
- 无实体:找不到引用的图元
- 无效参数:缺少必需参数或类型不匹配
- 文件系统错误:无法读取/写入保存文件
开发
运行测试
# 모든 테스트 실행
npm test
# 테스트 watch 모드
npm run test:watch项目结构
src/
├── types.ts # 타입 정의
├── graph-storage.ts # 저장소 계층
├── knowledge-graph-manager.ts # 비즈니스 로직
├── mcp-server.ts # MCP 서버 구현
└── bin/
└── index.ts # CLI 진입점
tests/
├── unit/ # 단위 테스트
├── property/ # 속성 기반 테스트
└── integration/ # 통합 테스트测试策略
项目使用双重测试方法:
- 测试单位:验证特定示例和Edge案例
- 基于属性的测试:使用fast-check验证通用属性
许可证
麻省理工学院
贡献
欢迎发布和完整请求。
