Skip to main content
Glama

ms-sentinel-mcp-server

by dstreefkerk

Microsoft Sentinel MCP 서버

Microsoft Sentinel용 모델 컨텍스트 프로토콜 (MCP) 서버입니다. 이 서버는 Azure Sentinel 환경에서 고급 쿼리, 인시던트 보기, 리소스 탐색 등 Microsoft 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 분석 : ML 분석 설정에 액세스
  • 권한 부여 : RBAC 역할 할당 보기
  • Entra ID 사용자 및 그룹 : Microsoft Entra ID에서 사용자 및 그룹 세부 정보 보기

🚀 빠른 시작

1. Azure CLI로 인증

MCP 서버를 사용하려면 먼저 Microsoft Sentinel 작업 영역에 액세스할 수 있는 계정으로 Azure에 인증해야 합니다.

지엑스피1

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엔트라 IDMicrosoft Entra ID(Azure AD)의 모든 사용자 나열
entra_id_get_user엔트라 IDEntra ID에서 UPN 또는 개체 ID로 사용자 가져오기
entra_id_list_groups엔트라 IDMicrosoft Entra ID(Azure AD)의 모든 그룹 나열
entra_id_get_group엔트라 IDEntra ID에서 객체 ID로 그룹화 가져오기
sentinel_logs_searchKQLAzure Monitor 로그에 대해 KQL 쿼리 실행
sentinel_query_validateKQL로컬에서 KQL 쿼리 구문 검증
sentinel_logs_search_with_dummy_dataKQL모의 데이터로 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분석 규칙전술별 Count Sentinel 분석 규칙
sentinel_analytics_rules_count_by_technique분석 규칙MITRE 기술을 통한 Count Sentinel 분석 규칙
sentinel_analytics_rule_templates_list규칙 템플릿모든 Sentinel 분석 규칙 템플릿 나열
sentinel_analytics_rule_template_get규칙 템플릿특정 Sentinel 분석 규칙 템플릿 가져오기
sentinel_analytics_rule_templates_count_by_tactic규칙 템플릿전술별 Count Sentinel 분석 규칙 템플릿
sentinel_analytics_rule_templates_count_by_technique규칙 템플릿MITRE 기술을 사용한 Count Sentinel 분석 규칙 템플릿
sentinel_hunting_queries_list수렵선택적 필터링을 사용하여 모든 Sentinel 사냥 쿼리를 나열합니다.
sentinel_hunting_query_get수렵이름이나 ID로 Sentinel 사냥 쿼리에 대한 전체 세부 정보를 얻으세요
sentinel_hunting_queries_count_by_tactic수렵전술별 센티넬 사냥 쿼리 카운트
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_listML 분석모든 Sentinel ML 분석 설정 나열
sentinel_ml_analytics_setting_getML 분석이름으로 특정 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

검사기 UI

MCP Inspector UI는 개발 모드( mcp dev wrapper.py )에서 실행할 때 http://127.0.0.1:6274 에서 사용할 수 있습니다.


🧩 개발

  • 리소스: Python 파일을 resources/ 에 추가하고 register_resources(mcp) 함수를 구현합니다.
  • 도구: tools/ 에 Python 파일을 추가하고 register_tools(mcp) 함수를 구현합니다. 도구는 docs/tool-architecture-and-implementation-requirements.md 에 정의된 구조를 따라야 합니다.
  • 프롬프트: LLM 기반 워크플로에 대한 프롬프트 템플릿을 prompts/ 에 추가합니다.

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