Kusto图形助手

一个模型上下文协议(MCP)服务器,为创建和管理Kusto图模型提供全面的指导和最佳实践。此工具与Visual Studio Code中的GitHub Copilot无缝集成,以帮助开发人员使用Azure Data Explorer(Kusto)构建有效的基于图的分析解决方案。
KustoGraphAssistant是什么?
Kusto Graph Assistant是一款智能助手,可帮助您:
- 设计有效的图形模式 -获取基于数据模式构建节点、边和关系的指导
- 优化图形性能 -学习查询优化和高效图模型设计的最佳实践
- 简化复杂的模式 -了解何时以及如何使用属性包、专用列和模式演化
- 主图匹配查询 -获取有关使用持久图的图匹配运算符的全面指导
- 遵循KQL最佳实践 -学习正确的语法、模式和性能优化技术
特性
MCP服务器提供了几个专用工具:
🎯 GetGraphModel最佳实践
全面的最佳实践涵盖:
- 图模型的核心设计原则
- 模式设计指南和简化策略
- 性能优化技术
- 标识图、网络拓扑和流程流的常见模式
📋 GetGraphCommandGuidance
KQL命令的详细指南包括:
- 图形模型创建和管理语法
- 图匹配操作的查询模式
- 性能提示和调试策略
- 常见错误以及如何避免
🔧 GetSchemaSimplification指南
以下方面的专业指导:
- 使用属性包降低模式复杂性
- ID类型一致性(始终使用字符串!)
- 何时使用专用物业与物业袋
- 模式演化策略
🔍 GetGraphMatch指南
图形匹配运算符的完整参考:
- 模式符号和语法
- 使用WHERE子句进行标签检查
- 可变长度边缘图案
- 性能优化技术
先决条件
- .NET 9.0或更高版本
- Visual Studio Code
- VS代码的GitHub Copilot扩展
安装和设置
1.克隆并构建项目
git clone https://github.com/cosh/KustoGraphAssistant.git
cd KustoGraphAssistant
dotnet build2.在Visual Studio代码中配置MCP服务器
为Visual Studio代码配置GitHub Copilot以使用自定义MCP服务器:
- 如果还没有,请在Visual Studio Code中打开项目文件夹。
- 创建一个
.vscode项目根目录下的文件夹。
- 添加一个
mcp.json文件在.vscode包含以下内容的文件夹:
{
"inputs": [],
"servers": {
"KustoGraphAssistant": {
"type": "stdio",
"command": "dotnet",
"args": [
"run",
"--project",
"${workspaceFolder}/KustoGraphAssistant.csproj"
]
}
}
}- 保存文件。
3.测试MCP服务器
- 在Visual Studio Code中打开GitHub Copilot并切换到代理模式。
- 选择 选择工具 图标以验证您的 KustoGraphAssistant 已列出所有工具。
使用示例
配置后,您可以通过GitHub Copilot与助手交互:
图形模型入门
What are the best practices for designing a graph model for user relationships?架构设计帮助
How should I structure my graph schema for network topology analysis?查询优化
Show me how to write efficient graph-match queries for finding shortest paths.故障排除
I'm getting errors with my graph model definition. What are common mistakes to avoid?关键设计原则
这位助理强调了几个重要原则:
🔤 始终使用字符串ID
- 使用将所有节点和边ID转换为字符串类型
tostring() - 防止类型不匹配错误并确保一致性
📦 利用物业袋
- 使用
pack_all()自动捕获所有属性 - 仅为频繁筛选的字段创建专用类型化属性
- 模式定义是可选的-从简单开始!
⚡ 优化性能
- 在定义查询的早期应用筛选器
- 在图形匹配WHERE子句中使用特定标签
- 适当限制可变长度路径搜索
🎯 查询模式感知
- 根据查询模式而不仅仅是数据结构设计图形模式
- 使用图匹配进行模式匹配,使用图最短路径进行最佳路径
- 在图匹配查询中始终包含项目子句
贡献
欢迎投稿!请随时提交问题、功能请求或拉取请求。
许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
🔄 数据流和集成
sequenceDiagram
participant User as 👤 Developer
participant VSCode as 📝 VS Code
participant Copilot as 🤖 GitHub Copilot
participant MCP as 🔌 MCP Server
participant Tools as 🛠️ Graph Tools
participant ADX as ☁️ Azure Data Explorer
User->>VSCode: Opens project
VSCode->>Copilot: Activates assistant
Copilot->>MCP: Connects via stdio
MCP->>Tools: Registers tool methods
User->>Copilot: Asks about graph models
Copilot->>MCP: Calls appropriate tool
MCP->>Tools: Executes tool method
Tools-->>MCP: Returns guidance/examples
MCP-->>Copilot: JSON response
Copilot-->>User: Formatted guidance
User->>Copilot: Requests KQL examples
Copilot->>MCP: GetGraphCommandGuidance()
MCP->>Tools: Generates KQL templates
Tools-->>User: Ready-to-use KQL code
User->>ADX: Implements suggestions
ADX-->>User: Creates graph models🧩 工具生态系统
mindmap
root((🔗 Kusto Graph Assistant))
🎯 Best Practices
Core Principles
Schema Design
Performance
Common Patterns
Identity Graphs
Network Topology
Process Flows
📋 Command Guidance
Creation Commands
Query Patterns
Management
Performance Tips
Common Mistakes
Debugging
🔧 Schema Simplification
Property Bags
ID Consistency
Dedicated Properties
Evolution Strategy
Query Patterns
🔍 Graph Match
Basic Syntax
Pattern Notation
Label Checking
Variable Length
WHERE Clause
PROJECT Clause
Examples
Performance🏗️ 技术架构
建筑亮点
- 模型上下文协议(MCP)服务器 -工具集成的标准化接口
- .NET 9.0控制台应用程序 -现代高性能运行时
- 依赖注入 微软。扩展。托管干净的架构
- 标准运输 实现无缝VS代码集成
- 装配扫描 用于自动工具发现和注册
核心工具
- GetGraphModel最佳实践 -全面的设计指南,涵盖核心原则、模式设计、性能优化以及身份图、网络拓扑和流程的常见模式
- GetGraphCommandGuidance -用于图形模型创建、查询模式、管理操作和调试策略的KQL命令模板
- GetSchemaSimplification指南 -模式优化指南,包括属性包、ID一致性、专用属性和演化策略
- GetGraphMatch指南 -查询模式示例,涵盖基本语法、模式符号、标签检查、可变长度路径和性能优化
集成点
- VS代码中的GitHub副本 -用于访问图形建模指南的自然语言界面
- Azure数据浏览器(Kusto) -图模型实现的目标平台
- 图形模型和快照 -持久和瞬态图形存储机制
- Kusto查询语言 -用于图形操作和分析的查询语言
- 基于JSON的工具响应 -用于工具通信的结构化数据格式
主要特点
- 实时引导 用于图形建模决策和最佳实践
- 性能优化建议 基于查询模式和数据量
- 模式演化策略 用于随着时间的推移维护和更新图模型
- 即用型KQL模板 用于常见的图形操作和模式
- 最佳实践执行 防止常见错误和反模式
支持
如果您遇到任何问题或有疑问:
- 检查助手提供的常见模式和故障排除指南
- 查看Azure数据资源管理器的KQL文档
- 在此存储库中提交问题
______________________________________________________________________
快乐的图形建模! 🚀
