Django Migrations MCP Service 使用说明

项目简介

Django Migrations MCP Service 是一个基于 Model Context Protocol (MCP) 的服务器实现,旨在简化分布式 Django 环境中的数据库迁移管理。它将 Django 的迁移命令封装为 MCP 协议的工具,允许您通过 MCP 客户端远程执行和管理 Django 项目的数据库迁移,特别适用于 CI/CD 流程和微服务架构。

主要功能点

  • 查看迁移状态: 检索已应用和未应用的数据库迁移列表。
  • 生成迁移文件: 根据模型变更自动创建新的迁移文件。
  • 应用数据库迁移: 将迁移文件应用到数据库,更新数据库结构。
  • 增强的验证和安全检查:
    • 顺序验证: 确保迁移文件按顺序编号,避免遗漏。
    • 冲突检测: 检测迁移文件之间的冲突。
    • 依赖验证: 验证迁移文件依赖的外部应用或迁移是否存在。
    • 安全分析: 识别可能导致数据丢失或风险的迁移操作 (如删除模型或字段)。

安装步骤

  1. 克隆仓库到本地:
    git clone https://github.com/mrrobotke/django-migrations-mcp.git
    cd django-migrations-mcp
  2. 安装 Python 依赖:
    pip install -r requirements.txt

服务器配置

MCP 客户端需要以下配置信息才能连接到 Django Migrations MCP Service。请将以下 JSON 配置添加到您的 MCP 客户端配置中:

{
  "serverName": "djangoMigrationsMCP",
  "command": "python",
  "args": ["-m", "migrations_mcp.service"],
  "env": {
    "DJANGO_SETTINGS_MODULE": "your_project.settings",  //  **[必填]** Django 项目的 settings.py 模块路径,例如 "myproject.settings"
    "MCP_SERVICE_PORT": "8000"   // **[可选]** MCP 服务端口号,默认为 8000
  }
}

配置参数说明:

  • 'serverName': 服务器名称,客户端用于识别和调用。
  • 'command': 启动 MCP 服务器的命令,这里使用 'python' 解释器。
  • 'args': 传递给 'command' 的参数列表,'-m migrations_mcp.service' 指示 Python 运行 'migrations_mcp.service' 模块作为服务。
  • 'env': 环境变量配置,用于配置 Django 项目和 MCP 服务:
    • 'DJANGO_SETTINGS_MODULE': 必须配置,指向您的 Django 项目的 'settings.py' 文件,例如 'your_project.settings'。这将确保 MCP 服务能够正确加载 Django 项目配置。
    • 'MCP_SERVICE_PORT': 可选配置,指定 MCP 服务监听的端口号。如果未设置,默认为 '8000'。

注意: 您需要根据实际 Django 项目的 'settings.py' 文件路径修改 'DJANGO_SETTINGS_MODULE' 环境变量。

基本使用方法

  1. 启动 MCP 服务器: 根据上述配置,在安装好依赖的环境中运行 MCP 服务器。可以直接使用 Python 运行:

    python -m migrations_mcp.service

    或者使用 Docker 部署,请参考仓库 'README.md' 中的 Docker 使用说明。

  2. 使用 MCP 客户端调用工具: 使用 MCP 客户端(例如 'mcp-client-py')连接到运行的 Django Migrations MCP Service。您可以使用以下工具 (Tools) 来管理 Django 迁移:

    • 'show_migrations': 查看迁移状态。
    • 'make_migrations': 生成迁移文件,可以指定应用名称作为参数。
    • 'migrate': 应用迁移,可以指定应用名称和迁移名称作为参数。

    具体调用方法请参考仓库 'README.md' 中的 "MCP Endpoints" 和 "CI/CD Integration" 部分的示例代码。您可以使用 Python MCP 客户端库或者通过 HTTP 请求 (如 'curl') 调用这些工具。

信息

分类

开发者工具