MCPyはPythonとCythonに基づく高性能なMinecraftサーバーエンジンで、科学計算ライブラリと高度な最適化技術を統合し、卓越したパフォーマンスと拡張性を提供することを目的としています。現在、このプロジェクトは開発段階にあり、サーバーエンジン、ワールド生成、ネットワーク処理、エンティティシステム、データ永続化などのコアモジュールが含まれています。
2ポイント
5.4K

インストール

以下のコマンドをクライアントにコピーして設定
注意:あなたのキーは機密情報です。誰とも共有しないでください。

🚀 MCPy: 高性能Minecraftサーバーエンジン

MCPy は、Python、Cython、高度な科学計算ライブラリによって駆動される次世代の超最適化Minecraftサーバーエンジンです。当プロジェクトの使命は、卓越したパフォーマンスと柔軟性を提供し、Minecraftサーバー開発をアクセスしやすく、将来に備えたものにすることです。

License: MIT Python 3.9+ Cython

⚠️ 重要提示

MCPyは現在積極的に開発中であり、まだ機能が完全ではありません。コードベースには既知のエラーが含まれており、不安定です。私たちの目標をより早く達成するために、バグレポートと貢献を歓迎します!

🚀 クイックスタート

サーバーの実行

# セットアップスクリプトを使用する場合
# Windows:
setup.bat run
# Linux/macOS:
./setup.sh run

# コマンドラインから直接実行する場合
python -m mcpy.server
python -m mcpy.server --config custom_config.toml --world my_world
python -m mcpy.server --performance-mode --max-players 100
python -m mcpy.server --debug --log-level debug

コマンドラインオプション

オプション 説明
--config PATH TOML設定ファイルへのパス
--world PATH ワールドディレクトリ
--port NUMBER ネットワークポート (デフォルト: 25565)
--max-players NUMBER 最大プレイヤー数 (デフォルト: 20)
--view-distance NUMBER チャンクの表示距離 (デフォルト: 10)
--performance-mode 追加のパフォーマンス最適化
--debug デバッグモードを有効にする
--log-level LEVEL ログレベルを設定 (デフォルト: info)
--backup 自動バックアップを有効にする

✨ 主な機能

  • Cythonによる高速化コア:イベント駆動型のサーバーエンジンで、Cレベルのパフォーマンスに近づきます。
  • 科学計算バックボーン:NumPy、SciPy、Polarsを統合し、高効率な操作を実現します。
  • ゼロオーバーヘッドネットワーキング:非同期、非ブロッキング、プロトコル最適化されたネットワーキングです。
  • 高度なエンティティシステム:高度なAIサポートを備えた、効率的で拡張可能なエンティティ管理システムです。
  • 堅牢な永続化レイヤー:PostgreSQLとSQLAlchemy ORMによって駆動され、信頼性の高いデータストレージを提供します。
  • 包括的なベンチマーク:組み込みのパフォーマンス分析とプロファイリングツールがあります。
  • 拡張可能なプラグインフレームワーク:サーバーの変更を簡単に追加できます。
  • リアルタイムモニタリング:PrometheusとGrafanaを統合し、ライブメトリクスを提供します。

📦 インストール

前提条件

  • Python 3.9+ (3.11+ 推奨)
  • 最新のC++コンパイラ (VS 2019+ / GCC 9+)
  • PostgreSQL 13+ (本番環境用)
  • 最小8GBのRAM (16GB推奨)

クイックセットアップ

git clone https://github.com/magi8101/mcpy.git
cd mcpy
# Windows
setup.bat
# Linux/macOS
chmod +x setup.sh
./setup.sh

手動インストール

git clone https://github.com/magi8101/mcpy.git
cd mcpy
python -m venv .venv
# Windows:
.venv\Scripts\activate
# Linux/macOS:
source .venv/bin/activate
pip install -r _requirements.txt
pip install -e ".[dev]"
pip install -e ".[ai]"  # オプション: AI機能を有効にする
python check_dependencies.py
python setup.py build_ext --inplace

💻 使用例

基本的な使用法

# サーバーの実行
python -m mcpy.server

高度な使用法

# カスタム設定ファイルとワールドを指定してサーバーを実行
python -m mcpy.server --config custom_config.toml --world my_world

📚 ドキュメント

アーキテクチャの概要

MCPyはモジュール式で、5つの高性能コアコンポーネントがあります。

  1. server_core.pyx

    • イベント駆動型のリクエスト処理
    • 適応型、高精度のタイクシステム
    • 動的なワーカースレッドプール管理
    • リアルタイムのパフォーマンスプロファイリング
  2. world_engine.pyx

    • マルチオクターブノイズと高度なバイオームを使用した手続き型地形生成
    • マルチスレッドチャンク生成とメモリ効率の良い地形ストレージ
  3. network_core.pyx

    • ゼロコピーパケットシリアライゼーションとプロトコルレベルの圧縮
    • 堅牢なコネクションプーリングとDDoS対策
  4. entity_system.pyx

    • 空間ハッシュベースのエンティティ追跡とマルチスレッド物理
    • モジュール式のAI行動ツリー
  5. persistence

    • PostgreSQL/SQLite用のSQLAlchemy ORM
    • 効率的なチャンクシリアライゼーションとトランザクショナルなワールド状態

パフォーマンス目標

指標 目標値
スケーラビリティ 100人以上の同時プレイヤーで20TPS
メモリ使用量 10,000チャンクで<2GB
レイテンシ プレイヤーのアクションごとに<50ms
信頼性 コアモジュールのテストカバレッジ100%
スループット 1ティックあたり10,000以上のエンティティ更新

🔧 技術詳細

Cythonとパフォーマンス

  • 静的型付け (cdef) と積極的なコンパイラディレクティブ
  • 直接的なNumPyバッファアクセスとポインタ演算
  • スレッドプールによるマルチスレッド並列処理

エンティティシステム

  • 階層的、コンポーネントベースの設計
  • カスタムメモリプールによるO(1)空間分割
  • 適応型レベルオブディテール (LOD) エンティティ管理

ワールド生成

  • マルチオクターブPerlin/Simplexノイズ
  • Voronoiベースのバイオーム遷移
  • 侵食、洞窟、構造物アルゴリズム
  • ストレージ効率のための10倍のチャンク圧縮

🗄️ データベース設定

SQLite (デフォルト)

[database]
type = "sqlite"
path = "world/mcpy.db"
journal_mode = "WAL"
synchronous = "NORMAL"

PostgreSQL (本番環境用)

[database]
type = "postgresql"
host = "localhost"
port = 5432
dbname = "mcpy"
user = "postgres"
password = "your_password"
pool_size = 10
max_overflow = 20
echo = false

💾 永続化機能

  • トランザクショナルワールド保存
    with session.begin():
        for chunk in dirty_chunks:
            session.add(ChunkModel.from_chunk(chunk))
    
  • 効率的なチャンクシリアライゼーション
    chunk_data = np.savez_compressed(io_buffer,
                                    blocks=chunk.blocks,
                                    heightmap=chunk.heightmap,
                                    biomes=chunk.biomes)
    
  • プレイヤーデータ管理
    player_model = PlayerModel(
        uuid=player.uuid,
        username=player.username,
        position=json.dumps([player.x, player.y, player.z]),
        inventory=pickle.dumps(player.inventory, protocol=5),
        stats=json.dumps(player.stats)
    )
    
  • インテリジェントな自動保存:変更されたチャンク/エンティティのみが保存されます
  • 自動バックアップ:設定可能な間隔と保持期間

🧪 開発とテスト

pytest                                # 完全なテストスイートを実行
pytest tests/test_entity_system.py     # エンティティシステムのテスト
python -m benchmarks.benchmark        # ベンチマーク
python -m mcpy.profiling.profile_module world_engine  # モジュールのプロファイリング
pytest --cov=mcpy --cov-report=html   # テストカバレッジレポート

パフォーマンスチューニングの例

  • エンティティシステム
    entity_spatial_hash = {(int(e.x/16), int(e.z/16)): [] for e in entities}
    for entity in entities:
        entity_spatial_hash[(int(entity.x/16), int(entity.z/16))].append(entity)
    
  • ワールドエンジン
    with ThreadPoolExecutor(max_workers=os.cpu_count()) as executor:
        futures = [executor.submit(generate_chunk, x, z) for x, z in chunk_coords]
        chunks = [f.result() for f in futures]
    
  • ネットワーク最適化
    cdef char* buffer = <char*>malloc(packet_size)
    memcpy(buffer, &packet_header, sizeof(packet_header))
    memcpy(buffer + sizeof(packet_header), packet_data, packet_data_size)
    

🔧 高度な機能

プラグインシステム

カスタムコマンドと動作を簡単に追加できます。

from mcpy.plugins import Plugin, event

class TeleportPlugin(Plugin):
    @event("player.command")
    def on_command(self, player, command, args):
        if command == "tp" and len(args) >= 1:
            target = self.server.get_player_by_name(args[0])
            if target:
                player.teleport(target.x, target.y, target.z)
                return True
        return False

リアルタイムモニタリング

Prometheus/Grafanaの統合サポートがあります。

[monitoring]
enabled = true
prometheus_port = 9090
metrics = ["tps", "memory_usage", "players_online", "chunks_loaded"]

AIエンティティの動作

柔軟な、行動ツリー駆動型のAIです。

class ZombieAI(MobAI):
    def setup_behaviors(self):
        self.behaviors = BehaviorTree(
            Selector([
                Sequence([
                    CheckPlayerNearby(radius=16),
                    PathfindToPlayer(),
                    AttackPlayer()
                ]),
                Sequence([
                    Wait(random.randint(20, 100)),
                    MoveToRandomPosition(radius=10)
                ])
            ])
        )

🗺️ ロードマップ

短期的な目標

  • [ ] エンティティ衝突システム
  • [ ] クラフトとインベントリ管理
  • [ ] 基本的な戦闘メカニクス
  • [ ] ワールド生成の最適化

中期的な目標

  • [ ] マルチワールドサポートとポータル
  • [ ] カスタムブロックの動作
  • [ ] 強化されたモブAI
  • [ ] ゲーム内スクリプティングAPI

長期的な目標

  • [ ] 分散型サーバーアーキテクチャ
  • [ ] 機械学習駆動型のモブAI
  • [ ] リアルタイムレイトレーシング照明
  • [ ] カスタム物理エンジン

🤝 貢献方法

私たちは皆さんの貢献を歓迎します!貢献を始めるには、貢献ガイドを参照してください。

  1. リポジトリをフォークする
  2. 機能ブランチを作成する (git checkout -b feature/amazing-feature)
  3. 変更をコミットする (git commit -m 'Add some amazing feature')
  4. ブランチにプッシュする (git push origin feature/amazing-feature)
  5. プルリクエストを開く

📄 ライセンス

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

代替品

M
MCP
Microsoft公式のMCPサーバーで、AIアシスタントに最新のMicrosoft技術ドキュメントの検索と取得機能を提供します。
10.0K
5ポイント
A
Aderyn
アデリンは、Rustで書かれたオープンソースのSolidityスマートコントラクト静的分析ツールで、開発者やセキュリティ研究者がSolidityコードの脆弱性を発見するのを支援します。FoundryとHardhatプロジェクトをサポートし、複数の形式のレポートを生成でき、VSCode拡張機能も提供します。
Rust
5.9K
5ポイント
D
Devtools Debugger MCP
Node.jsデバッガーMCPサーバーは、Chrome DevToolsプロトコルに基づく完全なデバッグ機能を提供します。ブレークポイントの設定、ステップ実行、変数のチェック、式の評価などが含まれます。
TypeScript
6.4K
4ポイント
S
Scrapling
Scraplingは適応型ウェブページのスクレイピングライブラリで、ウェブサイトの変化を自動的に学習し、要素を再配置します。複数のスクレイピング方法とAI統合をサポートし、高性能な解析と開発者に優しい体験を提供します。
Python
7.9K
5ポイント
M
Mcpjungle
MCPJungleは自ホスト型のMCPゲートウェイで、複数のMCPサーバーを集中的に管理および代理し、AIエージェントに統一されたツールアクセスインターフェースを提供します。
Go
0
4.5ポイント
C
Cipher
Cipherは、プログラミングAIエージェント向けに設計されたオープンソースのメモリ層フレームワークです。MCPプロトコルを通じてさまざまなIDEとAIコーディングアシスタントと統合し、自動記憶生成、チーム記憶共有、デュアルシステム記憶管理などの核心機能を提供します。
TypeScript
0
5ポイント
N
Nexus
NexusはAIツール集約ゲートウェイで、複数のMCPサーバーとLLMプロバイダーの接続をサポートし、統一されたエンドポイントを通じてツール検索、実行、およびモデルルーティング機能を提供し、セキュリティ認証とレート制限をサポートします。
Rust
0
4ポイント
S
Shadcn Ui MCP Server
AIワークフローにshadcn/uiコンポーネントの統合を提供するMCPサーバーで、React、Svelte、Vueフレームワークをサポートし、コンポーネントのソースコード、使用例、メタデータへのアクセス機能を備えています。
TypeScript
10.1K
5ポイント
G
Gmail MCP Server
Claude Desktop用に設計されたGmail自動認証MCPサーバーで、自然言語でのやり取りによるGmailの管理をサポートし、メール送信、ラベル管理、一括操作などの完全な機能を備えています。
TypeScript
12.4K
4.5ポイント
E
Edgeone Pages MCP Server
EdgeOne Pages MCPは、MCPプロトコルを通じてHTMLコンテンツをEdgeOne Pagesに迅速にデプロイし、公開URLを取得するサービスです。
TypeScript
16.2K
4.8ポイント
C
Context7
Context7 MCPは、AIプログラミングアシスタントにリアルタイムのバージョン固有のドキュメントとコード例を提供するサービスで、Model Context Protocolを通じてプロンプトに直接統合され、LLMが古い情報を使用する問題を解決します。
TypeScript
44.0K
4.7ポイント
B
Baidu Map
認証済み
百度マップMCPサーバーは国内初のMCPプロトコルに対応した地図サービスで、地理コーディング、ルート計画など10個の標準化されたAPIインターフェースを提供し、PythonとTypescriptでの迅速な接続をサポートし、エージェントに地図関連の機能を実現させます。
Python
24.5K
4.5ポイント
G
Gitlab MCP Server
認証済み
GitLab MCPサーバーは、Model Context Protocolに基づくプロジェクトで、GitLabアカウントとのやり取りに必要な包括的なツールセットを提供します。コードレビュー、マージリクエスト管理、CI/CD設定などの機能が含まれます。
TypeScript
12.0K
4.3ポイント
U
Unity
認証済み
UnityMCPはUnityエディターのプラグインで、モデルコンテキストプロトコル (MCP) を実装し、UnityとAIアシスタントのシームレスな統合を提供します。リアルタイムの状態監視、リモートコマンドの実行、ログ機能が含まれます。
C#
14.9K
5ポイント
M
Magic MCP
Magic Component Platform (MCP) はAI駆動のUIコンポーネント生成ツールで、自然言語での記述を通じて、開発者が迅速に現代的なUIコンポーネントを作成するのを支援し、複数のIDEとの統合をサポートします。
JavaScript
15.6K
5ポイント
S
Sequential Thinking MCP Server
MCPプロトコルに基づく構造化思考サーバーで、思考段階を定義することで複雑な問題を分解し要約を生成するのに役立ちます。
Python
21.4K
4.5ポイント
AIBase
智啓未来、あなたの人工知能ソリューションシンクタンク
© 2025AIBase