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에 연결하면 심각한 개인 정보 보호 및 보안 위험이 발생할 수 있습니다. 프로덕션 보안 작업에는 비공개 보안 환경만 사용하십시오.
Related MCP server: Satellite Tracking MCP Server
✨ 특징
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-server3. 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_ID 및 AZURE_CLIENT_SECRET 제거해야 한다는 점을 기억하세요.
🧰 도구 참조
사용 가능한 도구는 다음과 같습니다. 전체 설명서는 resources/tool_docs/ 디렉터리를 참조하세요. 도구 이름과 설명은 MCP 서버의 도구 레지스트리와 동기화되어 MCP 클라이언트에서 검색할 수 있습니다.
도구 | 범주 | 설명 |
| 엔트라 ID | Microsoft Entra ID(Azure AD)의 모든 사용자 나열 |
| 엔트라 ID | Entra ID에서 UPN 또는 개체 ID로 사용자 가져오기 |
| 엔트라 ID | Microsoft Entra ID(Azure AD)의 모든 그룹 나열 |
| 엔트라 ID | Entra ID에서 객체 ID로 그룹화 가져오기 |
| KQL | Azure Monitor 로그에 대해 KQL 쿼리 실행 |
| KQL | 로컬에서 KQL 쿼리 구문 검증 |
| KQL | 모의 데이터로 KQL 쿼리 테스트 |
| 로그 분석 | Log Analytics 작업 공간에서 사용 가능한 테이블 나열 |
| 로그 분석 | Log Analytics 테이블에 대한 세부 정보 가져오기 |
| 로그 분석 | Log Analytics 테이블에 대한 스키마 가져오기 |
| 로그 분석 | 작업 공간 정보 가져오기 |
| 사건 | 특정 Sentinel 사건에 대한 자세한 정보를 얻으세요 |
| 사건 | Microsoft Sentinel에서 보안 사고 나열 |
| 분석 규칙 | 주요 필드가 포함된 모든 분석 규칙 나열 |
| 분석 규칙 | 특정 분석 규칙에 대한 세부 정보 가져오기 |
| 분석 규칙 | 전술별 Count Sentinel 분석 규칙 |
| 분석 규칙 | MITRE 기술을 통한 Count Sentinel 분석 규칙 |
| 규칙 템플릿 | 모든 Sentinel 분석 규칙 템플릿 나열 |
| 규칙 템플릿 | 특정 Sentinel 분석 규칙 템플릿 가져오기 |
| 규칙 템플릿 | 전술별 Count Sentinel 분석 규칙 템플릿 |
| 규칙 템플릿 | MITRE 기술을 사용한 Count Sentinel 분석 규칙 템플릿 |
| 수렵 | 선택적 필터링을 사용하여 모든 Sentinel 사냥 쿼리를 나열합니다. |
| 수렵 | 이름이나 ID로 Sentinel 사냥 쿼리에 대한 전체 세부 정보를 얻으세요 |
| 수렵 | 전술별 센티넬 사냥 쿼리 카운트 |
| 데이터 커넥터 | 데이터 커넥터 목록 |
| 데이터 커넥터 | ID로 특정 데이터 커넥터 가져오기 |
| 관심목록 | 모든 Sentinel 관심목록 나열 |
| 관심목록 | 특정 Sentinel 관심목록 가져오기 |
| 관심목록 | Sentinel 관심 목록에 있는 모든 항목을 나열합니다. |
| 관심목록 | Sentinel 관심 목록에서 특정 항목 가져오기 |
| 위협 정보 | 도메인에 대한 WHOIS 정보 가져오기 |
| 위협 정보 | IP 주소에 대한 지리적 위치 데이터 가져오기 |
| 메타데이터 | 현재 작업 공간의 모든 Sentinel 메타데이터 나열 |
| 메타데이터 | ID로 특정 Sentinel 메타데이터에 대한 세부 정보를 가져옵니다. |
| 소스 제어 | 현재 작업 공간에 있는 모든 Sentinel 소스 컨트롤을 나열합니다. |
| 소스 제어 | ID로 특정 Sentinel 소스 제어에 대한 세부 정보 가져오기 |
| ML 분석 | 모든 Sentinel ML 분석 설정 나열 |
| ML 분석 | 이름으로 특정 Sentinel ML 분석 설정 가져오기 |
| 권한 부여 | Sentinel 액세스를 위한 Azure RBAC 역할 할당 요약 |
| 저장된 검색 | Log Analytics 작업 공간에 저장된 모든 검색 나열 |
| 저장된 검색 | Log Analytics 작업 공간에서 특정 저장된 검색 가져오기 |
🛠️ 사용법
Claude Desktop 또는 유사한 환경에 설치
제공된 PowerShell 설치 스크립트를 사용하여 Claude Desktop 또는 기타 MCP 호환 클라이언트를 위한 MCP 서버를 설정하세요.
# Run from the repository root directory
.\install.ps1스크립트는 다음을 수행합니다.
Python 설치 확인
가상 환경을 생성하고 종속성을 설치합니다.
설치 후 단계 실행
Claude Desktop 구성 파일 생성
구성을 클립보드에 복사합니다.
스크립트를 실행한 후 구성을 MCP 클라이언트(Claude Desktop, Cursor 등)에 직접 붙여넣을 수 있습니다. 이 스크립트는 Claude와 호환되는 MCP 서버 구성을 생성합니다. 다른 MCP 클라이언트를 사용할 경우 이 점을 유의하세요.
고급 설치 옵션
수동 환경 설정
환경을 수동으로 설정하려면 다음을 수행하세요.
환경 변수 구성
제공된 템플릿을 복사하고 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종속성 설치(uv 사용)
uv venv uv pip install -e .대체 서버 실행 옵션
MCP CLI 사용:
mcp run wrapper.py개발 및 핫 리로드:
mcp dev wrapper.pySSE 모드(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 ReaderMicrosoft Sentinel Reader
용기가 있다면 앱 등록에 다음과 같은 Microsoft Graph 권한을 부여할 수도 있습니다.
User.Read.AllGroup.Read.All
그런 다음 .env 파일이나 MCP 서버 구성에서 다음 환경 변수를 사용하세요.
AZURE_TENANT_IDAZURE_CLIENT_IDAZURE_CLIENT_SECRETAZURE_SUBSCRIPTION_IDAZURE_RESOURCE_GROUPAZURE_WORKSPACE_NAMEAZURE_WORKSPACE_ID
템플릿은 .env.example 참조하세요.
Azure CLI 인증
az loginAzure CLI 인증을 사용하는 경우 구성에서 AZURE_CLIENT_SECRET 및 AZURE_CLIENT_ID 생략할 수 있습니다.
🐛 디버깅
.env 파일에서 MCP_DEBUG_LOG 환경 변수를 true 로 설정하여 디버그 모드를 활성화합니다.
MCP_DEBUG_LOG=true로그는 sentinel_mcp_server.log 라는 이름으로 임시 디렉토리에 기록됩니다.
📄 라이센스
이 프로젝트는 MIT 라이선스 에 따라 라이선스가 부여되었습니다.