Mcpy
工具列表
內容詳情
替代品
安裝
複製以下命令到你的Client進行配置
注意:您的密鑰屬於敏感信息,請勿與任何人分享。
🚀 MCPy:高性能Minecraft服務器引擎
MCPy 是一款由Python、Cython和先進的科學計算庫驅動的下一代超優化Minecraft服務器引擎。我們的目標是提供卓越的性能和靈活性,讓Minecraft服務器開發變得輕鬆且具有前瞻性。
⚠️ 重要提示
MCPy 正在積極開發中,功能尚未完善。代碼庫存在已知錯誤且不穩定。我們歡迎您提交 錯誤報告和貢獻,以幫助我們更快地實現目標!
🚀 快速開始
安裝
前提條件
- Python 3.9+(推薦 3.11+)
- 現代 C++ 編譯器(VS 2019+ / GCC 9+)
- PostgreSQL 13+(用於生產環境)
- 至少 8 GB 內存(推薦 16 GB)
快速設置
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
運行服務器
# 使用設置腳本
# 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+(用於生產環境)
- 至少 8 GB 內存(推薦 16 GB)
快速設置
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
# 啟用性能模式和設置最大玩家數
python -m mcpy.server --performance-mode --max-players 100
# 啟用調試模式和設置日誌級別
python -m mcpy.server --debug --log-level debug
📚 詳細文檔
架構概述
MCPy 是模塊化的,包含五個高性能核心組件:
-
server_core.pyx
- 事件驅動的請求處理
- 自適應、高精度的 tick 系統
- 動態工作線程池管理
- 實時性能剖析
-
world_engine.pyx
- 基於多八度噪聲和先進生物群系的程序地形生成
- 多線程區塊生成和內存高效的地形存儲
-
network_core.pyx
- 零拷貝數據包序列化和協議級壓縮
- 強大的連接池和 DDoS 緩解
-
entity_system.pyx
- 基於空間哈希的實體跟蹤和多線程物理模擬
- 模塊化 AI 行為樹
-
persistence
- 用於 PostgreSQL/SQLite 的 SQLAlchemy ORM
- 高效的區塊序列化和事務性世界狀態
數據庫配置
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)
])
])
)
🔧 技術細節
Cython 與性能
- 靜態類型 (
cdef
) 和激進的編譯器指令 - 直接的 NumPy 緩衝區訪問和指針運算
- 通過線程池實現多線程並行
實體系統
- 分層、基於組件的設計
- 通過自定義內存池實現 O(1) 空間分區
- 自適應細節層次(LOD)實體管理
世界生成
- 多八度 Perlin/Simplex 噪聲
- 基於 Voronoi 的生物群系過渡
- 侵蝕、洞穴和結構算法
- 10 倍的區塊壓縮以提高存儲效率
📊 性能目標
指標 | 目標值 |
---|---|
可擴展性 | 20 TPS,支持 100 個以上併發玩家 |
內存使用 | 10,000 個區塊時小於 2 GB |
延遲 | 每個玩家操作小於 50 ms |
可靠性 | 核心模塊 100% 測試覆蓋率 |
吞吐量 | 每個 tick 更新 10,000 個以上實體 |
🗺️ 路線圖
短期
- [ ] 實體碰撞系統
- [ ] 合成與庫存管理
- [ ] 基本戰鬥機制
- [ ] 世界生成優化
中期
- [ ] 多世界支持和傳送門
- [ ] 自定義方塊行為
- [ ] 增強的生物 AI
- [ ] 遊戲內腳本 API
長期
- [ ] 分佈式服務器架構
- [ ] 機器學習驅動的生物 AI
- [ ] 實時光線追蹤照明
- [ ] 自定義物理引擎
🤝 貢獻
我們歡迎您的貢獻!請查看我們的 貢獻指南 以開始:
- 分叉倉庫
- 創建您的功能分支 (
git checkout -b feature/amazing-feature
) - 提交您的更改 (
git commit -m 'Add some amazing feature'
) - 推送到您的分支 (
git push origin feature/amazing-feature
) - 打開一個拉取請求
📄 許可證
本項目採用 MIT 許可證。有關詳細信息,請參閱 LICENSE 文件。
Z
Zen MCP Server
Zen MCP是一個多模型AI協作開發服務器,為Claude和Gemini CLI等AI編碼助手提供增強的工作流工具和跨模型上下文管理。它支持多種AI模型的無縫協作,實現代碼審查、調試、重構等開發任務,並能保持對話上下文在不同工作流間的延續。
Python
8.3K
5分
C
Container Use
Container Use是一個開源工具,為編碼代理提供容器化隔離環境,支持多代理並行開發且互不干擾。
Go
6.5K
5分

Search1api
Search1API MCP Server是一個基於Model Context Protocol (MCP)的服務器,提供搜索和爬取功能,支持多種搜索服務和工具。
TypeScript
11.7K
4分

Duckduckgo MCP Server
已認證
DuckDuckGo搜索MCP服務器,為Claude等LLM提供網頁搜索和內容抓取服務
Python
22.4K
4.3分

MCP Alchemy
已認證
MCP Alchemy是一個連接Claude Desktop與多種數據庫的工具,支持SQL查詢、數據庫結構分析和數據報告生成。
Python
10.8K
4.2分

Postgresql MCP
一個基於FastMCP庫的PostgreSQL數據庫MCP服務,提供對指定表的CRUD操作、模式檢查和自定義SQL查詢功能。
Python
9.3K
4分

Agentic Radar
Agentic Radar是一個用於分析和評估代理系統的安全掃描工具,幫助開發者、研究人員和安全專家理解代理系統的工作流程並識別潛在漏洞。
Python
9.3K
5分

MCP Scan
MCP-Scan是一款針對MCP服務器的安全掃描工具,用於檢測提示注入、工具汙染和跨域升級等常見安全漏洞。
Python
9.1K
5分
精選MCP服務推薦

Markdownify MCP
Markdownify是一個多功能文件轉換服務,支持將PDF、圖片、音頻等多種格式及網頁內容轉換為Markdown格式。
TypeScript
13.2K
5分

Baidu Map
已認證
百度地圖MCP Server是國內首個兼容MCP協議的地圖服務,提供地理編碼、路線規劃等10個標準化API接口,支持Python和Typescript快速接入,賦能智能體實現地圖相關功能。
Python
18.9K
4.5分

Firecrawl MCP Server
Firecrawl MCP Server是一個集成Firecrawl網頁抓取能力的模型上下文協議服務器,提供豐富的網頁抓取、搜索和內容提取功能。
TypeScript
35.0K
5分

Sequential Thinking MCP Server
一個基於MCP協議的結構化思維服務器,通過定義思考階段幫助分解複雜問題並生成總結
Python
13.5K
4.5分

Edgeone Pages MCP Server
EdgeOne Pages MCP是一個通過MCP協議快速部署HTML內容到EdgeOne Pages並獲取公開URL的服務
TypeScript
11.7K
4.8分

Notion Api MCP
已認證
一個基於Python的MCP服務器,通過Notion API提供高級待辦事項管理和內容組織功能,實現AI模型與Notion的無縫集成。
Python
10.1K
4.5分

Magic MCP
Magic Component Platform (MCP) 是一個AI驅動的UI組件生成工具,通過自然語言描述幫助開發者快速創建現代化UI組件,支持多種IDE集成。
JavaScript
13.2K
5分

Context7
Context7 MCP是一個為AI編程助手提供即時、版本特定文檔和代碼示例的服務,通過Model Context Protocol直接集成到提示中,解決LLM使用過時信息的問題。
TypeScript
23.4K
4.7分