mcpField
M
Manim MCP

Manim MCP

ローカル
github.com/wstcpytメディア・デザイン1977 週間前に更新

Manim MCP について

Manim MCP は、Manim による数学アニメーションを作成するための Docker ベースの環境です。コマンドラインと Web API の両方で利用でき、再現性のあるレンダリング環境を必要とするユーザーに向いています。AI アシスタントが MCP 経由で Manim スクリプトを作成・実行することもできます。

主な機能

  1. 01Docker で隔離された Manim 実行環境
  2. 02コマンドラインでのレンダリング
  3. 03HTTP Web API と /docs ドキュメント
  4. 04スクリプトのアップロードとアニメーションのダウンロード
  5. 05AI アシスタントから利用できる MCP 対応

活用シーン

  1. 01自然言語の説明から Manim スクリプトを生成
  2. 02コンテナ内でアニメーションをレンダリングしてダウンロードリンクを取得
  3. 03生成されたメディアファイルの閲覧と管理

MCP 対応

本プロジェクトは MCP サーバーとして、Manim スクリプトの作成、アニメーションの実行、メディアファイルの管理機能を AI アシスタントに公開します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"manim": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"pull"
]
}
}
}
起動コマンドdocker run -i --rm pull

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
ocipull

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

Manim MCP

ライセンス:Apache 2.0 Docker Manim API

Manim を使って数学アニメーションを作成するための Docker ベース環境です。CLI インターフェースに加え、AI アシスタント向けの Model Context Protocol(MCP)をサポートする Web API を備えています。

📑 概要

このプロジェクトでは、次の機能を提供します。

  1. コンテナ化された Manim 環境:分離された再現可能な Docker 環境で Manim を実行します
  2. Web API:HTTP リクエストで Manim アニメーションを作成、管理します
  3. MCP 連携:Claude などの AI アシスタントと直接やり取りします
  4. ファイル管理:スクリプトをアップロードし、生成されたアニメーションをダウンロードします

🚀 クイックスタート

前提条件
  • お使いのシステムに Docker と Docker Compose がインストールされていること
インストール
オプション 1:ビルド済みイメージを使用する(推奨)

Docker Hub からビルド済みイメージを取得します。

docker pull wstcpyt/manim-docker-mcp:latest

次に、docker-compose で実行します。

docker compose up -d
オプション 2:ローカルでビルドする
  1. リポジトリをクローンします。

    git clone https://github.com/YOUR_USERNAME/manim-docker-mcp.git
    cd manim-docker-mcp
    
  2. Docker イメージをビルドします。

    docker compose build
    
使用方法
CLI モード

animations ディレクトリに Python ファイルを作成し(以下の例を参照)、次のコマンドを実行します。

docker compose run manim -pql animations/example.py ExampleScene
API モード

API サーバーを起動します。

docker compose up -d manim-api

http://localhost:8000/docs で API ドキュメントを確認できます。

🎬 アニメーションの作成

基本的な例

animations/example.py ファイルを作成します。

from manim import *

class CircleToSquare(Scene):
    def construct(self):
        circle = Circle()
        circle.set_fill(BLUE, opacity=0.5)

        square = Square()
        square.set_fill(RED, opacity=0.5)

        self.play(Create(circle))
        self.wait()
        self.play(Transform(circle, square))
        self.wait()
アニメーションの実行
# CLI mode with preview (-p), low quality (-ql)
docker compose run manim -pql animations/example.py CircleToSquare

# API mode
curl -X POST "http://localhost:8000/run-manim?filepath=/manim/temp/circle_example.py&scene_name=CircleToSquare&quality=low_quality"

📂 プロジェクト構成

manim-docker-mcp/
├── animations/           # Manim animation scripts
├── app/                  # FastAPI application
├── media/                # Generated animations (CLI mode)
├── output/               # Generated animations (API mode)
├── temp/                 # Temporary files
├── uploads/              # Uploaded animation scripts
├── Dockerfile            # Docker image definition
├── docker-compose.yml    # Docker Compose configuration
└── README.md             # This file

🔧 設定

品質設定
フラグ解像度フレームレート用途
-ql480p15fps簡易プレビュー
-qm720p30fps一般的な用途
-qh1080p60fpsプレゼンテーション
-qk1440p60fps本番用動画
その他の便利なフラグ
  • -p:出力ファイルをプレビューします
  • -t:背景を透明にします
  • --save_last_frame:最後のフレームだけをレンダリングします
  • -c COLOR:背景色を設定します

🌐 API ドキュメント

主なエンドポイント
ファイル一覧
GET /list-files?directory=/manim
ファイルの書き込み
POST /write-file?filepath=/manim/temp/example.py
アニメーションの実行
POST /run-manim?filepath=/manim/temp/example.py&scene_name=CircleToSquare
アニメーションのダウンロード
GET /download-file?filepath=/media/videos/example/480p15/CircleToSquare.mp4

API ドキュメントの全文は /docs エンドポイントで確認できます。

🤖 AI アシスタント連携(MCP)

このプロジェクトは Model Context Protocol(MCP) をサポートしており、AI アシスタントで次の操作ができます。

  1. 自然言語による説明に基づいて Manim スクリプトを作成する
  2. アニメーションを実行し、ダウンロードリンクを提供する
  3. 生成されたメディアファイルを参照、管理する

MCP セッションの例:

User: Create an animation showing a circle morphing into a square
AI: I'll create that for you...

🔍 高度な使い方

カスタム LaTeX

コンテナには最小限の LaTeX インストールが含まれています。アニメーションでカスタム LaTeX を使用できます。

formula = MathTex(r"\int_{a}^{b} f(x) \, dx = F(b) - F(a)")
self.play(Write(formula))
カスタムディレクトリのマウント

docker-compose.yml ファイルを変更して、追加のディレクトリをマウントします。

volumes:
  - ./my_custom_dir:/manim/custom

🛠️ トラブルシューティング

よくある問題
  • Docker が起動していない:Docker デーモンが起動していることを確認してください
  • 権限エラー:コンテナには、マウントされたボリュームへの書き込み権限が必要です
  • メディアが見つからない:正しい出力ディレクトリを確認してください(CLI の場合は media/、API の場合は output/)
サポート

問題が発生した場合は、次の手順をお試しください。

  1. Manim のドキュメントを確認する
  2. 既存の GitHub の課題を検索する
  3. 問題の詳細を記載して、新しい課題を作成する

📜 ライセンス

このプロジェクトは Apache License 2.0 の下でライセンスされています。詳細については LICENSE ファイルを参照してください。

🙏 謝辞

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。