12因素应用审计工具

一款用于根据12-Factor App方法对应用程序进行审计的MCP服务器,支持多种编程语言并提供智能检测功能。

  • by keyrops
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 comunidaddevops/twelvefactor-mcp-server

使用说明

TwelveFactor MCP服务器

MCP服务器,旨在根据12-Factor App方法审核应用程序。

工具

  • audit_dependencies (因素II)-扫描依赖清单文件
  • check_config_env (因子III)-检测硬编码的秘密和.env文件
  • check_log_streams (因素XI)-识别本地日志文件的使用情况
  • analyze_statelessness (因子VI)-检测局部状态持久性
  • verify_port_binding (因子VII)-验证端口绑定配置

特性

全面的语言支持

  • python:全面支持所有因素的模式检测
  • JavaScript/TypeScript:Node.js模式和环境变量检测
  • Java:JDBC模式和System.getenv()支持
  • 红宝石:文件操作和ENV[]检测
  • PHP:文件操作和getenv()支持

智能检测

  • 误报过滤:自动忽略注释、文档和示例代码
  • 多语言模式:检测不同编程语言中的反模式
  • 严重级别:问题分为错误、警告或信息
  • 详细报告:提供文件路径、行号和可操作的建议

广泛的测试覆盖范围

  • 61项全面测试,涵盖所有实施因素
  • 边缘情况、误报和多语言场景的测试
  • 持续验证检查器的准确性

安装

python -m venv venv
source venv/bin/activate
pip install -e .

在VSCode中设置(使用RooCode、Cline或Antigravity)

要将此MCP服务器配置为VSCode扩展中的工具,请执行以下步骤:

  1. 克隆存储库 (或导航到下载位置):

    git clone <repository_url> twelvefactor-mcp-server
    cd twelvefactor-mcp-server
    
  2. 运行安装步骤 如上所述(创建虚拟环境并安装)。

  3. 在VSCode设置中配置MCP服务器: 找到扩展程序的MCP设置文件(例如。 cline_mcp_settings.json 或 roo_mcp_settings.json).添加以下配置,确保将绝对路径替换为计算机上的实际位置:

    {
      "mcpServers": {
        "twelvefactor-auditor": {
          "command": "/absolute/path/to/twelvefactor-mcp-server/venv/bin/twelvefactor-mcp",
          "args": []
        }
      }
    }
    

    [!注意] 重要提示: 您必须使用虚拟环境可执行文件的绝对路径(.../venv/bin/twelvefactor-mcp)以便服务器在所有依赖关系都隔离的情况下运行。

示例(AI提示)

一旦在编辑器中配置了此MCP服务器(Cursor、RooCode、Claude Desktop、Antigravity等),您就可以使用自然语言与之交互。服务器还公开 预定义提示 你可以直接调用,也可以自己编写。

一般评论(所有规则):

  • “审核这个项目,告诉我它与12-Factor App方法论有多一致。”
  • “检查此文件夹中的因子II(依赖关系)。我是否正确使用了包管理器?”

配置和秘密分析(因素三):

  • “使用 check_config_env 该工具用于确定开发人员是否在此存储库中留下了硬编码的凭据(令牌、密码)。"
  • “检查我的代码库,告诉我 .env 文件被意外提交到版本控制。"

状态和并发性分析(因素VI):

  • “启动状态分析工具(analyze_statelessness).是否有任何后端服务将数据持久化到本地磁盘(平面文件、本地SQLite数据库),而不是依赖于S3或远程DB等外部服务?"

日志和端口的验证(因素XI和七):

  • “分析我们的日志配置。确保我们正在将事件流式传输到 stdout 而不是写信给隐藏的当地人 .log 文件夹。"
  • “验证我们的应用程序是否可以动态绑定到由 PORT 环境变量,而不是硬编码端口8080。”