使用说明
CodeGuard MCP服务器
通过模型上下文协议生成AI代码的安全规则。
建立在...之上 项目CodeGuard: 此MCP服务器集成了Project CodeGuard的全面安全指令规则,通过模型上下文协议而不是每个存储库文件复制来解决扩展和中央治理挑战。
这是什么?
GitHub Copilot可以使用 .github/instructions/ 安全规则文件,但这对组织来说很糟糕:
- 每个存储库中有22+个重复的文件
- 无中央控制
- 更新的痛苦
此MCP服务器将所有安全规则集中在一个地方。
快速开始
1.安装软件包
npm install -g @isagasi/codeguard-mcp-server
2.配置VS代码
窗户:
# Get the global npm modules path
$npmPath = npm root -g
$serverPath = Join-Path $npmPath "@isagasi\codeguard-mcp-server\dist\index.js"
# Create configuration using node with args for reliable stdio
$config = @"
{
"servers": {
"codeguard": {
"type": "stdio",
"command": "node",
"args": ["$($serverPath -replace '\\', '\\\\')"],
"autoStart": true
}
}
}
"@
[System.IO.File]::WriteAllText("$env:APPDATA\Code\User\mcp.json", $config, (New-Object System.Text.UTF8Encoding $false))
Write-Host "✓ mcp.json created at: $env:APPDATA\Code\User\mcp.json"
macOS/Linux:
# Get the global npm modules path
NPM_PATH=$(npm root -g)
SERVER_PATH="$NPM_PATH/@isagasi/codeguard-mcp-server/dist/index.js"
# Create configuration using node with args for reliable stdio
cat > ~/Library/Application\ Support/Code/User/mcp.json << EOF
{
"servers": {
"codeguard": {
"type": "stdio",
"command": "node",
"args": ["$SERVER_PATH"],
"autoStart": true
}
}
}
EOF
echo "✓ mcp.json created"
3.安装自动起动器
code --install-extension alankyshum.vscode-mcp-autostarter
4.重新加载VS代码
按 Ctrl+Shift+P → “开发人员:重新加载窗口”
5.验证设置
Ctrl+Shift+P → “MCP:列出服务器”→ 应该显示 codeguard 跑步✅
完成!服务器现在处于活动状态,将使用VS代码自动启动。
6.卫生测试(推荐)
验证Copilot是否正在调用MCP服务器:
测试1:密码哈希
@workspace Generate a Python function to hash a password
预期: Copilot应使用以下方式生成代码 bcrypt 或 Argon2 (不是MD5或SHA1)
测试2:数据库查询
@workspace Create a PostgreSQL query function in Node.js
预期: 代码应使用参数化查询,而不是字符串连接
测试3:API密钥存储
@workspace Show how to store an API key in a Python app
预期: 应建议环境变量(os.getenv),不是硬编码字符串
如果Copilot生成 不安全代码 (MD5密码、SQL注入、硬编码密钥),MCP服务器可能无法加载。重试步骤4-5。
工作原理
服务器提供23个默认安全指令文件+3个自定义组织规则:
- 加密规则(无MD5,使用Argon2/bcrypt)
- Auth/authz最佳实践
- 输入验证、SQL注入预防
- API安全、日志记录、容器强化
- 自定义规则可以覆盖默认值
Copilot Chat在生成代码时可以通过MCP工具查询这些信息。
自定义规则
在中添加组织特定规则 rules/custom/:
---
applyTo: '**/*.ts'
description: Company API Standards
---
# API Standards
All REST endpoints must:
- Use company error format
- Log to ELK stack
- Rate limit: 100 req/min
自定义规则获得+25优先级并覆盖默认值。
维护
更新到最新版本:
npm update -g @isagasi/codeguard-mcp-server
# Then reload VS Code
发布新版本 (维护人员):
- 更新版本:
npm version patch(1.0.8 → 1.0.9) - 推送标签:
git push --follow-tags - 创建GitHub版本
- 工作流自动发布到npm✅
故障排除
服务器未运行:
- 检查:
Ctrl+Shift+P→ “MCP:列出服务器” - 应该看看
codeguard状态为“正在运行” - 如果未列出,请验证mcp.json路径并重新加载VS代码
错误: spawn ENOENT 或 spawn EINVAL:
- 这意味着命令路径不正确或二进制包装器不兼容
- 使用
node随着args步骤2中所示的配置(不是codeguard-mcp命令) - MCP协议要求使用干净的stdio
node直接确保兼容性
查看服务器日志:
- 打开VS代码:查看→ 输出
- 从下拉菜单中选择“MCP自动起动器”
- 检查启动错误或协议违规
重新安装软件包:
npm uninstall -g @isagasi/codeguard-mcp-server
npm install -g @isagasi/codeguard-mcp-server
# Reload VS Code
致谢
该项目整合了来自 项目CodeGuard,人工智能辅助代码生成的安全最佳实践的全面集合。
MCP服务器架构解决了每个存储库指令文件中固有的扩展和中央治理挑战,使组织能够在所有项目中维护安全标准的单一真实来源。
许可证
麻省理工学院
