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. 저장소 복제
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 | 엔트라 ID | Microsoft Entra ID(Azure AD)의 모든 사용자 나열 |
entra_id_get_user | 엔트라 ID | Entra ID에서 UPN 또는 개체 ID로 사용자 가져오기 |
entra_id_list_groups | 엔트라 ID | Microsoft Entra ID(Azure AD)의 모든 그룹 나열 |
entra_id_get_group | 엔트라 ID | Entra ID에서 객체 ID로 그룹화 가져오기 |
sentinel_logs_search | KQL | Azure Monitor 로그에 대해 KQL 쿼리 실행 |
sentinel_query_validate | KQL | 로컬에서 KQL 쿼리 구문 검증 |
sentinel_logs_search_with_dummy_data | KQL | 모의 데이터로 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_list | ML 분석 | 모든 Sentinel ML 분석 설정 나열 |
sentinel_ml_analytics_setting_get | ML 분석 | 이름으로 특정 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 자격 증명을 입력하세요.
- 종속성 설치(uv 사용)
- 대체 서버 실행 옵션MCP CLI 사용:개발 및 핫 리로드:SSE 모드(IDE용):
검사기 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 인증
Azure CLI 인증을 사용하는 경우 구성에서 AZURE_CLIENT_SECRET
및 AZURE_CLIENT_ID
생략할 수 있습니다.
🐛 디버깅
.env
파일에서 MCP_DEBUG_LOG
환경 변수를 true
로 설정하여 디버그 모드를 활성화합니다.
로그는 sentinel_mcp_server.log
라는 이름으로 임시 디렉토리에 기록됩니다.
📄 라이센스
이 프로젝트는 MIT 라이선스 에 따라 라이선스가 부여되었습니다.
This server cannot be installed
remote-capable server
The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.
ms-센티넬-mcp-서버
Related MCP Servers
- Python
- -securityAlicense-qualitySatellite Tracking MCP ServerLast updated -TypeScriptMIT License
- PythonApache 2.0
- TypeScriptMIT License