AI部署准备助手

AI部署准备助手是一款MCP服务器,用于审核CI/CD构建、配置漂移和服务健康状况,以确定项目是否准备好投入生产。

  • by ArunKumar-2004
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 ArunKumar-2004/mcp-ai-assistant

使用说明

🚀 人工智能部署就绪助手(MCP服务器)

这 AI部署准备助理 是一个功能强大的MCP服务器,可以审核您的CI/CD构建、配置漂移和服务健康状况,以确定项目是否已准备好投入生产。

✨ 特性

  • AI驱动的构建分析:自动获取并分析带有根本原因标识的GitHub Actions构建
  • 多数据库支持:PostgreSQL、MySQL和MongoDB连接检查,具有自动检测功能
  • 配置漂移检测:跨环境比较配置(支持JSON、YAML、.env、XML、Dockerfile)
  • 深度健康检查:使用延迟测量验证服务端点
  • 智能诊断:所有结果均由Cohere AI叙述,以获得可操作的见解

🚀 快速入门(无需克隆)

直接从GitHub运行此服务器。添加到您的MCP设置(克劳德桌面、光标等):

{
  "mcpServers": {
    "readiness-assistant": {
      "command": "npx",
      "args": ["-y", "github:ArunKumar-2004/mcp-ai-assistant"],
      "env": {
        "COHERE_API_KEY": "your_cohere_api_key",
        "GITHUB_TOKEN": "your_github_token",
        "GITHUB_REPOSITORY": "owner/repo",
        "SLACK_WEBHOOK_URL": "your_slack_webhook",
        "TARGET_DB_URL": "postgresql://user:pass@host:5432/db"
      }
    }
  }
}

[!小心] 安全警告:永远不要将API密钥提交到公共存储库。使用IDE的秘密存储。

⚠️ “找不到Python”故障排除(Windows)

如果你得到 代码9009 或者“找不到Python”:

  1. 打开 开始菜单 → “管理应用程序执行别名”
  2. 找到 Python.exe 和 Python3.exe
  3. 关闭它们
  4. 重新启动IDE

🛠️ 地方发展设置

1.安装

git clone https://github.com/ArunKumar-2004/mcp-ai-assistant.git
cd mcp-ai-assistant
pip install -e .

2.配置环境

创建 .env 文件:

# Required
COHERE_API_KEY=your_cohere_api_key

# Optional (for specific features)
GITHUB_TOKEN=your_github_token
GITHUB_REPOSITORY=owner/repo
SLACK_WEBHOOK_URL=https://hooks.slack.com/services/...
TARGET_DB_URL=postgresql://user:pass@localhost:5432/db

3.连接到IDE

指向您的本地 server.py:

{
  "mcpServers": {
    "readiness-assistant": {
      "command": "python",
      "args": ["D:/path/to/mcp-ai-assistant/server.py"],
      "env": {
        "COHERE_API_KEY": "..."
      }
    }
  }
}

📚 可用工具

🔍 构建和CI工具

get_latest_build

自动获取并分析最新的GitHub Actions构建

Args:
  repo (optional): Repository in "owner/repo" format. Defaults to GITHUB_REPOSITORY env var.
  workflow_name (optional): Filter by workflow name (e.g., "Next.js Build")
  branch (optional): Filter by branch (e.g., "main")
  include_log (optional): Fetch full logs (default: true)

Example:
  "Get my latest build"
  "Check the latest Next.js build on main branch"

退货:最新的构建状态、结论、提交信息以及AI驱动的故障分析,包括根本原因和建议的修复。

fetch_build_log

获取特定构建ID的日志

Args:
  build_id (required): GitHub Actions run ID
  repo (optional): Repository (defaults to GITHUB_REPOSITORY)

Example:
  "Fetch build log for run 12345"

analyze_build_log

使用AI分析构建日志

Args:
  log_text (required): Build log content

Example:
  "Analyze this build log: [paste log]"

⚙️ 配置工具

compare_environment_configs

检测环境之间的配置漂移

Args:
  project (required): Project name
  env1 (required): First environment (e.g., "staging")
  env2 (required): Second environment (e.g., "production")

Example:
  "Compare staging and production configs for my-app"

支持:JSON、YAML、.env、Java属性、XML、Dockerfile env

退货:使用空键、不匹配的值和AI驱动的解释进行漂移分析。

fetch_environment_config

获取单个环境的配置

Args:
  project (required): Project name
  environment (required): Environment name

Example:
  "Fetch staging config for backend"

🏥 健康和数据库工具

check_service_health

检查服务端点运行状况和延迟

Args:
  service_name (required): Service identifier
  health_url (required): Health check endpoint URL

Example:
  "Check health of https://api.example.com/health"

退货:HTTP状态、延迟(毫秒)和AI评估。

check_database_connection

测试数据库连接和迁移

Args:
  environment (required): Environment name

Example:
  "Check database connection for production"

支持:

  • PostgreSQL(asyncpg)
  • MySQL(aiomysql)
  • MongoDB(电机)

自动检测 数据库类型来自 TARGET_DB_URL 连接字符串。

退货:连接状态、延迟、迁移状态和AI建议。


📊 编排工具

evaluate_build

全面部署准备情况审计

Args:
  project (required): Project name
  build_id (required): Build ID to evaluate
  environment (required): Target environment

Example:
  "Evaluate build 12345 for production deployment"

执行:

  1. 获取并分析构建日志
  2. 检查配置漂移
  3. 验证服务运行状况
  4. 计算准备状态得分(0-100)

退货:附有人工智能生成的执行摘要的完整审计报告。

verify_build

快速构建验证(仅日志)

Args:
  project (required): Project name
  build_id (required): Build ID

Example:
  "Verify build 12345"

verify_config

快速配置漂移检查

Args:
  project (required): Project name
  environment (required): Environment

Example:
  "Verify config for staging"

verify_health

快速健康检查

Args:
  project (required): Project name
  environment (required): Environment

Example:
  "Verify health for production"

🎯 使用示例

场景1:检查最新版本

User: "What's the status of my latest build?"
Assistant: [Calls get_latest_build, shows AI analysis]

场景2:全面部署审计

User: "Is build 12345 ready for production?"
Assistant: [Calls evaluate_build, provides comprehensive report]

场景3:数据库运行状况检查

User: "Check if the production database is healthy"
Assistant: [Calls check_database_connection, shows latency and migration status]

场景4:配置漂移检测

User: "Are staging and production configs in sync?"
Assistant: [Calls compare_environment_configs, highlights differences]

🔧 配置架构

服务器使用 readiness_schema.json 定义项目和环境:

{
  "projects": {
    "my-app": {
      "repo": "owner/my-app",
      "environments": {
        "staging": {
          "config_path": "./config/staging.json",
          "services": [
            {
              "name": "api",
              "health_url": "https://staging-api.example.com/health"
            }
          ]
        },
        "production": {
          "config_path": "./config/production.json",
          "services": [
            {
              "name": "api",
              "health_url": "https://api.example.com/health"
            }
          ]
        }
      }
    }
  }
}

初始化方式:

python server.py --init-config

🌟 主要特点

AI优先架构

  • 所有诊断均由Cohere LLM叙述
  • 故障根本原因识别
  • 可操作的建议修复
  • 上下文感知解释

多数据库支持

  • 从连接字符串中自动检测PostgreSQL、MySQL、MongoDB
  • 使用实际延迟测量进行异步连接检查
  • 迁移验证(Alembic用于SQL,自定义用于MongoDB)

通用配置分析器

  • 支持6+种配置格式
  • 检测空/无效值
  • 亮点在不同环境中漂移

稳健的错误处理

  • 具有重试逻辑的60秒超时
  • 瞬态故障的指数回退
  • 具有回退响应的优雅降级

📦 依赖项

  • mcp>=1.26.0 -MCP服务器框架
  • cohere -AI驱动分析(通过向Cohere API发出请求)
  • asyncpg -PostgreSQL异步驱动程序
  • aiomysql -MySQL异步驱动程序
  • motor -MongoDB异步驱动程序
  • pyyaml -YAML解析
  • requests -HTTP客户端
  • python-dotenv -环境管理

🤝 贡献

  1. 分叉存储库
  2. 创建要素分支
  3. 进行更改
  4. 彻底测试
  5. 提交拉取请求

📄 许可证

MIT许可证-有关详细信息,请参阅许可证文件


🙏 致谢

建于❤️ 使用: