Mcpy
🚀 MCPy: 高性能Minecraftサーバーエンジン
MCPy は、Python、Cython、高度な科学計算ライブラリによって駆動される次世代の超最適化Minecraftサーバーエンジンです。当プロジェクトの使命は、卓越したパフォーマンスと柔軟性を提供し、Minecraftサーバー開発をアクセスしやすく、将来に備えたものにすることです。
⚠️ 重要提示
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つの高性能コアコンポーネントがあります。
-
server_core.pyx- イベント駆動型のリクエスト処理
- 適応型、高精度のタイクシステム
- 動的なワーカースレッドプール管理
- リアルタイムのパフォーマンスプロファイリング
-
world_engine.pyx- マルチオクターブノイズと高度なバイオームを使用した手続き型地形生成
- マルチスレッドチャンク生成とメモリ効率の良い地形ストレージ
-
network_core.pyx- ゼロコピーパケットシリアライゼーションとプロトコルレベルの圧縮
- 堅牢なコネクションプーリングとDDoS対策
-
entity_system.pyx- 空間ハッシュベースのエンティティ追跡とマルチスレッド物理
- モジュール式のAI行動ツリー
-
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
- [ ] リアルタイムレイトレーシング照明
- [ ] カスタム物理エンジン
🤝 貢献方法
私たちは皆さんの貢献を歓迎します!貢献を始めるには、貢献ガイドを参照してください。
- リポジトリをフォークする
- 機能ブランチを作成する (
git checkout -b feature/amazing-feature) - 変更をコミットする (
git commit -m 'Add some amazing feature') - ブランチにプッシュする (
git push origin feature/amazing-feature) - プルリクエストを開く
📄 ライセンス
このプロジェクトはMITライセンスの下でライセンスされています。詳細は LICENSE ファイルを参照してください。

Gmail MCP Server
Claude Desktop用に設計されたGmail自動認証MCPサーバーで、自然言語でのやり取りによるGmailの管理をサポートし、メール送信、ラベル管理、一括操作などの完全な機能を備えています。
TypeScript
12.4K
4.5ポイント

Edgeone Pages MCP Server
EdgeOne Pages MCPは、MCPプロトコルを通じてHTMLコンテンツをEdgeOne Pagesに迅速にデプロイし、公開URLを取得するサービスです。
TypeScript
16.2K
4.8ポイント

Context7
Context7 MCPは、AIプログラミングアシスタントにリアルタイムのバージョン固有のドキュメントとコード例を提供するサービスで、Model Context Protocolを通じてプロンプトに直接統合され、LLMが古い情報を使用する問題を解決します。
TypeScript
44.0K
4.7ポイント

Baidu Map
認証済み
百度マップMCPサーバーは国内初のMCPプロトコルに対応した地図サービスで、地理コーディング、ルート計画など10個の標準化されたAPIインターフェースを提供し、PythonとTypescriptでの迅速な接続をサポートし、エージェントに地図関連の機能を実現させます。
Python
24.5K
4.5ポイント

Gitlab MCP Server
認証済み
GitLab MCPサーバーは、Model Context Protocolに基づくプロジェクトで、GitLabアカウントとのやり取りに必要な包括的なツールセットを提供します。コードレビュー、マージリクエスト管理、CI/CD設定などの機能が含まれます。
TypeScript
12.0K
4.3ポイント

Unity
認証済み
UnityMCPはUnityエディターのプラグインで、モデルコンテキストプロトコル (MCP) を実装し、UnityとAIアシスタントのシームレスな統合を提供します。リアルタイムの状態監視、リモートコマンドの実行、ログ機能が含まれます。
C#
14.9K
5ポイント

Magic MCP
Magic Component Platform (MCP) はAI駆動のUIコンポーネント生成ツールで、自然言語での記述を通じて、開発者が迅速に現代的なUIコンポーネントを作成するのを支援し、複数のIDEとの統合をサポートします。
JavaScript
15.6K
5ポイント

Sequential Thinking MCP Server
MCPプロトコルに基づく構造化思考サーバーで、思考段階を定義することで複雑な問題を分解し要約を生成するのに役立ちます。
Python
21.4K
4.5ポイント
