ms-sentinel-mcp-server

by dstreefkerk
MIT License
1
  • Linux

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 进行身份验证:

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

ID: q516csqe5y