Purple AI MCP Server
Purple AI MCP 서버
Purple AI MCP 서버를 사용하면 모든 MCP 클라이언트로 SentinelOne 서비스에 액세스할 수 있습니다.
기능
이 서버는 Model Context Protocol을 통해 SentinelOne 플랫폼을 노출합니다:
Purple AI: 보안 질문하기, 위협 조사하기
이벤트: SentinelOne 데이터 레이크의 이벤트에 대해 PowerQuery 실행
알림: 알림 쿼리, 검색 및 조사
취약점: CVE 및 보안 결과 추적
잘못된 구성: 보안 상태 문제 분석
인벤토리: 엔드포인트, 클라우드 리소스, ID 및 네트워크 장치에 대한 질문하기
Purple AI MCP는 읽기 전용 서비스입니다. 이 MCP를 통해 계정이나 계정 내의 어떤 개체도 변경할 수 없습니다.
Related MCP server: Datadog MCP Server
빠른 시작
uv 사용 (로컬 개발 또는 배포 권장)
# Install uv if you don't have it
curl -LsSf https://astral.sh/uv/install.sh | sh
# Store your token securely (one-time setup, see Secure Token Storage below)
uvx --from git+https://github.com/Sentinel-One/purple-mcp.git purple-mcp-store-token
# Set base URL
export PURPLEMCP_CONSOLE_BASE_URL="https://your-console.sentinelone.net"
# Run
uvx --from git+https://github.com/Sentinel-One/purple-mcp.git purple-mcp --mode=stdio⚠️ 보안 참고 사항 ⚠️
프로덕션 또는 보안에 민감한 환경의 경우, 릴리스 또는 main 브랜치의 검증된 커밋에서 공급망 위험을 줄이기 위해 기본 브랜치 대신 특정 커밋 해시를 고정하십시오.
# Run with pinned hash
uvx --from git+https://github.com/Sentinel-One/purple-mcp.git@<commit-hash> purple-mcp --mode=stdio안전한 토큰 저장 (권장)
PURPLEMCP_CONSOLE_TOKEN을 일반 텍스트 구성 파일이나 환경 변수에 보관하는 대신 운영 체제의 자격 증명 관리자에 저장할 수 있습니다. 이는 Windows에서는 Windows 자격 증명 관리자, macOS에서는 키체인, Linux에서는 Secret Service를 사용합니다.
1. 토큰 저장 (1회 설정):
uvx --from git+https://github.com/Sentinel-One/purple-mcp.git purple-mcp-store-token토큰을 입력하고 확인하라는 메시지가 표시됩니다. 입력 내용은 숨겨집니다.
2. 클라이언트 구성 업데이트하여 env에서 PURPLEMCP_CONSOLE_TOKEN을 제거합니다:
{
"mcpServers": {
"purple-mcp": {
"command": "uvx",
"args": ["--from", "git+https://github.com/Sentinel-One/purple-mcp.git", "purple-mcp", "--mode", "stdio"],
"env": {
"PURPLEMCP_CONSOLE_BASE_URL": "https://your-console.sentinelone.net"
}
}
}
}토큰은 시작 시 자격 증명 저장소에서 자동으로 검색됩니다. PURPLEMCP_CONSOLE_TOKEN이 환경 변수로도 설정된 경우 환경 변수가 우선합니다.
저장된 토큰 제거:
uvx --from git+https://github.com/Sentinel-One/purple-mcp.git purple-mcp-delete-tokenWindows 자격 증명 관리자에 수동으로 토큰 추가
purple-mcp-store-token 명령을 실행하지 않고 직접 토큰을 추가하려면 PowerShell을 사용하십시오:
cmdkey /generic:"purple-mcp/PURPLEMCP_CONSOLE_TOKEN" /user:"PURPLEMCP_CONSOLE_TOKEN" /pass:"your-token-here"저장되었는지 확인하려면:
cmdkey /list:purple-mcp*제거하려면:
cmdkey /delete:"purple-mcp/PURPLEMCP_CONSOLE_TOKEN"Docker 사용
# Build the image
docker build -t purple-mcp:latest .
docker run -p 8000:8000 \
-e PURPLEMCP_CONSOLE_TOKEN="your_token" \
-e PURPLEMCP_CONSOLE_BASE_URL="https://your-console.sentinelone.net" \
-e MCP_MODE=streamable-http \
purple-mcp:latest참고: Docker 컨테이너는 호스트 OS 자격 증명 저장소에 액세스할 수 없으므로
PURPLEMCP_CONSOLE_TOKEN을 환경 변수로 전달해야 합니다. 하드코딩을 방지하려면 플랫폼의 비밀 관리(예: Docker secrets, AWS Secrets Manager)를 사용하십시오.
Amazon Bedrock AgentCore 사용
Amazon Bedrock AgentCore 배포 지침은 여기를 따르십시오.
Amazon Elastic Container Service (ECS) 사용
Amazon Elastic Container Service 배포 지침은 여기를 따르십시오.
프로덕션 배포는 배포 가이드를 참조하십시오.
참고: Purple AI MCP에는 내장 인증이 포함되어 있지 않습니다. 네트워크에 노출된 배포의 경우 리버스 프록시나 로드 밸런서 뒤에 배치하십시오. 클라우드 로드 밸런서 구성(AWS ALB, GCP Cloud Load Balancing, Azure Application Gateway) 또는 자체 호스팅 배포를 위한 nginx 예제는 프로덕션 설정을 참조하십시오.
토큰에는 계정 또는 사이트 수준 권한(전역 아님)이 필요합니다. 콘솔의 정책 및 설정 → 사용자 관리 → 서비스 사용자에서 하나를 받으십시오. 현재 이 서버는 단일 계정이나 사이트에 액세스할 수 있는 토큰만 지원합니다. 여러 사이트에 액세스해야 하는 경우 계정별 또는 사이트별 토큰으로 여러 MCP 서버를 실행해야 합니다.
클라이언트
Purple AI MCP는 stdio, sse 및 streamable-http 프로토콜을 지원하며 MCP를 지원하는 모든 클라이언트에서 작동해야 합니다. 일부 샘플 구성은 아래에 나열되어 있습니다.
Claude Desktop
~/Library/Application Support/Claude/claude_desktop_config.json(macOS) 또는 %APPDATA%/Claude/claude_desktop_config.json(Windows)을 편집하십시오:
{
"mcpServers": {
"purple-mcp": {
"command": "uvx",
"args": ["--from", "git+https://github.com/Sentinel-One/purple-mcp.git", "purple-mcp", "--mode", "stdio"],
"env": {
"PURPLEMCP_CONSOLE_BASE_URL": "https://your-console.sentinelone.net"
}
}
}
}Claude Code
터미널에서 다음 명령을 실행하십시오:
claude mcp add --transport stdio purple-mcp --env PURPLEMCP_CONSOLE_BASE_URL=https://your-console.sentinelone.net -- uvx --from git+https://github.com/Sentinel-One/purple-mcp.git purple-mcp --mode stdio
OpenAI Codex
터미널에서 다음 명령을 실행하십시오:
codex mcp add purple-mcp --env PURPLEMCP_CONSOLE_BASE_URL=https://your-console.sentinelone.net -- uvx --from git+https://github.com/Sentinel-One/purple-mcp.git purple-mcp --mode stdio
Pydantic AI
Pydantic AI 에이전트와 함께 Purple MCP를 사용하는 Python 코드 예제입니다.
from pydantic_ai import Agent
from pydantic_ai.mcp import MCPServerStdio
server = MCPServerStdio(
'uvx', args=["--from", "git+https://github.com/Sentinel-One/purple-mcp.git", "purple-mcp", "--mode", "stdio"], timeout=10
)
agent = Agent('anthropic:claude-haiku-4-5', toolsets=[server])Zed
~/.zed/mcp.json을 편집하십시오:
{
"mcpServers": {
"purple-mcp": {
"enabled": true,
"source": "custom",
"command": "uvx",
"args": ["--from", "git+https://github.com/Sentinel-One/purple-mcp.git", "purple-mcp", "--mode", "stdio"],
"env": {
"PURPLEMCP_CONSOLE_BASE_URL": "https://your-console.sentinelone.net"
}
}
}
}기타 클라이언트
디버깅하거나 여러 클라이언트를 위한 서버를 호스팅하려면 streamable-http 모드로 실행하고 mcp-remote를 통해 연결하십시오:
# Terminal 1: Start server
export PURPLEMCP_CONSOLE_BASE_URL="https://your-console.sentinelone.net"
uvx --from git+https://github.com/Sentinel-One/purple-mcp.git purple-mcp --mode streamable-http --host localhost --port 8000
# Terminal 2: Connect with any client
npx -y mcp-remote http://127.0.0.1:8000/mcp현재 인증이 강제되지 않고 구성된 SentinelOne 계정에 누구나 액세스할 수 있으므로 Purple AI MCP를 네트워크에 노출하지 않는 것이 좋습니다.
사용 가능한 도구
Purple AI
purple_ai(query)- 보안 질문하기
데이터 레이크
powerquery(query, start_time, end_time)- PowerQuery 분석 실행
알림
get_alert(alert_id)- 알림 세부 정보 가져오기list_alerts(first, after, view_type)- 최근 알림 나열search_alerts(filters, first)- 필터로 검색get_alert_notes(alert_id)- 알림 댓글 가져오기get_alert_history(alert_id)- 알림 타임라인 보기
취약점
get_vulnerability(id)- 취약점 세부 정보 가져오기list_vulnerabilities(first, after)- 최근 취약점 나열search_vulnerabilities(filters, first)- CVE 및 결과 검색get_vulnerability_notes(id)- 댓글 가져오기get_vulnerability_history(id)- 타임라인 보기
잘못된 구성
get_misconfiguration(id)- 잘못된 구성 세부 정보 가져오기list_misconfigurations(first, after)- 최근 문제 나열search_misconfigurations(filters, first)- 기준별 검색get_misconfiguration_notes(id)- 댓글 가져오기get_misconfiguration_history(id)- 타임라인 보기
자산 인벤토리
get_inventory_item(item_id)- 자산 세부 정보 가져오기list_inventory_items(limit, skip, surface)- 표면 유형별 자산 나열search_inventory_items(filters, limit)- 고급 필터로 검색
환경 변수
PURPLEMCP_CONSOLE_TOKEN- 서비스 사용자 토큰(계정 또는 사이트 수준)PURPLEMCP_CONSOLE_BASE_URL- 콘솔 URL(예: https://console.sentinelone.net)PURPLEMCP_TRANSPORT_MODE- MCP 전송 모드:stdio(기본값),sse또는streamable-httpPURPLEMCP_STATELESS_HTTP- 서버리스 배포(예: Amazon Bedrock AgentCore)를 위한 상태 비저장 HTTP 모드 활성화 - 배포 가이드 참조
개발
풀 리퀘스트나 문제 제출을 환영합니다.
설정
# Install all dependencies
uv sync --group dev --group test
# Format and lint
uv run ruff format
uv run ruff check
uv run mypy테스트
# Run unit tests
uv run pytest tests/unit/ -v
# Run integration tests (requires .env.test with real credentials)
uv run pytest tests/integration/ -v
# All tests with coverage
uv run pytest --cov=src/purple_mcp --cov-report=html문제 해결
인증 오류: 토큰에 계정/사이트 수준 권한(전역 아님)이 있는지, 토큰이 만료되지 않았는지 확인하십시오.
PowerQuery가 예상 결과를 반환하지 않음: 토큰에 계정/사이트 수준 권한(전역 아님)이 있는지 확인하십시오.
연결 실패: 콘솔 URL 및 네트워크 액세스를 확인하십시오. 디버그 로그를 보려면
--verbose를 사용하십시오.
라이선스
이 프로젝트는 MIT 라이선스에 따라 라이선스가 부여됩니다. 자세한 내용은 LICENSE 파일을 참조하십시오.
지원
이 MCP 서버와 관련된 문제는 문제 열기를 수행하십시오.
이 프로젝트는 오픈 소스이며 커뮤니티 주도형입니다. 공식 SentinelOne 제품은 아니지만, 더 넓은 오픈 소스 개발자 커뮤니티와 협력하여 SentinelOne에서 유지 관리합니다. 자세한 내용은 LICENSE 파일을 참조하십시오.
SentinelOne 플랫폼 지원은 적절한 지원 채널을 사용하십시오.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
AlicenseAqualityBmaintenanceEnables MCP clients to interact with SentinelOne's cybersecurity platform for security analysis, threat investigation, and asset management through natural language queries. Provides read-only access to alerts, vulnerabilities, misconfigurations, and inventory data.3390MIT- AlicenseNot gradedqualityDmaintenanceEnables natural-language investigation of Datadog data including logs, metrics, monitors, traces, hosts, dashboards, events, and incidents, all through read-only API access.2,053MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants read-only access to Sprinklr data via MCP, allowing querying reports, searching cases, and calling Sprinklr API endpoints.7ISC
- AlicenseAqualityBmaintenanceEnables natural-language queries about Azure resource compliance, including VM compliance, patch status, orphaned RBAC, and infrastructure health, through read-only MCP tools.3MIT
Related MCP Connectors
Read-only MCP access to sessions, funnels, campaigns, errors, live visitors, and anomalies.
Official Microsoft MCP Server to query Microsoft Entra data using natural language
A paid remote MCP for AI SDK data query MCP, built to return verdicts, receipts, usage logs, and aud
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/wojtekkura/purple-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server