Django Migrations MCP Service
Django 移行 MCP サービス
分散環境におけるDjangoの移行を管理するためのモデルコンテキストプロトコル(MCP)サービス。このサービスはDjangoの移行コマンドをラップし、MCPエンドポイントとして公開することで、複数のサービスにまたがる移行の管理やCI/CDパイプラインとの統合を容易にします。
特徴
移行ステータスを確認する(
showmigrationsと同等)検証付きの新しい移行を作成する(
makemigrationsと同等)安全性チェック付きの移行を適用する(
migrateと同等)追加の検証と安全性チェック:
順次移行順序の検証
競合検出
依存関係の検証
移行作業の安全性分析
Related MCP server: PocketBase MCP Server
インストール
地域開発
リポジトリをクローンします。
git clone https://github.com/mrrobotke/django-migrations-mcp.git
cd django-migrations-mcp依存関係をインストールします:
pip install -r requirements.txt構成
次の環境変数を設定します。
export DJANGO_SETTINGS_MODULE="your_project.settings"
export MCP_SERVICE_PORT=8000 # Optional, defaults to 8000使用法
サービスの実行
Python で直接:
python -m migrations_mcp.serviceDocker の使用:
docker build -t django-migrations-mcp .
docker run -e DJANGO_SETTINGS_MODULE=your_project.settings \
-v /path/to/your/django/project:/app/project \
-p 8000:8000 \
django-migrations-mcpMCPエンドポイント
移行を表示:
from mcp import MCPClient
client = MCPClient()
migrations = await client.call("show_migrations")移行を行う:
result = await client.call("make_migrations", {
"app_labels": ["myapp"], # Optional
"dry_run": True # Optional
})移行を適用します:
result = await client.call("migrate", {
"app_label": "myapp", # Optional
"migration_name": "0001", # Optional
"fake": False, # Optional
"plan": True # Optional
})CI/CD統合
GitHub Actions ワークフローの例:
name: Django Migrations Check
on:
pull_request:
paths:
- '*/migrations/*.py'
- '*/models.py'
jobs:
check-migrations:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v2
with:
python-version: '3.11'
- name: Install dependencies
run: |
pip install -r requirements.txt
- name: Start MCP service
run: |
python -m migrations_mcp.service &
- name: Check migrations
run: |
python ci/check_migrations.pycheck_migrations.py スクリプトの例:
import asyncio
from mcp import MCPClient
async def check_migrations():
client = MCPClient()
# Check current status
migrations = await client.call("show_migrations")
# Try making migrations
result = await client.call("make_migrations", {"dry_run": True})
if not result.success:
print(f"Error: {result.message}")
exit(1)
print("Migration check passed!")
if __name__ == "__main__":
asyncio.run(check_migrations())発達
テストの実行
pytest migrations_mcp/tests/コードスタイル
このプロジェクトはPEP 8ガイドラインに準拠しています。以下の形式でコードをフォーマットしてください。
black migrations_mcp/
isort migrations_mcp/ライセンス
MITライセンス。詳細はLICENSEファイルを参照してください。
貢献
リポジトリをフォークする
機能ブランチを作成します(
git checkout -b feature/amazing-feature)変更をコミットします(
git commit -m 'Add amazing feature')ブランチにプッシュする (
git push origin feature/amazing-feature)プルリクエストを開く
Dockerの使用
このプロジェクトには、様々なデプロイメントシナリオに対応する構造化されたコマンドを提供するdocker-commands.jsonファイルが含まれています。これらのコマンドは直接使用することも、スクリプト内で解析することもできます。
利用可能なDocker構成
Redis MCP サーバー
# Run Redis MCP server
docker run -i --rm mcp/redis redis://host.docker.internal:6379Django 移行 MCP サーバー
# Basic setup
docker run -d \
--name django-migrations-mcp \
-e DJANGO_SETTINGS_MODULE=your_project.settings \
-e MCP_SERVICE_PORT=8000 \
-v /path/to/your/django/project:/app/project \
-p 8000:8000 \
django-migrations-mcp
# With Redis integration
docker run -d \
--name django-migrations-mcp \
-e DJANGO_SETTINGS_MODULE=your_project.settings \
-e MCP_SERVICE_PORT=8000 \
-e REDIS_URL=redis://host.docker.internal:6379 \
-v /path/to/your/django/project:/app/project \
-p 8000:8000 \
--network host \
django-migrations-mcp開発環境
# Using docker-compose
docker-compose up -d --buildテスト環境
# Run tests in container
docker run --rm \
-e DJANGO_SETTINGS_MODULE=your_project.settings \
-e PYTHONPATH=/app \
-v ${PWD}:/app \
django-migrations-mcp \
pytest生産環境
# Production setup with health check
docker run -d \
--name django-migrations-mcp \
-e DJANGO_SETTINGS_MODULE=your_project.settings \
-e MCP_SERVICE_PORT=8000 \
-e REDIS_URL=redis://your-redis-host:6379 \
-v /path/to/your/django/project:/app/project \
-p 8000:8000 \
--restart unless-stopped \
--network your-network \
django-migrations-mcpプログラムによるコマンドの使用
コマンドをプログラムで解析して使用することができます。
import json
import subprocess
# Load commands
with open('docker-commands.json') as f:
commands = json.load(f)
# Run Redis MCP server
redis_config = commands['mcpServers']['redis']
subprocess.run([redis_config['command']] + redis_config['args'])
# Run Django Migrations MCP server
django_config = commands['mcpServers']['djangoMigrations']
subprocess.run([django_config['command']] + django_config['args'])ネットワーク設定
開発ネットワーク
docker network create mcp-dev-network生産ネットワーク
docker network create --driver overlay --attachable mcp-prod-networkMCPツールの使用
このサービスは、curl または任意の HTTP クライアント経由でアクセスできるいくつかのエンドポイントを公開します。
移行を表示
curl -X POST http://localhost:8000/mcp \
-H "Content-Type: application/json" \
-d '{"method": "show_migrations"}'移行を行う
curl -X POST http://localhost:8000/mcp \
-H "Content-Type: application/json" \
-d '{"method": "make_migrations", "params": {"apps": ["your_app"]}}'移行を適用する
curl -X POST http://localhost:8000/mcp \
-H "Content-Type: application/json" \
-d '{"method": "migrate", "params": {"app": "your_app"}}'This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
The official MCP Server from Mia-Platform to interact with Mia-Platform Console
An MCP server that provides an API to LLMs to manage their JumpCloud resources.
Model Context Protocol server for the Apideck Unified API. Connect any MCP-compatible agent framework to 100+ accounting systems, HRIS platforms, file storage providers, and more through one integration. More information https://www.apideck.com/mcp-server
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceA server implementation of the Model Context Protocol (MCP) that provides REST API endpoints for managing and interacting with MCP resources.-
- AlicenseNot gradedqualityDmaintenanceA comprehensive MCP server for managing PocketBase database schemas and migrations via REST API. It enables users to generate and execute migrations for creating, modifying, and deleting collections and fields directly through MCP-compatible clients.9MIT
- FlicenseNot gradedqualityDmaintenanceExposes Django runtime information (settings, apps, URLs, models, migrations) as MCP resources for AI agents to inspect a live Django project without static analysis.-
- AlicenseNot gradedqualityCmaintenanceA Model Context Protocol (MCP) server for developing Django applications. It exposes Django project information through MCP tools, enabling AI assistants to better understand and interact with Django codebases.111MIT