Skip to main content
Glama

ms-sentinel-mcp-server

by dstreefkerk

Microsoft Sentinel MCP 服务器

Microsoft Sentinel 的模型上下文协议(MCP) 服务器。此服务器支持对 Microsoft Sentinel 实例的只读访问,包括 Azure Sentinel 环境的高级查询、事件查看和资源探索。它为仅供观察的安全操作和分析提供了一个模块化且可扩展的平台。


⚠️重要安全通知⚠️

仅限测试环境:此 Microsoft Sentinel MCP 服务器仅支持只读操作,仅供测试环境使用。不适用于连接到生产环境的 Sentinel 实例。

隐私警告:将此服务器连接到生产环境 Microsoft Entra ID (Azure AD) 或 Sentinel 环境可能会将敏感用户和目录数据暴露给 LLM 操作员或公共 LLM。请仅用于非生产/测试租户,或支持 MCP 的私有 LLM。

安全警告:将生产环境的 Microsoft Sentinel 实例连接到公共 LLM 会带来严重的隐私和安全风险。请仅使用私有且安全的环境进行生产安全操作。


✨ 特点

  • KQL 查询执行:运行并验证 KQL 查询,使用模拟数据进行测试

  • 日志分析管理:工作区信息、表列表和模式

  • 安全事件:列出并查看详细事件信息

  • 分析规则:通过 MITRE 策略/技术列出、查看和分析

  • 规则模板:通过 MITRE 框架访问和分析模板

  • 狩猎查询:列出、查看详细信息并按策略分析

  • 数据连接器:列出并查看连接器详细信息

  • 监视列表:管理监视列表及其项目

  • 威胁情报:域名 WHOIS 和 IP 地理位置查询

  • 元数据和源代码控制:列出并查看存储库详细信息

  • ML Analytics :访问 ML 分析设置

  • 授权:查看 RBAC 角色分配

  • Entra ID 用户和组:查看 Microsoft Entra ID 中的用户和组详细信息


🚀 快速入门

1. 使用 Azure CLI 进行身份验证

在使用 MCP 服务器之前,您必须已使用有权访问 Microsoft Sentinel 工作区的帐户向 Azure 进行身份验证:

az login

2.克隆存储库

git clone https://github.com/dstreefkerk/ms-sentinel-mcp-server.git cd ms-sentinel-mcp-server

3.使用 PowerShell 脚本安装(推荐)

使用提供的 PowerShell 安装脚本来设置 MCP 服务器:

# Run from the repository root directory .\install.ps1

该脚本将:

  • 检查 Python 安装

  • 创建虚拟环境并安装依赖项

  • 生成 Claude Desktop 配置文件

  • 将配置复制到剪贴板

运行脚本后,您可以将配置直接粘贴到您的 MCP 客户端(Claude Desktop、Cursor 等)中。

4. 使用 MCP 服务器

在您使用相关工作区信息配置了 MCP 客户端配置后,MCP 服务器即可使用。

请记住,如果您使用 Azure CLI 身份验证,则需要从 MCP 客户端配置中删除AZURE_CLIENT_IDAZURE_CLIENT_SECRET


🧰 工具参考

以下是可用的工具。完整文档请参阅resources/tool_docs/目录。工具名称和描述与 MCP 服务器的工具注册表保持同步,以便 MCP 客户端可以检索它们。

工具

类别

描述

entra_id_list_users

恩特拉身份证

列出 Microsoft Entra ID (Azure AD) 中的所有用户

entra_id_get_user

恩特拉身份证

通过 UPN 或对象 ID 从 Entra ID 获取用户

entra_id_list_groups

恩特拉身份证

列出 Microsoft Entra ID (Azure AD) 中的所有组

entra_id_get_group

恩特拉身份证

根据 Entra ID 获取按对象 ID 分组

sentinel_logs_search

知识查询语言

对 Azure Monitor 日志运行 KQL 查询

sentinel_query_validate

知识查询语言

在本地验证 KQL 查询语法

sentinel_logs_search_with_dummy_data

知识查询语言

使用模拟数据测试 KQL 查询

sentinel_logs_tables_list

日志分析

列出 Log Analytics 工作区中的可用表

sentinel_logs_table_details_get

日志分析

获取 Log Analytics 表的详细信息

sentinel_logs_table_schema_get

日志分析

获取 Log Analytics 表的架构

sentinel_workspace_get

日志分析

获取工作区信息

sentinel_incident_details_get

事件

获取有关特定 Sentinel 事件的详细信息

sentinel_incident_list

事件

列出 Microsoft Sentinel 中的安全事件

sentinel_analytics_rule_list

分析规则

列出所有包含关键字段的分析规则

sentinel_analytics_rule_get

分析规则

获取特定分析规则的详细信息

sentinel_analytics_rules_count_by_tactic

分析规则

按策略计数 Sentinel 分析规则

sentinel_analytics_rules_count_by_technique

分析规则

使用 MITRE 技术统计 Sentinel 分析规则

sentinel_analytics_rule_templates_list

规则模板

列出所有 Sentinel 分析规则模板

sentinel_analytics_rule_template_get

规则模板

获取特定的 Sentinel 分析规则模板

sentinel_analytics_rule_templates_count_by_tactic

规则模板

按策略统计 Sentinel 分析规则模板

sentinel_analytics_rule_templates_count_by_technique

规则模板

使用 MITRE 技术统计 Sentinel 分析规则模板

sentinel_hunting_queries_list

打猎

列出所有 Sentinel 搜寻查询(可选过滤)

sentinel_hunting_query_get

打猎

通过名称或 ID 获取 Sentinel 狩猎查询的完整详细信息

sentinel_hunting_queries_count_by_tactic

打猎

按策略计数 Sentinel 搜寻查询

sentinel_connectors_list

数据连接器

列出数据连接器

sentinel_connectors_get

数据连接器

通过ID获取特定的数据连接器

sentinel_watchlists_list

关注列表

列出所有 Sentinel 监视列表

sentinel_watchlist_get

关注列表

获取特定的 Sentinel 监视列表

sentinel_watchlist_items_list

关注列表

列出 Sentinel 监视列表中的所有项目

sentinel_watchlist_item_get

关注列表

从 Sentinel 监视列表中获取特定项目

sentinel_domain_whois_get

威胁情报

获取域名的 WHOIS 信息

sentinel_ip_geodata_get

威胁情报

获取 IP 地址的地理位置数据

sentinel_metadata_list

元数据

列出当前工作区中的所有 Sentinel 元数据

sentinel_metadata_get

元数据

通过 ID 获取特定 Sentinel 元数据的详细信息

sentinel_source_controls_list

源代码控制

列出当前工作区中的所有 Sentinel 源代码控制

sentinel_source_control_get

源代码控制

通过 ID 获取特定 Sentinel 源代码控制的详细信息

sentinel_ml_analytics_settings_list

机器学习分析

列出所有 Sentinel ML 分析设置

sentinel_ml_analytics_setting_get

机器学习分析

通过名称获取特定的 Sentinel ML 分析设置

sentinel_authorization_summary

授权

总结 Sentinel 访问的 Azure RBAC 角色分配

log_analytics_saved_searches_list

已保存的搜索

列出 Log Analytics 工作区中所有已保存的搜索

log_analytics_saved_search_get

已保存的搜索

从 Log Analytics 工作区获取特定的已保存搜索


🛠️ 使用方法

在 Claude Desktop 或类似环境中安装

使用提供的 PowerShell 安装脚本为 Claude Desktop 或其他 MCP 兼容客户端设置 MCP 服务器:

# Run from the repository root directory .\install.ps1

该脚本将:

  1. 检查 Python 安装

  2. 创建虚拟环境并安装依赖项

  3. 运行安装后步骤

  4. 生成 Claude Desktop 配置文件

  5. 将配置复制到剪贴板

运行脚本后,您可以将配置直接粘贴到您的 MCP 客户端(Claude Desktop、Cursor 等)。该脚本会生成与 Claude 兼容的 MCP 服务器配置。如果您要使用其他 MCP 客户端,请记住这一点。

高级安装选项

手动环境设置

如果您希望手动设置环境:

  1. 配置环境变量

    复制提供的模板并填写您的 Azure 凭据:

    cp .env.example .env # Edit .env and set: # AZURE_TENANT_ID, AZURE_CLIENT_ID, AZURE_CLIENT_SECRET, AZURE_SUBSCRIPTION_ID, AZURE_RESOURCE_GROUP, AZURE_WORKSPACE_NAME, AZURE_WORKSPACE_ID
  2. 安装依赖项(使用 uv)

    uv venv uv pip install -e .
  3. 备选服务器运行选项

    使用 MCP CLI:

    mcp run wrapper.py

    开发和热重载:

    mcp dev wrapper.py

    SSE 模式(适用于 IDE):

    python wrapper.py --sse

检查器用户界面

在开发模式( mcp dev wrapper.py )下运行时,MCP Inspector UI 可在http://127.0.0.1:6274上访问。


🧩 开发

  • **资源:**将 Python 文件添加到resources/并实现register_resources(mcp)函数。

  • **工具:**将 Python 文件添加到tools/并实现register_tools(mcp)函数。工具必须遵循docs/tool-architecture-and-implementation-requirements.md中定义的结构。

  • **提示:**将提示模板添加到prompts/用于 LLM 驱动的工作流程。

resources/tools/prompts/目录中的所有组件都会在服务器启动时自动发现并注册。无需手动导入。


🔐 身份验证和环境变量

MCP 服务器支持 Azure Python SDK 的DefaultAzureCredential支持的任何身份验证方法。

服务主体身份验证(而不是 Azure CLI)

在 Azure 中设置应用程序注册并分配以下角色:

  • Log Analytics Reader

  • Microsoft Sentinel Reader

如果您足够勇敢,您还可以授予应用程序注册以下 Microsoft Graph 权限:

  • User.Read.All

  • Group.Read.All

然后,在您的.env文件或 MCP 服务器配置中使用以下环境变量:

  • AZURE_TENANT_ID

  • AZURE_CLIENT_ID

  • AZURE_CLIENT_SECRET

  • AZURE_SUBSCRIPTION_ID

  • AZURE_RESOURCE_GROUP

  • AZURE_WORKSPACE_NAME

  • AZURE_WORKSPACE_ID

请参阅.env.example了解模板。

Azure CLI 身份验证

az login

如果您使用 Azure CLI 身份验证,则可以从配置中省略AZURE_CLIENT_SECRETAZURE_CLIENT_ID


🐛 调试

通过在.env文件中将MCP_DEBUG_LOG环境变量设置为true来启用调试模式:

MCP_DEBUG_LOG=true

日志将以sentinel_mcp_server.log的形式写入您的临时目录。


📄 许可证

该项目已获得MIT 许可

Related MCP Servers

View all related MCP servers

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/dstreefkerk/ms-sentinel-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server