使用说明

项目简介

本项目实现了一个MCP服务器,充当LLM客户端和Azure Data Explorer (ADX) 之间的桥梁。它允许LLM通过一组预定义的工具访问和查询存储在ADX集群中的数据。

主要功能点

  • 数据访问: 提供对Azure Data Explorer数据库、表(内部表和外部表)以及物化视图的访问能力。
  • 查询执行: 使LLM能够执行Kusto查询语言 (KQL) 查询来检索ADX表中的数据。
  • Schema获取: 允许LLM获取ADX中表和物化视图的结构信息(Schema)。
  • 工具管理: 实现了MCP工具列表和调用功能,与MCP客户端兼容。

安装步骤

  1. 克隆仓库: 在你的本地计算机上运行 'git clone https://github.com/MCP-Mirror/ZZZHDW_mcp-server-kusto' 克隆该仓库。
  2. 进入项目目录: 使用 'cd ZZZHDW_mcp-server-kusto' 命令进入项目目录。
  3. 安装依赖: 根据仓库 'README.md' 的建议,可以使用 'uv pip install .' 或者 'pip install .' 命令安装项目依赖。 (请确保你的环境中已经安装了 'uv' 或 'pip' 包管理器)

服务器配置

要将此MCP服务器与MCP客户端(例如 Claude Desktop)配合使用,你需要配置客户端以启动服务器。以下是 JSON 格式的示例配置,类似于 'README.md' 中提供的配置。重要:请将占位符替换为你的实际值。

{
  "mcpServers": {
    "kusto": {
      "command": "uv",
      "args": [
        "--directory",
        "path/to/ZZZHDW_mcp-server-kusto/src/mcp_server_kusto",  // 替换为你的本地仓库中 'src/mcp_server_kusto' 目录的实际路径
        "run",
        "mcp-server-kusto",
        "--cluster",
        "https://<your_cluster_url>.kusto.windows.net", // 替换为你的ADX集群URL
        "--authority_id",
        "<your_tenant_id>", // 替换为你的Azure租户ID (仅用于需要身份验证的访问)
        "--client_id",
        "<your_client_id>", // 替换为你的Azure客户端ID (仅用于需要身份验证的访问)
        "--client_secret",
        "<your_client_secret>" // 替换为你的Azure客户端密钥 (仅用于需要身份验证的访问)
      ]
    }
  }
}

注意:

  • 如果你使用的是本地 Azure Data Explorer 模拟器 (例如 'http://localhost:8082'),则可以省略 '--authority_id'、'--client_id' 和 '--client_secret' 参数。
  • 确保将占位符(例如 'path/to/ZZZHDW_mcp-server-kusto'、'<your_cluster_url>.kusto.windows.net'、'<your_tenant_id>'、'<your_client_id>' 和 '<your_client_secret>')替换为你的实际路径和凭据。
  • 'command' 设置为 'uv' 是假设你使用 'uv' 作为运行器。根据你的环境进行调整(例如,如果你喜欢直接使用 'python',则可以使用 'python -m mcp_server_kusto.server' 并相应地调整 'args')。
  • '--directory' 参数用于指定 'uv run' 的工作目录。
  • 'mcp-server-kusto' 在 'run' 之后是在 'pyproject.toml' 中定义的入口点(虽然未在此处提供,但这是一个常见的设置)。

基本使用方法

  1. 使用提供的 JSON 配置配置你的 MCP 客户端(如 Claude Desktop),确保你已正确设置路径、集群 URL 和凭据。
  2. 启动 MCP 客户端。它应该会自动在后台启动 Kusto MCP 服务器。
  3. 在你的 MCP 客户端中,你现在应该能够在与 LLM 交互时使用注册的工具(例如,'list_internal_tables'、'execute_query_internal_table' 等)。调用这些工具的具体方式取决于你使用的 MCP 客户端。你通常会在提示中或通过客户端特定的 UI 元素引用工具名称。 例如,在与 LLM 的聊天中,你可能会问“列出数据库 'mydatabase' 中的内部表”,如果配置正确,客户端将使用此服务器提供的 'list_internal_tables' 工具来回答你的请求。

信息

分类

数据库与文件