Integrations
Supports environment variable configuration for authentication and server settings through .env files, allowing secure storage of Azure credentials and server configuration.
Enables access to source control information for Sentinel resources, including listing and viewing repository details for security content managed through source control.
Referenced as the repository hosting location for the MCP server, allowing users to clone and install the server from GitHub.
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 进行身份验证:
2.克隆存储库
3.使用 PowerShell 脚本安装(推荐)
使用提供的 PowerShell 安装脚本来设置 MCP 服务器:
该脚本将:
- 检查 Python 安装
- 创建虚拟环境并安装依赖项
- 生成 Claude Desktop 配置文件
- 将配置复制到剪贴板
运行脚本后,您可以将配置直接粘贴到您的 MCP 客户端(Claude Desktop、Cursor 等)中。
4. 使用 MCP 服务器
在您使用相关工作区信息配置了 MCP 客户端配置后,MCP 服务器即可使用。
请记住,如果您使用 Azure CLI 身份验证,则需要从 MCP 客户端配置中删除AZURE_CLIENT_ID
和AZURE_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 服务器:
该脚本将:
- 检查 Python 安装
- 创建虚拟环境并安装依赖项
- 运行安装后步骤
- 生成 Claude Desktop 配置文件
- 将配置复制到剪贴板
运行脚本后,您可以将配置直接粘贴到您的 MCP 客户端(Claude Desktop、Cursor 等)。该脚本会生成与 Claude 兼容的 MCP 服务器配置。如果您要使用其他 MCP 客户端,请记住这一点。
高级安装选项
手动环境设置
如果您希望手动设置环境:
- 配置环境变量复制提供的模板并填写您的 Azure 凭据:Copy
- 安装依赖项(使用 uv)Copy
- 备用服务器运行选项使用 MCP CLI:开发和热重载:CopySSE 模式(适用于 IDE):CopyCopy
检查器用户界面
在开发模式( 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 身份验证
如果您使用 Azure CLI 身份验证,则可以从配置中省略AZURE_CLIENT_SECRET
和AZURE_CLIENT_ID
。
🐛 调试
通过在.env
文件中将MCP_DEBUG_LOG
环境变量设置为true
来启用调试模式:
日志以sentinel_mcp_server.log
形式写入您的临时目录。
📄 许可证
该项目已获得MIT 许可。
Related MCP Servers
- Python
- Python
- JavaScriptMIT License
- PythonMIT License