0.0.6 • Published 1 year ago

@aiuluna/knowledge-graph-mcp v0.0.6

Weekly downloads
-
License
MIT
Repository
github
Last release
1 year ago

Knowledge Graph MCP Server

一个基于 Model Context Protocol (MCP) 的知识图谱服务,为 AI 助手提供知识图谱的创建、管理、分析和可视化能力。本服务完全遵循 MCP 标准,可以与支持 MCP 的 AI 助手(如 Claude)无缝集成。

English

核心特性

  • 多种图谱类型: 支持拓扑结构、时间线、变更日志、需求文档、知识库、本体论等多种图谱类型
  • 完整的错误处理: 为常见问题提供清晰的错误信息和处理建议
  • 资源管理: 支持 SVG 和 Markdown 资源的关联和管理
  • 版本状态: 支持草稿、已发布、已归档等多种状态管理

安装与配置

环境要求

  • Node.js >= 16.0.0
  • pnpm >= 7.0.0

配置知识图谱目录

创建一个目录用于存储知识图谱数据,例如:

mkdir ~/knowledge_graph

在 Cursor 中使用

将以下配置添加到 Cursor 的配置文件中:

{
  "mcpServers": {
    "knowledge-graph": {
      "command": "npx",
      "args": [
        "-y",
        "@aiuluna/knowledge-graph-mcp"
      ],
      "env": {
        "KNOWLEDGE_GRAPH_DIR": "/path/to/your/knowledge_graph/dir"
      }
    }
  }
}

注意:

  • KNOWLEDGE_GRAPH_DIR 替换为您实际的知识图谱存储目录路径
  • 可以根据需要指定特定的版本号,如 @0.0.1

在 Claude Desktop 中使用

将以下配置添加到 claude_desktop_config.json 中:

{
  "mcpServers": {
    "knowledge-graph": {
      "command": "npx",
      "args": [
        "-y",
        "@aiuluna/knowledge-graph-mcp"
      ],
      "env": {
        "KNOWLEDGE_GRAPH_DIR": "/path/to/your/knowledge_graph/dir"
      }
    }
  }
}

Prompt 使用指南

项目结构

项目中的 prompt 文件位于 /src/rules/prompts 目录下, 请将该文件拷贝到您 cursor 中并添加为 Agent 模式下的默认 rule(具体请参考 Cursor Rules配置):

.cursor/
  └── rules/
      └── graph-query.mdc    # 知识图谱查询的 prompt 文件

Agent 模式使用

在 Cursor 中使用 Agent 模式时,可以通过以下方式触发知识图谱查询:

  1. 在编辑器中输入 /ck 命令
  2. Agent 将自动调用 @graph-query.mdc 中定义的 prompt
  3. prompt 会执行以下操作:
    • 分析当前上下文
    • 查询相关的知识图谱节点
    • 生成总结性内容
    • 将查询结果整合到对话中

使用示例

  1. 查询特定主题的知识:

    /ck 请查找关于微服务架构的最佳实践
  2. 分析代码依赖关系:

    /ck 分析当前文件的组件依赖关系
  3. 获取项目时间线:

    /ck 显示项目近三个月的重要里程碑
  4. 查询技术栈演进:

    /ck 分析项目技术栈的变更历史

其他的 rules

项目中另有生成手绘风格的 prompt 和生成 markdown 的 prompt 用来生成作为知识图谱的 resources 存储。因 cursor 不支持 prompt 的 mcp 标准,因此本项目使用 tool 的方式获取该规则,您也可以将其与上面的 rules 一样,集成到 cursor 的 rules中去自己修改成期望的风格,并在 cursor Agent 模式下使用。

工具列表

图谱管理

  1. create_graph

    • 创建新的知识图谱
    • 输入参数:
      • name (string): 图谱名称
      • description (string, 可选): 图谱描述
      • type (string): 图谱类型(topology/timeline/changelog/requirement/kb/ontology)
  2. list_graphs

    • 列出所有知识图谱
    • 输入参数:
      • status (string, 可选): 按状态筛选(draft/published/archived)
      • type (string, 可选): 按类型筛选
  3. publish_graph

    • 发布知识图谱
    • 输入参数:
      • graphId (string): 图谱ID

节点管理

  1. add_node

    • 向图谱添加节点
    • 输入参数:
      • graphId (string): 图谱ID
      • type (string): 节点类型
      • name (string): 节点名称
      • description (string, 可选): 节点描述
      • filePath (string, 可选): 关联文件路径
      • metadata (object, 可选): 节点元数据
  2. update_node

    • 更新节点信息
    • 输入参数:
      • graphId (string): 图谱ID
      • nodeId (string): 节点ID
      • name (string, 可选): 新的节点名称
      • description (string, 可选): 新的节点描述
      • filePath (string, 可选): 新的文件路径
      • metadata (object, 可选): 新的元数据
  3. delete_node

    • 删除节点
    • 输入参数:
      • graphId (string): 图谱ID
      • nodeId (string): 节点ID
      • confirmDelete (boolean): 删除确认
  4. get_node_details

    • 获取节点详细信息
    • 输入参数:
      • graphId (string): 图谱ID
      • nodeId (string): 节点ID

边管理

  1. add_edge

    • 添加边
    • 输入参数:
      • graphId (string): 图谱ID
      • type (string): 边类型
      • sourceId (string): 源节点ID
      • targetId (string): 目标节点ID
      • label (string, 可选): 边标签
      • weight (number, 可选): 边权重
      • metadata (object, 可选): 边元数据
  2. update_edge

    • 更新边信息
    • 输入参数:
      • graphId (string): 图谱ID
      • edgeId (string): 边ID
      • label (string, 可选): 新的边标签
      • weight (number, 可选): 新的边权重
      • metadata (object, 可选): 新的元数据
  3. delete_edge

    • 删除边
    • 输入参数:
      • graphId (string): 图谱ID
      • edgeId (string): 边ID
      • confirmDelete (boolean): 删除确认

资源管理

  1. get_creation_guidelines

    • 获取资源创建规范
    • 输入参数:
      • type (string): 规范类型(svg/markdown/all)
    • 详细说明:
      • 用于获取创建 SVG 图形或 Markdown 文档的详细规范
      • SVG 规范包含:手绘风格指南、布局建议、颜色方案、常用组件等
      • Markdown 规范包含:文档结构模板、格式规范、常用语法示例等
      • 建议在创建任何资源前先调用此工具获取规范
  2. save_resource

    • 保存资源
    • 输入参数:
      • graphId (string): 图谱ID
      • nodeId (string, 可选): 关联的节点ID
      • resourceType (string): 资源类型(svg/markdown)
      • title (string): 资源标题
      • description (string, 可选): 资源描述
      • content (string): 资源内容
  3. update_resource

    • 更新资源信息
    • 输入参数:
      • graphId (string): 图谱ID
      • resourceId (string): 资源ID
      • name (string, 可选): 新的资源名称
      • title (string, 可选): 新的资源标题
      • description (string, 可选): 新的资源描述
  4. delete_resource

    • 删除资源
    • 输入参数:
      • graphId (string): 图谱ID
      • resourceId (string): 资源ID
      • confirmDelete (boolean): 删除确认
  5. unlink_resource

    • 解除资源与节点的关联
    • 输入参数:
      • graphId (string): 图谱ID
      • nodeId (string): 节点ID
      • resourceId (string): 资源ID

开发

# 安装依赖
pnpm install

# 开发模式
pnpm dev

# 构建项目
pnpm build

# 运行测试
pnpm test

# 代码检查
pnpm lint

错误处理

服务使用标准的错误处理机制,所有错误都会被记录到 md/error_log.txt 文件中,包含时间戳、错误信息和堆栈跟踪。

许可证

本项目采用 MIT 许可证 - 详见 LICENSE 文件。

0.0.6

1 year ago

0.0.5

1 year ago

0.0.4

1 year ago

0.0.3

1 year ago

0.0.2

1 year ago

0.0.1

1 year ago