此模式描述了如何实现一个集成三个行业标准安全扫描工具(Checkov、Semgrep 和 Bandit)的模型上下文协议(MCP)服务器,以提供全面的代码安全性分析。该服务器使AI编码助手能够自动扫描代码片段和基础设施即代码(IaC)配置中的安全漏洞、误配置和合规性违规。
解决方案结合了Checkov用于扫描IaC文件(包括Terraform、CloudFormation和Kubernetes清单),Semgrep用于分析多种编程语言(如Python、JavaScript、Java等),以及Bandit用于专门的Python安全扫描。
它提供了一个统一的安全扫描接口,并采用标准化的响应格式,使得将安全检查集成到开发工作流程中变得更加容易。该模式使用Python和MCP框架来提供自动化安全反馈,帮助开发者在开发过程早期识别并解决安全问题,同时通过详细的发现结果学习安全最佳实践。
此模式特别适用于希望通过AI辅助编码工具增强其开发安全实践的组织,提供跨多种编程语言和基础设施定义的持续安全扫描能力。
关键特性:
尝试以下示例提示与您的AI助手:

尝试以下示例提示生成安全代码:


此MCP服务器使AI助手能够使用三种强大的安全扫描工具对代码片段进行全面的安全分析:
注意: 下列说明适用于macOS/Linux。对于Windows和其他代码助手,请参阅AWS MCP存储库README获取特定平台的说明。
此MCP服务器不可通过PyPI获得,以增强安全性和控制:
您可以使用两种方法之一安装此服务器:
克隆或下载本地仓库:
git clone git@github.com:aws-samples/sample-mcp-security-scanner.git
cd sample-mcp-security-scanner
然后配置您的MCP客户端使用本地路径(参见下面的配置示例)。
配置您的MCP客户端直接从GitHub安装:
git+https://github.com/aws-samples/sample-mcp-security-scanner.git@main
此方法会自动下载并安装服务器,无需本地克隆(参见下面的配置示例)。
服务器会自动安装:
checkov>=3.0.0 - IaC安全扫描器semgrep>=1.45.0 - 源代码安全扫描器bandit>=1.7.5 - Python安全扫描器mcp[cli]>=1.11.0 - MCP框架pydantic>=1.10.0 - 数据验证loguru>=0.6.0 - 日志记录配置您的MCP客户端以使用服务器。配置因客户端而异,支持本地路径和GitHub安装方法。
详情请参阅Kiro Model Context Protocol文档。
Kiro > MCP Servers替换/path/to/sample-mcp-security-scanner为您实际的仓库路径:
.kiro/settings/mcp.json(本地)或~/.kiro/settings/mcp.json(全局){
"mcpServers": {
"security-scanner": {
"command": "uvx",
"args": [
"--from",
"/path/to/sample-mcp-security-scanner",
"security_scanner_mcp_server"
],
"env": {
"FASTMCP_LOG_LEVEL": "ERROR"
},
"disabled": false,
"autoApprove": []
}
}
}
{
"mcpServers": {
"security-scanner": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/aws-samples/sample-mcp-security-scanner.git@main",
"security_scanner_mcp_server"
],
"env": {
"FASTMCP_LOG_LEVEL": "ERROR"
},
"disabled": false,
"autoApprove": []
}
}
}
</details>
详情请参阅Amazon Q Developer文档。
~/.aws/amazonq/mcp.json(全局)或.amazonq/mcp.json(本地)的MCP配置文件。替换/path/to/sample-mcp-security-scanner为您实际的仓库路径:
~/.aws/amazonq/mcp.json{
"mcpServers": {
"security-scanner": {
"command": "uvx",
"args": [
"--from",
"/path/to/sample-mcp-security-scanner",
"security_scanner_mcp_server"
],
"env": {
"FASTMCP_LOG_LEVEL": "ERROR"
}
}
}
}
{
"mcpServers": {
"security-scanner": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/aws-samples/sample-mcp-security-scanner.git@main",
"security_scanner_mcp_server"
],
"env": {
"FASTMCP_LOG_LEVEL": "ERROR"
}
}
}
}
</details>
cline_mcp_settings.json文件。替换/path/to/sample-mcp-security-scanner为您实际的仓库路径:
cline_mcp_settings.json{
"mcpServers": {
"security-scanner": {
"command": "uvx",
"args": [
"--from",
"/path/to/sample-mcp-security-scanner",
"security_scanner_mcp_server"
],
"env": {
"FASTMCP_LOG_LEVEL": "ERROR"
},
"disabled": false,
"autoApprove": []
}
}
}
{
"mcpServers": {
"security-scanner": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/aws-samples/sample-mcp-security-scanner.git@main",
"security_scanner_mcp_server"
],
"env": {
"FASTMCP_LOG_LEVEL": "ERROR"
},
"disabled": false,
"autoApprove": []
}
}
}
</details>
对于Cursor、Windsurf、VS Code、Claude Desktop和其他MCP客户端的配置说明,请参阅AWS MCP存储库README。
scan_with_checkov扫描基础设施即代码文件的安全问题。
参数:
code(字符串):要扫描的IaC内容format_type(字符串):格式类型(terraform、cloudformation、kubernetes、dockerfile等)scan_with_semgrep扫描源代码的安全漏洞。
参数:
code(字符串):要扫描的源代码内容language(字符串):编程语言(python、javascript、java等)scan_with_bandit扫描Python代码的安全问题(Python专用)。
参数:
code(字符串):要扫描的Python代码内容get_supported_formats获取关于支持的格式和语言的信息。
所有扫描工具返回一致的响应格式:
{
"success": true,
"tool": "checkov|semgrep|bandit",
"format_type": "terraform",
"language": "python",
"total_issues": 3,
"findings": [
{
"check_id": "CKV_AWS_20",
"severity": "HIGH",
"description": "S3 Bucket has an ACL defined which allows public access",
"line_number": 3,
"resource": "aws_s3_bucket.example"
}
],
"summary": {
"high": 1,
"medium": 2,
"low": 0
}
}
此MCP服务器设计用于与AI编码助手(如Kiro、Amazon Q Developer、Cline等)配合使用。AI可以:
# 克隆并安装
git clone git@github.com:aws-samples/sample-mcp-security-scanner.git
cd sample-mcp-security-scanner
uv pip install -e .
# 运行服务器
python -m security_scanner_mcp_server.server
# 使用示例代码测试
python examples/test_scanner.py
MIT许可证 - 详情请参阅LICENSE文件。
欢迎贡献!请阅读CONTRIBUTING.md以获取指南。
模式由Ivan Girardi(AWS)和Iker Reina Fuente(AWS)创建。
此工具旨在通过识别漏洞来提高安全性。然而:
更多信息请参阅CONTRIBUTING。
此库根据MIT-0许可证授权。详情请参阅LICENSE文件。