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
11.6K
5分
C
Container Use
Container Use是一个开源工具,为编码代理提供容器化隔离环境,支持多代理并行开发且互不干扰。
Go
8.9K
5分

Search1api
Search1API MCP Server是一个基于Model Context Protocol (MCP)的服务器,提供搜索和爬取功能,支持多种搜索服务和工具。
TypeScript
18.2K
4分

Duckduckgo MCP Server
已认证
DuckDuckGo搜索MCP服务器,为Claude等LLM提供网页搜索和内容抓取服务
Python
37.0K
4.3分

MCP Alchemy
已认证
MCP Alchemy是一个连接Claude Desktop与多种数据库的工具,支持SQL查询、数据库结构分析和数据报告生成。
Python
16.5K
4.2分

Postgresql MCP
一个基于FastMCP库的PostgreSQL数据库MCP服务,提供对指定表的CRUD操作、模式检查和自定义SQL查询功能。
Python
13.0K
4分

Agentic Radar
Agentic Radar是一个用于分析和评估代理系统的安全扫描工具,帮助开发者、研究人员和安全专家理解代理系统的工作流程并识别潜在漏洞。
Python
12.1K
5分

MCP Scan
MCP-Scan是一款针对MCP服务器的安全扫描工具,用于检测提示注入、工具污染和跨域升级等常见安全漏洞。
Python
11.5K
5分
精选MCP服务推荐

Duckduckgo MCP Server
已认证
DuckDuckGo搜索MCP服务器,为Claude等LLM提供网页搜索和内容抓取服务
Python
37.0K
4.3分

Firecrawl MCP Server
Firecrawl MCP Server是一个集成Firecrawl网页抓取能力的模型上下文协议服务器,提供丰富的网页抓取、搜索和内容提取功能。
TypeScript
56.7K
5分

Figma Context MCP
Framelink Figma MCP Server是一个为AI编程工具(如Cursor)提供Figma设计数据访问的服务器,通过简化Figma API响应,帮助AI更准确地实现设计到代码的一键转换。
TypeScript
39.9K
4.5分

Edgeone Pages MCP Server
EdgeOne Pages MCP是一个通过MCP协议快速部署HTML内容到EdgeOne Pages并获取公开URL的服务
TypeScript
18.0K
4.8分

Baidu Map
已认证
百度地图MCP Server是国内首个兼容MCP协议的地图服务,提供地理编码、路线规划等10个标准化API接口,支持Python和Typescript快速接入,赋能智能体实现地图相关功能。
Python
29.2K
4.5分

Exa Web Search
已认证
Exa MCP Server是一个为AI助手(如Claude)提供网络搜索功能的服务器,通过Exa AI搜索API实现实时、安全的网络信息获取。
TypeScript
29.0K
5分

Minimax MCP Server
MiniMax Model Context Protocol (MCP) 是一个官方服务器,支持与强大的文本转语音、视频/图像生成API交互,适用于多种客户端工具如Claude Desktop、Cursor等。
Python
29.8K
4.8分

Context7
Context7 MCP是一个为AI编程助手提供实时、版本特定文档和代码示例的服务,通过Model Context Protocol直接集成到提示中,解决LLM使用过时信息的问题。
TypeScript
38.7K
4.7分