安全MCP服务器
备注:本项目不隶属于Bearer,也不由Bearer认可或赞助。它是一个独立的实现,使用公开可用的Bearer CLI工具。
特性
- 安全扫描:对目录和文件运行Bearer安全扫描
- 多种输出格式:支持JSON、YAML、SARIF和HTML输出格式
- 规则管理:按语言和类别列出和筛选安全规则
- 配置管理:初始化项目中的承载配置文件
- Docker支持:预装Bearer CLI的容器化部署
- 工作目录上下文:正确处理MCP配置中的工作目录
承载CLI概述
Bearer是一个静态应用程序安全测试(SAST)工具,用于扫描源代码以查找安全漏洞和敏感数据泄漏。它支持多种编程语言,包括Go、Java、JavaScript、TypeScript、PHP、Python和Ruby。
安装
先决条件
- Docker和Docker Compose
- Python 3.10或更高版本(用于MCP客户端集成)
Docker安装
- 克隆存储库:
git clone https://github.com/dapperdivers/security_mcp.git
cd security_mcp- 构建Docker镜像:
docker build -t security-mcp-server .- 或者使用Docker Compose:
docker-compose build配置
MCP客户端配置
将服务器添加到MCP客户端配置中:
适用于克劳德桌面 (claude_desktop_config.json):
{
"mcpServers": {
"bearer-security": {
"command": "python",
"args": ["/path/to/security_mcp/bearer_mcp_server.py"],
"env": {
"MCP_WORKING_DIRECTORY": "/path/to/your/project"
}
}
}
}适用于通用MCP客户端 (mcp.json):
{
"mcpServers": {
"bearer-security": {
"command": "python",
"args": ["/path/to/security_mcp/bearer_mcp_server.py"],
"env": {
"MCP_WORKING_DIRECTORY": "/path/to/your/project"
}
}
}
}Docker配置
使用Docker Compose:
services:
bearer-mcp-server:
build: .
volumes:
- ./your-project:/workspace:ro
environment:
- MCP_WORKING_DIRECTORY=/workspace直接使用Docker:
docker run -it --rm \
-v /path/to/your/project:/workspace:ro \
-e MCP_WORKING_DIRECTORY=/workspace \
bearer-mcp-server可用工具
1. bearer_scan
对目录或文件运行Bearer安全扫描。
参数:
path(必填):扫描路径(目录或文件)format(可选):输出格式-json,yaml,sarif,html(默认值:json)severity(可选):最低严重级别-critical,high,medium,lowrules(可选):要运行的以逗号分隔的规则ID列表skip_rules(可选):要跳过的逗号分隔的规则ID列表output_file(可选):将扫描结果保存到文件的路径quiet(可选):抑制进度输出(默认值:false)
示例:
{
"path": "./src",
"format": "json",
"severity": "high",
"quiet": false
}2. bearer_version
获取Bearer CLI版本信息。
参数:无
3. bearer_list_rules
列出可用的承载安全规则。
参数:
language(可选):按编程语言过滤(例如。,javascript,python,java)category(可选):按类别过滤(例如。,security,privacy)
示例:
{
"language": "javascript",
"category": "security"
}4. bearer_init_config
初始化项目中的承载配置文件。
参数:
path(可选):创建配置的目录(默认为工作目录)
使用示例
基本安全扫描
问你的AI助手:
"Scan the current project for security vulnerabilities using Bearer"助理将使用 bearer_scan 在MCP设置中配置工作目录的工具。
带过滤器的详细扫描
"Run a Bearer security scan on the ./src directory, showing only critical and high severity issues, and output the results in SARIF format"列出可用规则
"Show me all available Bearer security rules for JavaScript"初始化配置
"Set up Bearer configuration for this project"工作目录处理
服务器通过以下方式支持工作目录上下文:
- 环境变量:设置
MCP_WORKING_DIRECTORY在MCP配置中 - 相对路径:工具参数中的相对路径是针对工作目录解析的
- Docker卷:将项目目录装载到
/workspace在集装箱内
错误处理
服务器包括全面的错误处理:
- 未找到承载CLI:未安装Bearer时清除错误消息
- 路径无效:文件和目录路径的验证
- 命令失败:详细的错误报告,包括退出代码和stderr输出
- JSON解析:妥善处理格式错误的Bearer输出
日志记录
日志被写入stderr(STDIO传输所需),包括:
- 使用工作目录执行命令
- 错误条件和调试信息
- 承载CLI安装状态
安全考虑
- 只读扫描:服务器仅读取文件进行扫描
- 路径验证:所有路径都经过安全验证和解析
- 集装箱安全:Docker镜像以非root用户身份运行
- 资源限制:Docker Compose包括资源限制
快速开始
安装后,配置MCP客户端并开始使用Bearer安全扫描:
- 添加到MCP客户端配置 (见配置部分)
- 重新启动MCP客户端
- 问你的AI助手:“使用Bearer扫描我的项目以查找安全漏洞”
发展
本地运行
# Install in development mode
pip install -e .
# Run the server directly
python bearer_mcp_server.py
# Run with specific working directory
MCP_WORKING_DIRECTORY=/path/to/project python bearer_mcp_server.py测试
# Run tests
python -m pytest tests/
# Run specific test file
python -m pytest tests/test_server.py构建Docker镜像
# Build the image
docker build -t bearer-mcp-server .
# Test the container
docker run --rm bearer-mcp-server bearer version故障排除
未找到承载CLI
如果出现“未找到Bearer CLI”错误:
- 本地安装:确保轴承已安装并处于路径中
- 码头工人:使用提供的Docker镜像,其中包括Bearer CLI
- 手动安装:遵循Bearer CLI安装指南
权限问题
对于Docker部署:
- 确保正确的卷装载权限
- 容器以用户身份运行
mcpuser(UID 1001) - 尽可能将项目目录装载为只读
路径解决问题
- 检查一下
MCP_WORKING_DIRECTORY设置正确 - 验证工作目录中的相对路径是否正确
- 有疑问时使用绝对路径
许可证
此MCP服务器根据MIT许可证获得许可。Bearer CLI根据弹性许可证2.0(ELv2)获得许可。
贡献
- 分叉存储库
- 创建要素分支
- 通过测试进行更改
- 提交拉取请求
支持
- 承载CLI问题: https://github.com/Bearer/bearer/issues
- MCP协议: https://modelcontextprotocol.io/
- 服务器问题:在此存储库中创建问题
