返回市场
知识图谱助手服务器

知识图谱助手服务器

作者:cosh2 星标更新:2025-07-16

项目介绍

Kusto 图模型助手

构建 MCP 服务器

这是一个提供全面指导和最佳实践的 Model Context Protocol (MCP) 服务器,用于创建和管理 Kusto 图模型。此工具与 Visual Studio Code 中的 GitHub Copilot 完美集成,帮助开发者使用 Azure 数据探索器(Kusto)构建有效的基于图的分析解决方案。

KustoGraphAssistant 是什么?

Kusto 图模型助手是一个智能助手,它可以帮助您:

  • 设计有效的图模式 - 根据您的数据模式获得关于节点、边和关系结构的指导。
  • 优化图性能 - 学习查询优化和高效图模型设计的最佳实践。
  • 简化复杂的模式 - 了解何时以及如何使用属性包、专用列和模式演化。
  • 掌握图匹配查询 - 获得关于使用持久图的图匹配操作符的全面指导。
  • 遵循 KQL 最佳实践 - 学习正确的语法、模式和性能优化技巧。

功能

MCP 服务器提供了几个专门的工具:

🎯 获取图模型最佳实践

涵盖全面的最佳实践包括:

  • 图模型的核心设计原则
  • 模式设计指南和简化策略
  • 性能优化技术
  • 身份图、网络拓扑和流程流的常见模式

📋 获取图命令指导

详细的 KQL 命令指导包括:

  • 图模型创建和管理语法
  • 图匹配操作的查询模式
  • 性能提示和调试策略
  • 常见错误及避免方法

🔧 获取模式简化指导

专门的指导包括:

  • 使用属性包减少模式复杂性
  • ID 类型一致性(始终使用字符串!)
  • 何时使用专用属性与属性包
  • 模式演化的策略

🔍 获取图匹配指导

完整的图匹配操作符参考包括:

  • 模式符号和语法
  • 使用 WHERE 子句进行标签检查
  • 变长边模式
  • 性能优化技术

先决条件

  • .NET 9.0 或更高版本
  • Visual Studio Code
  • Visual Studio Code 的 GitHub Copilot 扩展

安装和设置

1. 克隆并构建项目

git clone https://github.com/cosh/KustoGraphAssistant.git
cd KustoGraphAssistant
dotnet build

2. 在 Visual Studio Code 中配置 MCP 服务器

配置 GitHub Copilot 以在 Visual Studio Code 中使用自定义 MCP 服务器:

  1. 如果尚未打开,请在 Visual Studio Code 中打开您的项目文件夹。

  2. 在项目的根目录下创建一个 .vscode 文件夹。

  3. .vscode 文件夹中添加一个 mcp.json 文件,内容如下:

    {
      "inputs": [],
      "servers": {
        "KustoGraphAssistant": {
          "type": "stdio",
          "command": "dotnet",
          "args": [
            "run",
            "--project",
            "${workspaceFolder}/KustoGraphAssistant.csproj"
          ]
        }
      }
    }
    
  4. 保存文件。

3. 测试 MCP 服务器

  1. 在 Visual Studio Code 中打开 GitHub Copilot 并切换到代理模式。
  2. 选择“选择工具”图标,验证您的 KustoGraphAssistant 是否可用,并列出所有工具。

使用示例

一旦配置完成,您可以通过 GitHub Copilot 与助手互动:

图模型入门

设计用户关系图模型的最佳实践是什么?

模式设计帮助

我应该如何为网络拓扑分析结构化我的图模式?

查询优化

展示如何编写高效的图匹配查询来查找最短路径。

故障排除

我在图模型定义时遇到错误。常见的错误有哪些,如何避免?

关键设计原则

此助手强调了几个重要的原则:

🔤 始终使用字符串 ID

  • 使用 tostring() 将所有节点和边的 ID 转换为字符串类型
  • 防止类型不匹配错误并确保一致性

📦 利用属性包

  • 使用 pack_all() 自动捕获所有属性
  • 仅针对经常过滤的字段创建专用类型属性
  • 模式定义是可选的 - 从简单开始!

⚡ 优化性能

  • 在定义查询中尽早应用过滤器
  • 在图匹配 WHERE 子句中使用特定标签
  • 合适地限制变长路径搜索

🎯 查询模式意识

  • 根据查询模式而不是仅仅数据结构设计您的图模式
  • 使用图匹配进行模式匹配,使用图最短路径进行最优路径
  • 图匹配查询中始终包含项目子句

贡献

欢迎贡献!请随时提交问题、功能请求或拉取请求。

许可证

本项目采用 MIT 许可证 - 详情请参阅 LICENSE 文件。

🔄 数据流与集成

sequenceDiagram
    participant User as 👤 开发者
    participant VSCode as 📝 VS Code
    participant Copilot as 🤖 GitHub Copilot
    participant MCP as 🔌 MCP 服务器
    participant Tools as 🛠️ 图工具
    participant ADX as ☁️ Azure 数据探索器

    User->>VSCode: 打开项目
    VSCode->>Copilot: 激活助手
    Copilot->>MCP: 通过 stdio 连接
    MCP->>Tools: 注册工具方法

    User->>Copilot: 询问关于图模型的问题
    Copilot->>MCP: 调用适当的工具
    MCP->>Tools: 执行工具方法
    Tools-->>MCP: 返回指导/示例
    MCP-->>Copilot: JSON 响应
    Copilot-->>User: 格式化指导

    User->>Copilot: 请求 KQL 示例
    Copilot->>MCP: GetGraphCommandGuidance()
    MCP->>Tools: 生成 KQL 模板
    Tools-->>User: 准备好的 KQL 代码

    User->>ADX: 实现建议
    ADX-->>User: 创建图模型

🧩 工具生态系统

mindmap
  root((🔗 Kusto 图模型助手))
    🎯 最佳实践
      核心原则
      模式设计
      性能
      常见模式
      身份图
      网络拓扑
      流程流
    📋 命令指导
      创建命令
      查询模式
      管理
      性能提示
      常见错误
      调试
    🔧 模式简化
      属性包
      ID 一致性
      专用属性
      演化策略
      查询模式
    🔍 图匹配
      基本语法
      模式符号
      标签检查
      变长
      WHERE 子句
      PROJECT 子句
      示例
      性能

🏗️ 技术架构

架构亮点

  • 模型上下文协议 (MCP) 服务器 - 工具集成的标准接口
  • .NET 9.0 控制台应用程序 - 现代、高性能运行时
  • 依赖注入 使用 Microsoft.Extensions.Hosting 实现干净的架构
  • Stdio 传输 无缝集成 VS Code
  • 程序集扫描 自动发现和注册工具

核心工具

  • GetGraphModelBestPractices - 包括核心原则、模式设计、性能优化和身份图、网络拓扑、流程流的常见模式的综合设计指导。
  • GetGraphCommandGuidance - KQL 命令模板,用于图模型创建、查询模式、管理操作和调试策略。
  • GetSchemaSimplificationGuidance - 包括属性包、ID 一致性、专用属性和演化策略的模式优化指导。
  • GetGraphMatchGuidance - 包括基本语法、模式符号、标签检查、变长路径和性能优化的查询模式示例。

集成点

  • Visual Studio Code 中的 GitHub Copilot - 访问图建模指导的自然语言界面
  • Azure 数据探索器 (Kusto) - 图模型实现的目标平台
  • 图模型和快照 - 持久和瞬态图存储机制
  • KQL (Kusto 查询语言) - 图操作和分析的查询语言
  • 基于 JSON 的工具响应 - 工具通信的结构化数据格式

主要特点

  • 实时指导 对于图建模决策和最佳实践
  • 基于查询模式和数据量的性能优化建议
  • 随着时间维护和更新图模型的模式演化策略
  • 用于常见图操作和模式的现成 KQL 模板
  • 防止常见错误和反模式的最佳实践强制

支持

如果您遇到任何问题或有疑问:

  1. 查看助手提供的常见模式和故障排除指导
  2. 查阅 Azure 数据探索器的 KQL 文档
  3. 在此仓库中提交一个问题

愉快的图建模! 🚀