安全扫描工具

MCP Secure是一款专为Model Context Protocol (MCP)服务器设计的安全扫描和代码检查工具,用于检测漏洞并强制执行安全最佳实践。

  • by anyrxo
  • JavaScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 anyrxo/mcp-secure

使用说明

MCP安全

███╗   ███╗ ██████╗██████╗     ███████╗███████╗ ██████╗
████╗ ████║██╔════╝██╔══██╗    ██╔════╝██╔════╝██╔════╝
██╔████╔██║██║     ██████╔╝    ███████╗█████╗  ██║     
██║╚██╔╝██║██║     ██╔═══╝     ╚════██║██╔══╝  ██║     
██║ ╚═╝ ██║╚██████╗██║         ███████║███████╗╚██████╗
╚═╝     ╚═╝ ╚═════╝╚═╝         ╚══════╝╚══════╝ ╚═════╝

模型上下文协议服务器的安全扫描程序和Linter

查找漏洞,实施最佳实践,保护您的MCP

🚀 快速开始 • 📖 文档 • 🔒 安全规则 • 💻 命令行界面


🌟 什么是MCP安全?

MCP安全 是一款专门为 模型上下文协议(MCP) 服务器。它分析您的MCP服务器代码以检测漏洞,实施安全最佳实践,并确保您与Claude code的集成是安全可靠的。

为什么MCP安全?

  • 🛡️ 安全第一:检测10多类安全漏洞
  • ⚡ 快速扫描:在几秒钟内扫描整个代码库
  • 🎯 MCP特定:为MCP服务器模式量身定制的规则
  • ✨ 漂亮的CLI:清晰、可操作的安全报告
  • 🔧 CI/CD就绪:易于与管道集成
  • 📊 详细报告:确切地知道要修复什么以及如何修复

🚀 快速开始

安装

# Install globally
npm install -g mcp-secure

# Or use via npx (no installation)
npx mcp-secure scan

基本用法

# Scan current directory
mcp-secure scan

# Scan specific directory
mcp-secure scan ./my-mcp-server

# View all security rules
mcp-secure rules

# CI/CD mode (JSON output)
mcp-secure ci

🔒 安全规则

MCP安全检查10个全面的安全问题:

严重性

ID 规则 描述
MCP001 命令注入 检测用户输入的不安全命令执行
MCP002 路径遍历 防止目录遍历攻击

高严重性

ID 规则 描述
MCP003 硬编码机密 在代码中查找API密钥、令牌、密码
MCP004 SQL注入 检测不安全的SQL查询构造
MCP009 无限制网络 捕获SSRF和不安全的HTTP请求

中等严重性

ID 规则 描述
MCP005 缺少输入验证 确保工具处理程序验证参数
MCP006 不安全的反序列化 检测不安全的JSON.parse使用
MCP010 丢失率限制 检查DoS保护

低&信息

ID 规则 描述
MCP007 缺少错误处理 验证try-catch块
MCP008 MCP最佳实践 鼓励SDK的使用和描述

💻 CLI命令

mcp-secure scan [path]

扫描MCP服务器代码以查找安全问题。

# Basic scan
mcp-secure scan

# Scan with options
mcp-secure scan ./src --severity high --fail-on critical

选项:

  • --severity <level> -仅显示严重程度或以上的问题(严重、高、中、低、信息)
  • --json -以JSON格式输出结果
  • --fail-on <severity> -如果发现问题,退出时出错(适用于CI/CD)

输出示例:

📊 Scan Results

Files scanned: 15
Total issues: 3

┌────────────────────┬──────────┐
│ Severity           │ Count    │
├────────────────────┼──────────┤
│ Critical           │ 0        │
│ High               │ 1        │
│ Medium             │ 2        │
│ Low                │ 0        │
│ Info               │ 0        │
└────────────────────┴──────────┘

🔍 Issues Found

1. [HIGH] MCP003 - Potential hardcoded API Key detected
   File: src/config.ts:12
   Code: const API_KEY = "sk-1234567890abcdef";
   Fix: Use environment variables (process.env) to store sensitive data.

mcp-secure rules

列出所有带有描述的安全规则。

mcp-secure rules

mcp-secure ci [path]

运行针对CI/CD管道优化的扫描。

# In CI/CD pipeline
mcp-secure ci

# Exit code 0 = passed, 1 = failed

📖 文档

与CI/CD集成

GitHub操作

name: Security Scan

on: [push, pull_request]

jobs:
  security:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - uses: actions/setup-node@v2
        with:
          node-version: '18'
      - run: npx mcp-secure ci

GitLab 的

security_scan:
  image: node:18
  script:
    - npx mcp-secure ci
  only:
    - merge_requests
    - main

预提交钩子

# .husky/pre-commit
npx mcp-secure scan --fail-on high

🛠️ 配置

创建 .mcpsecure.json 在项目根目录中:

{
  "ignore": [
    "**/test/**",
    "**/examples/**"
  ],
  "severity": "medium",
  "rules": {
    "MCP001": "error",
    "MCP008": "warn"
  }
}

🎯 示例

示例1:部署前扫描

#!/bin/bash
# deploy.sh

echo "Running security scan..."
if mcp-secure scan --fail-on high; then
  echo "✅ Security scan passed"
  npm run deploy
else
  echo "❌ Security issues found - deployment blocked"
  exit 1
fi

示例2:仅查找关键问题

mcp-secure scan --severity critical --json > security-report.json

示例3:开发工作流程

# Watch mode (scan on file change)
mcp-secure scan && echo "✅ No issues"

🔍 MCP安全检测什么

命令注入

易受攻击代码:

const result = exec(`git clone ${userInput}`);

安全代码:

const result = execFile('git', ['clone', userInput]);

路径遍历

易受攻击代码:

const data = fs.readFileSync(userInput);

安全代码:

const safePath = path.resolve('/allowed/dir', userInput);
if (!safePath.startsWith('/allowed/dir')) throw new Error('Invalid path');
const data = fs.readFileSync(safePath);

硬编码的秘密

易受攻击代码:

const API_KEY = "sk-1234567890";

安全代码:

const API_KEY = process.env.API_KEY;

🚧 路线图

  • []自定义规则创建
  • []自动修复功能
  • []VS代码扩展名
  • []GitHub应用程序集成
  • []SARIF格式输出
  • []依赖漏洞扫描

🤝 贡献

我们欢迎捐款!看 贡献.md.


📄 许可证

MIT许可证-请参阅 许可证


🙏 致谢

  • Anthropic -适用于克劳德代码和MCP
  • MCP社区 -用于构建出色的服务器
  • 安全研究人员 -关于漏洞模式

由以下材料制成❤️ MCP社区

⭐ 在GitHub上为我们投票🐛 报告问题|📖 阅读文档