Vectra AI MCP Server
Vectra AI MCP 서버
이 프로젝트는 Vectra AI 플랫폼을 위한 MCP 서버를 구현합니다.
Vectra AI MCP란 무엇인가요?
AI 어시스턴트를 Vectra AI 보안 플랫폼에 연결하여 위협 탐지 데이터, 보안 인사이트 및 자동화된 사고 대응 워크플로우에 대한 지능적 분석을 가능하게 하는 MCP 서버입니다. Claude, ChatGPT, Cursor, VS Code 및 기타 MCP 지원 AI 도구와 호환됩니다.
Vectra AI MCP로 무엇을 할 수 있나요?
자연어로 위협 조사
AI 에이전트에서 직접 Vectra 대응 조치 실행
프롬프트를 사용하여 보안 데이터 상관관계 분석
분석을 위한 고급 시각화 동적 구축
자연어로 조사 보고서 생성
설정 - 로컬 호스트
사전 요구 사항
Python 설치 필요한 버전은 .python-version 파일을 확인하세요.
uv 설치 - Python 패키지 관리자
# On macOS/Linux
curl -LsSf https://astral.sh/uv/install.sh | sh
# On Windows
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"
# Or via pip
pip install uv설정 단계
프로젝트 복제/다운로드를 로컬 머신에 수행합니다.
프로젝트 디렉토리로 이동:
cd your-project-directory자격 증명 구성:
옵션 A: 단일 테넌트 (.env 파일)
# Copy the example environment file
cp .env.example .env그런 다음 실제 Vectra AI 플랫폼 자격 증명으로 .env 파일을 편집합니다.
업데이트해야 할 필수 변수:
VECTRA_BASE_URL: Vectra 포털 URLVECTRA_CLIENT_ID: Vectra에서 발급받은 클라이언트 IDVECTRA_CLIENT_SECRET: Vectra에서 발급받은 클라이언트 시크릿
옵션 B: 다중 테넌트 (YAML 구성)
여러 Vectra 테넌트가 있는 경우 YAML 구성 파일을 대신 사용하세요:
cp tenants.yaml.example tenants.yaml그런 다음 테넌트 세부 정보로 tenants.yaml을 편집합니다:
tenants:
- name: prod
base_url: https://prod-tenant.uw2.portal.vectra.ai
client_id: "<prod-client-id>"
client_secret: "<prod-client-secret>"
- name: staging
base_url: https://staging-tenant.uw2.portal.vectra.ai
client_id: "<staging-client-id>"
client_secret: "<staging-client-secret>"각 테넌트는 테넌트 이름이 접두사로 붙은 자체 도구 세트를 가집니다(예: prod_list_detections, staging_list_detections). 사용 가능한 테넌트를 찾기 위해 list_tenants 메타 도구도 추가됩니다.
테넌트별 값은 VECTRA_TENANT_<NAME>_<FIELD> 패턴(예: VECTRA_TENANT_PROD_CLIENT_SECRET)을 사용하여 환경 변수로 재정의할 수 있습니다. 이는 시크릿을 파일에 저장해서는 안 되는 Docker/Kubernetes 환경에서 유용합니다.
가상 환경 생성 및 활성화:
uv venv
# Activate it:
# On macOS/Linux:
source .venv/bin/activate
# On Windows:
.venv\Scripts\activate종속성 설치:
uv sync이 명령은 uv.lock의 정확한 버전을 사용하여 pyproject.toml에 지정된 모든 종속성을 설치합니다.
애플리케이션 실행:
서버는 여러 전송 프로토콜을 지원합니다:
# Run with stdio transport (default, for Claude Desktop)
python server.py
python server.py --transport stdio
# Run with SSE transport (for HTTP-based MCP clients)
python server.py --transport sse --host 0.0.0.0 --port 8000
# Run with streamable-http transport (for production HTTP deployments)
python server.py --transport streamable-http --host 0.0.0.0 --port 8000
# Run with multi-tenant YAML config
python server.py --config tenants.yaml
python server.py -c tenants.yaml --transport sse
# Enable debug logging
python server.py --debug전송 옵션:
stdio: 표준 입/출력 통신 (기본값, Claude Desktop에서 사용)
sse: HTTP를 통한 서버 전송 이벤트 (웹 기반 클라이언트에 적합)
streamable-http: 스트리밍 가능한 HTTP 전송 (프로덕션 HTTP 배포에 권장)
환경 변수: 환경 변수를 사용하여 서버를 구성할 수도 있습니다:
export VECTRA_MCP_TRANSPORT=streamable-http
export VECTRA_MCP_HOST=0.0.0.0
export VECTRA_MCP_PORT=8000
export VECTRA_MCP_DEBUG=true
python server.pyClaude Desktop용 MCP 구성
Claude Desktop에 MCP 서버 추가:
# On macOS:
# Open Claude Desktop configuration file
code ~/Library/Application\ Support/Claude/claude_desktop_config.json
# On Windows:
# Open Claude Desktop configuration file
notepad %APPDATA%/Claude/claude_desktop_config.jsonmcpServers 섹션에 다음 구성을 추가합니다(설정에 맞게 경로를 업데이트하세요):
단일 테넌트:
{
"mcpServers": {
"vectra-ai-mcp": {
"command": "/path/to/your/uv/binary",
"args": [
"--directory",
"/path/to/your/project/directory",
"run",
"server.py"
]
}
}
}다중 테넌트:
{
"mcpServers": {
"vectra-ai-mcp": {
"command": "/path/to/your/uv/binary",
"args": [
"--directory",
"/path/to/your/project/directory",
"run",
"server.py",
"--config",
"tenants.yaml"
]
}
}
}디버그 - uv 설치 경로 찾기:
# Find where uv is installed
which uv
# or
where uv디버그 - 프로젝트 절대 경로 가져오기:
# From your project directory, run:
pwdClaude Desktop을 재시작하여 새로운 MCP 서버 구성을 로드합니다.
기타 MCP 클라이언트 설정
구성이 완료되면 이 MCP 서버를 통해 Claude Desktop이나 다른 MCP 클라이언트 내에서 직접 Vectra AI 플랫폼 기능을 사용할 수 있습니다!
Claude Desktop 이외의 MCP 클라이언트는 아래 문서 링크를 참조하세요:
MCP 클라이언트 | 문서 링크 |
일반 MCP 설정 | |
Cursor | |
VS Code | https://code.visualstudio.com/docs/copilot/chat/mcp-servers#_add-an-mcp-server |
다른 MCP 클라이언트는 해당 문서를 참조하세요. 일반적인 패턴은 비슷합니다. 동일한 구성 구조로 MCP 서버를 실행하기 위한 명령과 인수를 지정해야 합니다.
설정 - Docker 배포
프로덕션 배포나 더 쉬운 설정을 위해 Docker를 사용하여 Vectra AI MCP 서버를 실행할 수 있습니다. 두 가지 옵션을 제공합니다:
옵션 1: 사전 빌드된 이미지 사용 (권장)
시작하는 가장 쉬운 방법은 GitHub Container Registry에서 사전 빌드된 Docker 이미지를 사용하는 것입니다.
사전 요구 사항
Docker Desktop 또는 Docker Engine
빠른 시작 단계
환경 변수 구성:
# Copy the example environment file
cp .env.example .env그런 다음 실제 Vectra AI 플랫폼 자격 증명으로 .env 파일을 편집합니다.
사전 빌드된 이미지로 실행:
스트리밍 가능한 HTTP 전송 (프로덕션 권장)
docker run -d \
--name vectra-mcp-server-http \
--env-file .env \
-e VECTRA_MCP_TRANSPORT=streamable-http \
-e VECTRA_MCP_HOST=0.0.0.0 \
-e VECTRA_MCP_PORT=8000 \
-p 8000:8000 \
--restart unless-stopped \
ghcr.io/vectra-ai-research/vectra-ai-mcp-server:latestSSE 전송 (서버 전송 이벤트)
docker run -d \
--name vectra-mcp-server-sse \
--env-file .env \
-e VECTRA_MCP_TRANSPORT=sse \
-e VECTRA_MCP_HOST=0.0.0.0 \
-e VECTRA_MCP_PORT=8000 \
-p 8000:8000 \
--restart unless-stopped \
ghcr.io/vectra-ai-research/vectra-ai-mcp-server:latestStdio 전송 (로컬 MCP 클라이언트용)
docker run -d \
--name vectra-mcp-server-stdio \
--env-file .env \
-e VECTRA_MCP_TRANSPORT=stdio \
--restart unless-stopped \
ghcr.io/vectra-ai-research/vectra-ai-mcp-server:latest또는 Docker Compose 사용 (대안):
docker-compose.yml 파일을 생성합니다:
version: '3.8'
services:
vectra-mcp-server:
image: ghcr.io/vectra-ai-research/vectra-ai-mcp-server:latest
container_name: vectra-mcp-server
env_file: .env
environment:
- VECTRA_MCP_TRANSPORT=streamable-http
- VECTRA_MCP_HOST=0.0.0.0
- VECTRA_MCP_PORT=8000
ports:
- "8000:8000"
restart: unless-stopped그런 다음 실행합니다:
docker-compose up -d사용 가능한 태그:
latest: 메인 브랜치의 최신 안정 빌드main: 메인 브랜치의 최신 빌드 (latest와 동일)v*: 특정 버전 태그 (예: v1.0.0)
💡 팁: 사전 빌드된 이미지는 코드가 메인 브랜치에 푸시되거나 릴리스에 태그가 지정될 때마다 GitHub Actions를 통해 자동으로 빌드 및 게시됩니다. 이를 통해 로컬에서 빌드할 필요 없이 항상 최신 테스트 버전을 얻을 수 있습니다.
옵션 2: 소스에서 빌드
개발 또는 사용자 정의를 위해 소스에서 Docker 이미지를 빌드할 수 있습니다.
사전 요구 사항
Docker 및 Docker Compose 설치
Docker Desktop (Docker Compose 포함)
또는 Linux에 Docker Engine과 Docker Compose를 별도로 설치
소스에서 빌드 단계
프로젝트 복제/다운로드를 로컬 머신에 수행합니다.
프로젝트 디렉토리로 이동:
cd your-project-directory환경 변수 구성:
# Copy the example environment file
cp .env.example .env그런 다음 실제 Vectra AI 플랫폼 자격 증명으로 .env 파일을 편집합니다.
Docker로 빌드 및 실행:
# Build the image
docker build -t vectra-mcp-server .로컬에서 빌드된 이미지 실행:
전송 모드를 선택하고 로컬에서 빌드된 이미지로 실행합니다:
스트리밍 가능한 HTTP 전송
docker run -d \
--name vectra-mcp-server-http \
--env-file .env \
-e VECTRA_MCP_TRANSPORT=streamable-http \
-e VECTRA_MCP_HOST=0.0.0.0 \
-e VECTRA_MCP_PORT=8000 \
-p 8000:8000 \
--restart unless-stopped \
vectra-mcp-serverSSE 전송
docker run -d \
--name vectra-mcp-server-sse \
--env-file .env \
-e VECTRA_MCP_TRANSPORT=sse \
-e VECTRA_MCP_HOST=0.0.0.0 \
-e VECTRA_MCP_PORT=8000 \
-p 8000:8000 \
--restart unless-stopped \
vectra-mcp-serverStdio 전송
docker run -d \
--name vectra-mcp-server-stdio \
--env-file .env \
-e VECTRA_MCP_TRANSPORT=stdio \
--restart unless-stopped \
vectra-mcp-serverDocker 다중 테넌트 설정
Docker에서 다중 테넌트 모드로 서버를 실행하려면:
tenants.yaml파일을 생성합니다 (tenants.yaml.example참조).컨테이너에 마운트하고
VECTRA_CONFIG_FILE을 설정합니다:
docker run -d \
--name vectra-mcp-server \
-e VECTRA_CONFIG_FILE=/app/tenants.yaml \
-e VECTRA_MCP_TRANSPORT=streamable-http \
-e VECTRA_MCP_HOST=0.0.0.0 \
-e VECTRA_MCP_PORT=8000 \
-v ./tenants.yaml:/app/tenants.yaml:ro \
-p 8000:8000 \
--restart unless-stopped \
ghcr.io/vectra-ai-research/vectra-ai-mcp-server:latestYAML 파일에 저장하는 대신 환경 변수를 통해 테넌트별 시크릿을 주입할 수 있습니다:
docker run -d \
--name vectra-mcp-server \
-e VECTRA_CONFIG_FILE=/app/tenants.yaml \
-e VECTRA_TENANT_PROD_CLIENT_SECRET=<secret> \
-e VECTRA_TENANT_STAGING_CLIENT_SECRET=<secret> \
-v ./tenants.yaml:/app/tenants.yaml:ro \
-p 8000:8000 \
ghcr.io/vectra-ai-research/vectra-ai-mcp-server:latestDocker 환경 변수
Docker 컨테이너는 로컬 설정과 동일한 모든 환경 변수와 추가적인 MCP 서버 구성을 지원합니다:
MCP 서버 구성
VECTRA_MCP_TRANSPORT: 전송 프로토콜 (stdio,sse또는streamable-http) - 기본값:stdioVECTRA_MCP_HOST: HTTP 전송을 위해 바인딩할 호스트 - 기본값:0.0.0.0VECTRA_MCP_PORT: HTTP 전송을 위한 포트 - 기본값:8000VECTRA_MCP_DEBUG: 디버그 로깅 활성화 - 기본값:falseVECTRA_CONFIG_FILE: 다중 테넌트 모드를 위한 YAML 구성 파일 경로 (선택 사항)
다중 테넌트 재정의 변수
YAML 구성 파일을 사용할 때 테넌트별 설정은 환경 변수를 통해 재정의할 수 있습니다:
VECTRA_TENANT_<NAME>_BASE_URLVECTRA_TENANT_<NAME>_CLIENT_IDVECTRA_TENANT_<NAME>_CLIENT_SECRETVECTRA_TENANT_<NAME>_API_VERSIONVECTRA_TENANT_<NAME>_REQUEST_TIMEOUT
여기서 <NAME>은 대문자로 된 테넌트 이름입니다 (예: VECTRA_TENANT_PROD_CLIENT_SECRET).
HTTP 서버 액세스
HTTP 전송(sse 또는 streamable-http)으로 실행할 때 MCP 서버는 다음에서 사용할 수 있습니다:
Streamable HTTP:
http://localhost:8000/mcpSSE:
http://localhost:8000/sse
Docker용 MCP 클라이언트 구성
Docker화된 서버에 연결하는 HTTP 기반 MCP 클라이언트의 경우 적절한 엔드포인트를 사용하세요:
{
"mcpServers": {
"vectra-ai-mcp": {
"transport": {
"type": "http",
"url": "http://localhost:8000/"
}
}
}
}Docker 상태 확인
Docker 컨테이너에는 서버가 제대로 실행 중인지 확인하는 상태 확인 기능이 포함되어 있습니다:
stdio전송의 경우: 항상 정상 보고 (확인할 HTTP 엔드포인트 없음)HTTP 전송의 경우: HTTP 엔드포인트 가용성 확인
참고: MCP(Model Context Protocol)는 새롭게 떠오르는 빠르게 진화하는 기술입니다. 이 서버를 사용할 때는 주의를 기울이고 적절한 자격 증명 관리 및 네트워크 보안 조치를 포함한 보안 모범 사례를 따르세요.
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
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/vectra-ai-research/vectra-ai-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server