使用说明

项目简介

Kusto MCP Server 是一个基于 Model Context Protocol (MCP) 构建的后端服务器,旨在为大型语言模型 (LLM) 应用提供与 Azure Kusto 数据库交互的能力。它允许用户通过自然语言查询 Kusto 数据库,并将查询结果作为资源提供给 LLM 客户端。

主要功能点

  • Kusto 数据访问: 连接并查询 Azure Kusto 数据库,支持执行 Kusto 查询语言 (KQL)。
  • 自然语言查询: 利用 Azure OpenAI 服务将自然语言转换为 KQL 查询,降低用户使用门槛。
  • 资源管理: 将查询结果、CSV 文件等作为资源进行管理,并通过 MCP 协议提供给客户端。
  • 工具注册与执行: 注册并提供 'list-supported-tables', 'generate-kusto-query', 'execute-kusto-query' 等工具,供 LLM 客户端调用。
  • 可配置性: 通过 'settings.yaml' 文件灵活配置 Azure OpenAI 和 Kusto 数据库连接信息以及 Prompt 模板。

安装步骤

  1. 环境准备: 确保已安装 .NET SDK
  2. 下载代码: 克隆 GitHub 仓库 kusto-mcp 到本地。
  3. 构建项目: 在仓库根目录下,打开命令行工具,执行 'dotnet build' 命令编译项目。

服务器配置

MCP 客户端需要配置以下 JSON 信息以连接到 Kusto MCP Server:

{
  "serverName": "kusto-mcp-server",
  "command": "dotnet",
  "args": [
    "path/to/kusto-mcp/src/Server/bin/Debug/net8.0/Server.dll",
    "--settings",
    "path/to/kusto-mcp/settings.yaml"
  ]
}

参数说明:

  • 'serverName': 服务器名称,可自定义。
  • 'command': 启动服务器的命令,这里使用 'dotnet' 运行 .NET 程序。
  • 'args': 启动参数,包括:
    • 'path/to/kusto-mcp/src/Server/bin/Debug/net8.0/Server.dll': 请替换为实际的服务器可执行文件路径。 这是编译后生成的服务器程序。
    • '--settings path/to/kusto-mcp/settings.yaml': 请替换为实际的 'settings.yaml' 文件路径。 指定配置文件路径,用于配置 Azure OpenAI 和 Kusto 连接信息。

'settings.yaml' 配置文件示例 (需要根据实际情况修改):

model:
  endpoint: <Azure OpenAI Endpoint>  # 替换为你的 Azure OpenAI 终结点 URL
  deployment: <Deployment Name>   # 替换为你的 Azure OpenAI 部署名称

kusto:
  - name: mytable                 # 表格名称,用于工具调用时引用
    category: mycategory         # 表格分类,用于工具调用时引用
    database: mydatabase         # Kusto 数据库名称
    table: table                 # Kusto 表名称
    endpoint: https://<your_cluster>.kusto.windows.net  # 替换为你的 Kusto 终结点 URL
    prompts:                     # Prompt 模板,用于自然语言转 KQL
      - type: system
        content: |
          The table contains the following columns:
          * Id: id of the resource
          * Name: name of the resource
          * CreationTime: timestamp when the resource was created
          * LastModified: timestamp when the resource was last modified
          * Owner: owner of the resource
      - type: user
        content: When was the resource 'my resource' created in mycategory/mytable?
      - type: assistant
        content: |
          table
          | where name == 'my resource'
          | project CreationTime
      # ... 更多 Prompt 示例 ...

基本使用方法

  1. 启动服务器: MCP 客户端根据上述配置启动 Kusto MCP Server。
  2. 客户端交互: 通过 MCP 客户端向服务器发送请求,例如:
    • 调用 'list-supported-tables' 工具获取支持的 Kusto 表列表。
    • 调用 'generate-kusto-query' 工具,输入自然语言描述,生成 KQL 查询语句。
    • 调用 'execute-kusto-query' 工具,执行 KQL 查询并获取结果 (JSON 或 CSV 格式)。
    • 使用 MCP 客户端的资源管理功能,订阅、读取服务器提供的查询结果资源。

注意: 首次运行可能需要进行 Azure 身份验证 ('az login' 或确保已登录 VSCode/VS)。

信息

分类

数据库与文件