项目简介
本项目是 Model Context Protocol (MCP) 服务器的 TypeScript 实现,专为与 Azure Data Explorer (Kusto) 交互而设计。它使得支持 MCP 的 AI 助手能够以标准化的方式访问 Kusto 数据库,查询数据、探索 schema 和调用函数。
主要功能点
- 连接管理:建立并管理与 Azure Data Explorer (ADX) 集群和指定数据库的连接。
- 表和函数探索:提供工具列出数据库中的所有表和函数,并获取它们的详细信息(如表结构、函数代码)。
- 查询执行:执行用户提供的 Kusto Query Language (KQL) 查询。服务器会智能地限制结果集大小,以适应 AI 助手的上下文窗口,并提供结果是否被截断的元数据。
- 认证支持:支持通过 Azure CLI 或 Azure Identity 库进行身份验证。
- 详细指引:包含对 AI 助手的详细交互指引,帮助其理解如何与用户互动并有效利用提供的工具。
安装步骤
- 准备环境:确保您的系统已安装 Node.js 16 或更高版本以及 npm 8 或更高版本。
- Azure 认证:确保您拥有 Azure Data Explorer (Kusto) 集群的访问权限,并且已经通过 Azure CLI ('az login') 或 Azure Identity 库支持的其他方法(如环境变量、Managed Identity 等)进行了身份验证。
- 获取项目:下载或克隆本项目的代码仓库。
- 安装依赖:进入项目目录,运行以下命令安装所有必需的依赖项:
npm install - 构建项目:运行以下命令编译 TypeScript 代码:
npm run build
服务器配置
MCP 客户端(如 Visual Studio Code 的 MCP 扩展或 CLINE 工具)需要通过配置来启动并连接到本 MCP 服务器。本服务器通过标准输入/输出 (stdio) 协议进行通信。
您需要在 MCP 客户端的配置文件中添加本服务器的相关信息。典型的配置需要指定:
- 一个唯一的服务器标识符,例如项目的 GitHub URL 'github.com/johnib/kusto-mcp'。
- 用于启动服务器进程的命令 (command)。对于本项目,通常设置为 'npx'。
- 传递给启动命令的参数列表 (args)。对于本项目,通常设置为 '["-y", "kusto-mcp"]'。
- 服务器使用的连接协议类型 (type),本服务器使用 'stdio'。
- 可选地,您可以设置环境变量 (env) 或配置哪些工具可以自动批准调用。
例如,对于 Visual Studio Code MCP 扩展,您会在 'settings.json' 中添加类似配置;对于 CLINE,您会在 'cline_mcp_settings.json' 中添加。
基本使用方法
本 MCP 服务器设计为由兼容的 MCP 客户端按需启动和管理,无需手动在终端中运行 'npm start' 命令(除非是开发或调试目的)。
配置完成后,当您在 MCP 客户端中使用需要访问 Kusto 的 AI 助手时,客户端会自动启动本项目作为后台服务器,并通过 MCP 协议与其通信。
AI 助手会根据您提出的问题或任务,自动调用服务器提供的工具来获取 Kusto 数据或执行操作:
- 当您首次需要与 Kusto 交互时,AI 助手可能会提示您提供 Kusto 集群的 URL 和数据库名称,然后调用 'initialize-connection' 工具建立连接。
- 如果您询问数据库中有哪些数据,AI 助手会调用 'show-tables' 工具。
- 如果您询问某个表的结构,AI 助手会调用 'show-table' 工具。
- 当您提出具体的数据分析问题时,AI 助手会构建 KQL 查询,并调用 'execute-query' 工具来执行并获取结果。
- 如果您对数据库函数感兴趣,AI 助手会调用 'show-functions' 或 'show-function' 工具。
服务器会处理这些请求并将结果或错误信息返回给 AI 助手,由 AI 助手进一步处理并向您呈现。
信息
分类
数据库与文件