Token导航 LogoToken导航TokenDH.com
Azure Schema MCP logo
运维云端未说明官方级别未说明来源级核验

Azure Schema MCP

MCP Server

Azure Schema MCP 服务器是一个提供AI助手发现Azure Log Analytics表结构和Microsoft Graph API结构的服务,通过直接查询实际列名和数据类型,消除了编写KQL查询或调用API时的猜测工作。

工具数

9

提示词数

0

GitHub Stars

0

资源数

0
TypeScriptVS Code云端部署VS Code

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

richardichogan

提供方

richardichogan

最后核验

2026/5/17 20:22

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

Azure架构MCP服务器

一个MCP(模型上下文协议)服务器,为人工智能助手提供发现Azure日志分析表模式和Microsoft Graph API结构的能力。通过允许AI直接查询实际的列名和数据类型,这消除了编写KQL查询或调用API时的猜测。

特性

  • 表架构发现:发现任何日志分析表的列名和类型
  • 查询测试:执行测试KQL查询以查看示例结果
  • 表列表:列出工作区中的所有可用表
  • 图表API反思:发现Microsoft Graph API终结点的属性
  • 智能高速缓存:两层缓存(内存+磁盘)用于快速响应
  • Azure CLI身份验证:使用现有的Azure CLI凭据(或其他DefaultAzureCredentials源)

先决条件

  • Node.js 18或更高版本
  • 带有日志分析工作区的Azure订阅
  • Azure Active Directory租户
  • Azure CLI已安装并通过身份验证 (az login)

安装

  1. 克隆或下载 将此存储库迁移到全局位置:
   cd C:\Users\YourName\Development
   git clone  azure-schema-mcp
   cd azure-schema-mcp
  1. 安装依赖项:
   npm install
  1. 构建TypeScript代码:
   npm run build
  1. 配置环境变量:

复制 .env.example.env:

   cp .env.example .env

编辑 .env 并填写您的Azure详细信息:

   # Your Azure Active Directory tenant ID (GUID)
   AZURE_TENANT_ID=12345678-1234-1234-1234-123456789abc

   # Your Log Analytics workspace ID (GUID)
   AZURE_WORKSPACE_ID=87654321-4321-4321-4321-cba987654321

   # Optional: Cache directories (defaults shown below)
   TOKEN_CACHE_DIR=./.cache
   SCHEMA_CACHE_DIR=./.cache/schemas

身份验证设置

此MCP服务器使用 DefaultAzureCredential 其按顺序自动尝试多种身份验证方法:

  1. 环境变量 (服务负责人)
  2. Azure命令行界面 (az login) - 推荐用于当地发展
  3. Visual Studio Code (如果已登录)
  4. 管理身份 (在Azure中运行时)

快速入门-Azure CLI(推荐)

最简单的身份验证方法是使用Azure CLI:

# Install Azure CLI if not already installed
# Download from: https://aka.ms/installazurecliwindows

# Login to Azure
az login

# Verify your login
az account show

登录后,MCP服务器将自动使用您的Azure CLI凭据。无需设备代码流!

备选方案-服务负责人(生产)

对于生产或CI/CD场景,设置环境变量:

$env:AZURE_CLIENT_ID="your-client-id"
$env:AZURE_CLIENT_SECRET="your-client-secret"
$env:AZURE_TENANT_ID="your-tenant-id"

VS代码集成

要在VS代码中将此MCP服务器与GitHub Copilot一起使用:

  1. 创建或编辑 .vscode/mcp.json 在任何工作空间中:
   {
     "servers": {
       "azure-schema-mcp": {
         "type": "stdio",
         "command": "node",
         "args": ["C:\\Users\\YourName\\Development\\azure-schema-mcp\\build\\index.js"],
         "env": {
           "NODE_ENV": "production"
         }
       }
     }
   }
  1. 重新启动VS Code或重新加载窗口
  1. AI助手现在可以使用以下工具:

可用的MCP工具

1. get_kql_table_schema

发现日志分析表的架构。

参数:

  • tableName (string):表的名称(例如,“QualysHostDetectionV3_CL”)

例子:

User: "What columns are in the SecurityAlert table?"
AI calls: get_kql_table_schema({ tableName: "SecurityAlert" })

退货:

{
  "tableName": "SecurityAlert",
  "columns": [
    { "name": "TimeGenerated", "type": "datetime", "ordinal": 0 },
    { "name": "AlertName", "type": "string", "ordinal": 1 },
    { "name": "Severity", "type": "string", "ordinal": 2 }
  ],
  "discoveredAt": "2025-11-19T10:30:00.000Z",
  "cached": false
}

2. test_kql_query

执行KQL查询并返回示例结果。

参数:

  • query (string):要执行的KQL查询
  • maxRows (数字,可选):要返回的最大行数(默认值:10)

例子:

User: "Show me sample data from SecurityAlert"
AI calls: test_kql_query({ 
  query: "SecurityAlert | project TimeGenerated, AlertName, Severity",
  maxRows: 5
})

3. list_tables

列出日志分析工作区中的所有可用表。

例子:

User: "What tables are available?"
AI calls: list_tables({})

退货:

{
  "tables": [
    "SecurityAlert",
    "SecurityEvent",
    "QualysHostDetectionV3_CL",
    "Heartbeat"
  ],
  "count": 4
}

4. get_graph_api_schema

通过获取示例数据来发现Microsoft Graph API端点的结构。

参数:

  • endpoint (字符串):图形API端点路径(例如,“/security/alerts”)
  • sampleSize (number,可选):要获取的样本记录数(默认值:2)

例子:

User: "What fields does the /security/alerts endpoint return?"
AI calls: get_graph_api_schema({ 
  endpoint: "/security/alerts",
  sampleSize: 2
})

5. refresh_schema

强制刷新表或终结点的缓存架构。

参数:

  • source (字符串):要刷新的表名或API终结点

例子:

User: "Refresh the schema cache for SecurityAlert"
AI calls: refresh_schema({ source: "SecurityAlert" })

6. generate_sdk_code

生成用于查询表的工作Types/JavaScript代码模式。

参数:

  • tableName (string):表的名称(例如,“QualysHostDetectionV3_CL”)
  • framework (字符串,可选):“反应”、“节点”或“内联”(默认值:“内联”)
  • authType (字符串,可选):“msal浏览器”或“默认凭据”(默认值:“msal-browser”)

例子:

User: "Generate React code to query SecurityAlert"
AI calls: generate_sdk_code({ 
  tableName: "SecurityAlert",
  framework: "react",
  authType: "msal-browser"
})

退货: 完整的工作代码,包括导入、身份验证设置、查询执行和错误处理。

7. generate_example_query

根据表模式和操作类型生成KQL查询示例。

参数:

  • tableName (string):表的名称
  • operation (字符串):“simple_select”、“filter”、“aggregation”、“parse_json”或“mv_expand”
  • timeRange (字符串,可选):KQL格式的时间范围(默认值:“30d”)

例子:

User: "Show me how to parse JSON in QualysHostDetectionV3_CL"
AI calls: generate_example_query({ 
  tableName: "QualysHostDetectionV3_CL",
  operation: "parse_json"
})

退货: 使用带有注释的KQL查询来解释每个运算符。

8. detect_table_workspace

测试哪个工作区包含表并返回元数据。

参数:

  • tableName (string):要搜索的表的名称
  • workspaceIds (array,可选):要检查的工作区ID数组

例子:

User: "Which workspace has QualysHostDetectionV3_CL?"
AI calls: detect_table_workspace({ 
  tableName: "QualysHostDetectionV3_CL"
})

退货:

{
  "tableName": "QualysHostDetectionV3_CL",
  "foundIn": [
    {
      "workspaceId": "6f6d3595-d0ef-4469-bc55-1ee067c3cc13",
      "workspaceName": "secondary",
      "hasData": true,
      "rowCount": 27,
      "dateRange": {
        "earliest": "2025-10-20T00:00:00Z",
        "latest": "2025-11-19T10:23:45Z"
      }
    }
  ],
  "notFoundIn": []
}

9. find_working_query_examples

在代码库中搜索现有的工作查询(需要文件系统访问权限)。

参数:

  • tableName (string):要查找示例的表的名称

注: 此工具当前返回一条占位符消息,指示需要访问文件系统。未来的版本可能会与VS Code的工作空间API集成。

代币管理的工作原理

MCP服务器使用自动管理Azure身份验证令牌 DefaultAzureCredential:

  1. 认证:使用Azure CLI凭据(来自 az login)或其他凭证来源
  2. 令牌缓存:令牌被缓存到 .cache/azure-token.json
  3. 自动刷新:每次请求前都会检查令牌,如果在5分钟内到期,则会刷新令牌
  4. 无用户交互:在后台默默工作-非常适合MCP服务器!

缓存目录

模式缓存在两层中:

  • 内存缓存:在当前会话期间快速访问
  • 磁盘缓存:在服务器重新启动之间持续 .cache/schemas/

缓存文件的名称如下:

  • table_SecurityAlert.json (用于表模式)
  • api_security_alerts.json (适用于API架构)

您可以安全地删除 .cache 目录以清除所有缓存。

发展

在开发模式下运行并自动重新加载:

npm run dev

清理构建工件:

npm run clean

故障排除

身份验证错误

如果您看到身份验证错误:

  1. 请确保您已使用Azure CLI登录: az login
  2. 验证您是否有权访问工作区: az monitor log-analytics workspace show --workspace-name --resource-group
  3. 删除 .cache/azure-token.json 清除缓存的令牌
  4. 重新启动MCP服务器

“找不到表”错误

确保:

  • 您的工作区ID在中正确 .env
  • 表名拼写正确(区分大小写)
  • 您具有工作区的读取权限

构建过程中的类型错误

当前版本可能会显示有关索引签名的TypeScript警告。如果服务器正常运行,这些都是不重要的。

用例

此MCP服务器解决了人工智能辅助Azure开发中的常见痛点:

之前:

User: "Query SecurityAlert for high severity alerts"
AI: "SecurityAlert | where SeverityLevel == 'High'"  // Wrong column name!
Result: Error - column 'SeverityLevel' not found

之后:

User: "Query SecurityAlert for high severity alerts"
AI: [calls get_kql_table_schema("SecurityAlert")]
AI: "SecurityAlert | where AlertSeverity == 'High'"  // Correct column name!
Result: Success!

许可证

麻省理工学院

贡献

问题和拉取请求欢迎!

目录标签

目录标签

TypeScriptVS Code云端部署AzureLogAnalytics本地部署MicrosoftGraphAPIKQL查询AI助手数据发现

支持客户端

VS Code

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

token

工具数量(toolCount,工具数)

9

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明token部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP