Back to MCP directory
publicPublicdnsLocal runtime

kusto-mcp

一个可配置的MCP服务器,能够将自然语言转换为Kusto查询并执行。

article

README

🚀 自然语言到Kusto查询的MCP服务器

本项目是一个可配置的MCP服务器,它能够将自然语言转换为Kusto查询,并对Kusto执行这些查询,为用户提供便捷的查询操作体验。

✨ 主要特性

  • 可配置性:支持通过YAML文件进行灵活配置。
  • 查询生成:根据用户提示信息生成Kusto查询。
  • 查询执行:执行生成的Kusto查询并返回结果。
  • 多数据库支持:支持在多个Kusto数据库之间进行切换操作。

📦 安装指南

构建说明

从项目根目录运行以下命令进行构建:

docker build ./src/Server/Dockerfile src

📚 详细文档

工具列表

1. 配置工具

  • 用途:通过YAML文件进行配置。
  • 输入参数
    • endpoint:指定Kusto集群的终结点。
    • appidappkey:用于身份验证的凭据。

2. 查询生成工具

  • 用途:根据提示生成Kusto查询。
  • 输入参数
    • prompt:用户提供的提示信息。
    • context(可选):上下文信息,以JSON格式提供。
    • options(可选):选项信息,同样以JSON格式提供。

3. 执行查询工具

  • 用途:执行Kusto查询并返回结果。
  • 输入参数
    • query:要执行的查询语句。
    • context(可选):上下文信息,以JSON格式提供。
    • options(可选):选项信息,同样以JSON格式提供。

4. 多数据库支持工具

  • 用途:支持在多个Kusto数据库之间切换。
  • 输入参数
    • database:指定要操作的数据库名称。

使用说明

环境变量引用

在配置文件中,您可以引用以下环境变量:

{
  "endpoint": "your-kusto-endpoint",
  "appid": "${env:AZURE_CLIENT_ID}",
  "appkey": "${env:AZURE_CLIENT_SECRET}"
}

模型配置示例

{
  "model": {
    "type": "openai",
    "config": {
      "temperature": 0.7,
      "max_tokens": 1000,
      "api_key": "${env:AZURE_OPENAI_KEY}"
    }
  },
  "kusto": {
    "clusters": {
      "your-cluster-name": {
        "endpoint": "https://your-kusto-endpoint",
        "appid": "${env:AZURE_CLIENT_ID}",
        "appkey": "${env:AZURE_CLIENT_SECRET}"
      }
    }
  }
}

Kusto配置示例

clusters:
  your-cluster-name:
    endpoint: https://your-kusto-endpoint
    auth:
      appid: your-app-id
      appkey: your-app-key

VS Code中的使用

.vscode/mcp.json中添加以下内容:

{
  "inputs": [
    {
        "type": "promptString",
        "id": "azure-open-ai-key",
        "description": "请输入您的Azure OpenAI密钥",
        "password": true
    },
    {
        "type": "promptString",
        "id": "kusto-token",
        "description": "请输入您的Kusto令牌",
        "password": true
    }
  ],
  "kusto": {
    "type": "stdio",
    "command": "docker",
    "args": [
        "run",
        "-i",
        "--rm",
        "-v",
        "/path/to/settings.yaml:/app/settings.yaml", // 输入settings.yaml文件的路径。可以使用VSCode变量
        // 包括在settings.yaml文件中引用的环境变量
        "-e",
        "AZURE_OPENAI_KEY",
        "-e",
        "KUSTO_ACCESS_TOKEN",
        "alexeyler/kusto-mcp-server",
    ],
    "env": {
        "AZURE_OPENAI_KEY": "${input:azure-open-ai-key}",
        "KUSTO_ACCESS_TOKEN": "${input:kusto-token}",
    }
  }
}

⚠️ 重要提示

  • 请确保所有endpointURL正确且可访问。
  • 请更新prompts部分以包含相关查询和说明,内容越详细越好。
  • 建议使用提供的示例配置作为模板来创建自己的settings.yaml文件。
help

Runtime guide

cloud

Hosted runtime

Hosted servers run from a provider-managed environment. You usually connect the MCP client to the hosted endpoint or follow the provider's authorization flow, without keeping a local process alive

  1. Open provider connection page
  2. Authorize or copy endpoint
  3. Connect from your MCP client
terminal

Local runtime / other methods

Local servers run on your own machine or infrastructure. You normally copy the server_config into your MCP client, install the required package, and provide env variables from env_schema when needed

  1. Copy server_config
  2. Install required package
  3. Fill env variables and restart client