adx-mcp-server

by pab1it0
Verified

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

Integrations

  • Used for loading environment variables from a .env file for configuration of the Azure Data Explorer connection details and authentication credentials.

  • Supports comprehensive testing of the MCP server functionality, including configuration validation, server operation, and error handling tests.

Azure 数据资源管理器 MCP 服务器

Microsoft Fabric 中 Azure 数据资源管理器/Eventhouse 的模型上下文协议(MCP) 服务器。

这可以通过标准化的 MCP 接口访问您的 Azure 数据资源管理器/Eventhouse 集群和数据库,从而允许 AI 助手执行 KQL 查询并探索您的数据。

特征

  • [x] 针对 Azure 数据资源管理器执行 KQL 查询
  • [x] 发现和探索数据库资源
    • [x] 列出已配置数据库中的表
    • [x] 查看表模式
    • [x] 表格中的示例数据
    • [x] 获取表统计信息/详细信息
  • [x] 身份验证支持
    • [x] 令牌凭据支持(Azure CLI、MSI 等)
  • [x] Docker 容器化支持
  • [x] 为AI助手提供交互工具

工具列表是可配置的,因此您可以选择要向 MCP 客户端提供的工具。如果您不使用某些功能,或者不想占用太多上下文窗口空间,此功能非常有用。

用法

  1. 使用 Azure CLI 登录到具有 ADX 群集权限的 Azure 帐户。
  2. 通过.env文件或系统环境变量配置 ADX 集群的环境变量:
# Required: Azure Data Explorer configuration ADX_CLUSTER_URL=https://yourcluster.region.kusto.windows.net ADX_DATABASE=your_database
  1. 将服务器配置添加到客户端配置文件中。例如,对于 Claude Desktop:
{ "mcpServers": { "adx": { "command": "uv", "args": [ "--directory", "<full path to adx-mcp-server directory>", "run", "src/adx_mcp_server/main.py" ], "env": { "ADX_CLUSTER_URL": "https://yourcluster.region.kusto.windows.net", "ADX_DATABASE": "your_database" } } } }

注意:如果您在 Claude Desktop 中看到Error: spawn uv ENOENT ,则可能需要指定uv的完整路径或在配置中设置环境变量NO_UV=1

Docker 使用

该项目包括 Docker 支持,以便于部署和隔离。

构建Docker镜像

使用以下方式构建 Docker 镜像:

docker build -t adx-mcp-server .

使用 Docker 运行

您可以通过多种方式使用 Docker 运行服务器:

直接使用 docker run:

docker run -it --rm \ -e ADX_CLUSTER_URL=https://yourcluster.region.kusto.windows.net \ -e ADX_DATABASE=your_database \ adx-mcp-server

使用docker-compose:

使用您的 Azure 数据资源管理器凭据创建一个.env文件,然后运行:

docker-compose up

在 Claude Desktop 中使用 Docker 运行

要将容器化服务器与 Claude Desktop 一起使用,请更新配置以使用带有环境变量的 Docker:

{ "mcpServers": { "adx": { "command": "docker", "args": [ "run", "--rm", "-i", "-e", "ADX_CLUSTER_URL", "-e", "ADX_DATABASE", "adx-mcp-server" ], "env": { "ADX_CLUSTER_URL": "https://yourcluster.region.kusto.windows.net", "ADX_DATABASE": "your_database" } } } }

此配置通过使用仅带有变量名的-e标志,并在env对象中提供实际值,将环境变量从 Claude Desktop 传递到 Docker 容器。

用作开发容器/GitHub Codespace

此存储库还可用作开发容器,以实现无缝的开发体验。开发容器的安装程序位于devcontainer-feature/adx-mcp-server文件夹中。

有关更多详细信息,请查看devcontainer README

发展

欢迎贡献代码!如果您有任何建议或改进,请提交 issue 或 pull request。

本项目使用uv来管理依赖项。请按照您平台的说明安装uv

curl -LsSf https://astral.sh/uv/install.sh | sh

然后,您可以创建一个虚拟环境并使用以下命令安装依赖项:

uv venv source .venv/bin/activate # On Unix/macOS .venv\Scripts\activate # On Windows uv pip install -e .

项目结构

该项目已采用src目录结构进行组织:

adx-mcp-server/ ├── src/ │ └── adx_mcp_server/ │ ├── __init__.py # Package initialization │ ├── server.py # MCP server implementation │ ├── main.py # Main application logic ├── Dockerfile # Docker configuration ├── docker-compose.yml # Docker Compose configuration ├── .dockerignore # Docker ignore file ├── pyproject.toml # Project configuration └── README.md # This file

测试

该项目包括一个全面的测试套件,可确保功能并有助于防止回归。

使用 pytest 运行测试:

# Install development dependencies uv pip install -e ".[dev]" # Run the tests pytest # Run with coverage report pytest --cov=src --cov-report=term-missing

测试分为:

  • 配置验证测试
  • 服务器功能测试
  • 错误处理测试
  • 主要应用测试

当添加新功能时,请同时添加相应的测试。

工具

工具类别描述
execute_query询问对 Azure 数据资源管理器执行 KQL 查询
list_tables发现列出配置数据库中的所有表
get_table_schema发现获取特定表的架构
sample_table_data发现从具有可选样本大小的表中获取样本数据

执照

麻省理工学院


You must be authenticated.

A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

AI助手通过标准化接口查询和分析Azure Data Explorer数据库。

  1. Features
    1. Usage
      1. Docker Usage
        1. Building the Docker Image
        2. Running with Docker
        3. Running with Docker in Claude Desktop
      2. Using as a Dev Container / GitHub Codespace
        1. Development
          1. Project Structure
            1. Testing
            2. Tools
          2. License
            ID: 1yysyd147h