Skip to main content
Glama
wojtekkura

Purple AI MCP Server

by wojtekkura

Purple AI MCP 서버

License: MIT

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-token

Windows 자격 증명 관리자에 수동으로 토큰 추가

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, ssestreamable-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-http

  • PURPLEMCP_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 플랫폼 지원은 적절한 지원 채널을 사용하십시오.

A
license - permissive license
Not graded
quality - not tested
D
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

  • A
    license
    A
    quality
    B
    maintenance
    Enables 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.
    33
    90
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables natural-language investigation of Datadog data including logs, metrics, monitors, traces, hosts, dashboards, events, and incidents, all through read-only API access.
    2,053
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI assistants read-only access to Sprinklr data via MCP, allowing querying reports, searching cases, and calling Sprinklr API endpoints.
    7
    ISC

View all related MCP servers

Related MCP Connectors

View all MCP Connectors

Latest Blog Posts

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