使用说明
哨兵MCP服务器
哨兵 是一个强大的企业级安全MCP(模型上下文协议)服务器,旨在提高可靠性、合规性,并易于与VS Code和Antigravity等IDE集成。
🛡️ 特性
- 稳健的执行:Docker命令的自动重试、优雅的超时处理和自定义错误报告。
- 合规就绪:内置支持 CIS基准 通过Trivy进行扫描。
- 结构化日志记录:所有日志都以JSON格式输出,便于解析和监控。
- Docker化工具:在隔离的Docker容器中运行所有安全工具,无需安装本地工具。
🧰 包含的工具
| 工具 | 功能 | Docker镜像 |
|---|---|---|
| Semgrep | SAST(静态分析) | returntocorp/semgrep (规则:OWASP前10名、CWE前25名、安全审计) |
| Trivy | SCA与合规 | aquasec/trivy |
| Grype | SCA(漏洞扫描) | anchore/grype |
| Gitleaks | 秘密扫描 | zricethezav/gitleaks |
| OWASP ZAP | DAST(网络扫描) | owasp/zap2docker-stable |
| 病毒检测 | 恶意软件扫描 | clamav/clamav |
| 图式假设 | API引信 | schemathesis/schemathesis:stable |
| EOL扫描仪 | 运行时/框架EOL检查 | 内置(API内置日期) |
| 加密扫描程序 | SSL/TLS合规性 | drwetter/testssl.sh |
| AI威胁建模器 | 条纹分析 | 内置(LLM驱动+代码上下文+Mermaid DFD) |
🚀 入门指南
先决条件
- 码头工人:必须安装并运行。
- python:版本3.13或更高版本。
安装
-
克隆仓库 (如果适用)或导航到项目目录:
cd sentinel-mcp-server -
创建虚拟环境:
python3 -m venv .venv source .venv/bin/activate -
安装依赖项:
pip install .
运行服务器
要手动启动MCP服务器(用于测试):
mcp run python src/sentinel/server.py
手动扫描(CLI)
您还可以使用附带的实用程序脚本直接从终端扫描任何项目目录:
# Scan a specific project directory
python3 scan_project.py /path/to/your/project
# Run only specific scans (e.g., secrets)
python3 scan_project.py /path/to/your/project --type secrets
💻 IDE配置
VS Code
使用Sentinel MCP服务器 在VS Code中添加扩展名,将以下内容添加到MCP设置文件中(通常 ~/Library/Application Support/Code/User/globalStorage/mcp-servers.json):
{
"mcpServers": {
"sentinel": {
"command": "/Users/pranjalsharma/Documents/SourceCode/appsec/sentinel-mcp-server/.venv/bin/python3",
"args": [
"/Users/pranjalsharma/Documents/SourceCode/appsec/sentinel-mcp-server/src/sentinel/server.py"
],
"env": {
"SENTINEL_LOG_LEVEL": "INFO"
}
}
}
}
替换 /ABSOLUTE/PATH/TO/... 带有项目目录的实际完整路径。
⚙️ 配置
您可以使用环境变量配置Sentinel:
| 变量 | 描述 | 默认值 |
|---|---|---|
SENTINEL_LOG_LEVEL |
日志记录级别(调试、信息、警告、错误) | INFO |
SENTINEL_DOCKER_TIMEOUT |
Docker命令超时(秒) | 600 |
SENTINEL_SEMGREP_IMAGE |
Semgrep的自定义Docker镜像 | returntocorp/semgrep |
SENTINEL_TRIVY_IMAGE |
Trivy的自定义Docker镜像 | aquasec/trivy |
SENTINEL_GRYPE_IMAGE |
Grype的自定义Docker镜像 | anchore/grype |
SENTINEL_TESTSSL_IMAGE |
testssl.sh的自定义Docker镜像 | drwetter/testssl.sh |
SENTINEL_SCHEMATHESIS_IMAGE |
Schemathesis的自定义Docker镜像 | schemathesis/schemathesis:stable |
SENTINEL_LLM_API_KEY |
人工智能威胁建模的API密钥(例如,OpenAI) | None (回到启发式) |
SENTINEL_LLM_MODEL |
要使用的LLM模型 | gpt-4o |
🏗️ 项目结构
src/sentinel/
├── core/ # Core logic (logging, exceptions, config)
├── services/ # Business logic (scanners, compliance)
├── tools/ # Tool execution (Docker runner)
└── server.py # Main MCP entry point
