一个为 EndstoneMC 开发提供支持的 Model Context Protocol (MCP) 服务器
Project description
Endstone MCP Server
一个为 EndstoneMC 开发提供支持的 Model Context Protocol (MCP) 服务器。
功能特性
- 模块信息查询: 获取 Endstone 模块的详细信息和导出内容
- 代码搜索: 在所有 Endstone 模块中搜索类、函数和常量
- 插件模板生成: 根据需求生成基础插件模板
- 事件处理指导: 提供事件处理的详细信息和示例
- 开发教程: 内置插件开发、事件处理和命令创建指南
安装或启动
用 uvx
uvx mcp-server-endstone
用源码
git clone https://github.com/Mcayear/mcp-server-endstone
cd mcp-server-endstone
pip install -e .
# 安装后启动
mcp-server-endstone
单元测试
python -m tests.test_server
使用方法
直接启动服务器
mcp-server-endstone [--reference 引用文件路径]
与 MCP 客户端集成
在你的 MCP 客户端配置中添加:
示例可用直接用于:cursor、trae
{
"mcpServers": {
"endstone": {
"command": "uvx",
"args": [
"mcp-server-endstone"
]
}
}
}
可用工具
1. get_module_info
获取特定 Endstone 模块的信息
参数:
module_name: 模块名称 (例如: 'endstone.event', 'endstone.plugin')
示例:
工具: get_module_info
参数: {"module_name": "endstone.event"}
2. search_exports
在所有模块中搜索特定的导出项
参数:
query: 搜索词 (类名、函数名等)
示例:
工具: search_exports
参数: {"query": "Player"}
3. get_symbol_info
获取 Endstone 中特定符号(如类、事件)的详细定义,包括其文档、属性和方法。
参数:
symbol_name: 符号名称 (例如: 'PlayerInteractEvent', 'Plugin')
示例:
工具: get_symbol_info
参数: {"symbol_name": "PlayerInteractEvent"}
4. generate_plugin_template
生成基础插件模板,包含指定功能
参数:
plugin_name: 插件名称 (必须以 '_plugin' 结尾)features: 功能列表 (可选: 'commands', 'events', 'permissions')
示例:
工具: generate_plugin_template
参数: {
"plugin_name": "example_plugin",
"features": ["events", "commands"]
}
5. get_event_info
获取事件相关信息。如果提供了 event_type,则返回该事件的详细定义(属性、文档)和用法示例。否则,列出所有可用事件。
参数:
event_type: 特定事件类型 (可选)
示例:
工具: get_event_info
参数: {"event_type": "PlayerJoinEvent"}
6. read_tutorials
获取教程内容。如未指定教程名称,则列出所有可用教程。
参数:
query: 教程名称 (可选)
示例:
工具: read_tutorials
参数: {"query": "register-commands"}
支持的 Endstone 模块
endstone- 核心模块endstone.actor- 实体相关endstone.ban- 封禁系统endstone.block- 方块操作endstone.boss- Boss栏endstone.command- 命令系统endstone.damage- 伤害系统endstone.enchantments- 附魔endstone.event- 事件系统endstone.form- 表单UIendstone.inventory- 物品栏endstone.lang- 语言本地化endstone.level- 世界/维度endstone.map- 地图endstone.permissions- 权限系统endstone.plugin- 插件基础endstone.scheduler- 任务调度endstone.scoreboard- 计分板endstone.util- 工具类
开发示例
基础插件结构
from endstone.plugin import Plugin
from endstone import Logger
class MyPlugin(Plugin):
name = "MyPlugin"
version = "1.0.0"
api_version = "0.5"
def on_enable(self) -> None:
self.logger.info(f"{self.name} v{self.version} enabled!")
def on_disable(self) -> None:
self.logger.info(f"{self.name} disabled!")
事件处理
from endstone.event import event_handler, PlayerJoinEvent
@event_handler
def on_player_join(self, event: PlayerJoinEvent):
player = event.player
self.logger.info(f"Welcome {player.name}!")
player.send_message("Welcome to the server!")
项目结构
mcp-server-endstone/
├── reference/ # 引用所需资源
│ ├── endstone/
│ └── tutorials/
├── src/
│ └── mcp_server_endstone/
│ ├── __init__.py
│ ├── server.py # 核心服务器逻辑
│ ├── cli.py # 命令行入口
│ └── reference/ # 引用文件
├── tests/
│ ├── __init__.py
│ └── test_server.py
├── pyproject.toml
└── README.md
故障排除
-
引用文件路径问题: 服务器首先尝试从包内的reference目录加载引用文件,然后尝试从当前工作目录加载。如果两者都不存在,某些功能可能不可用。使用
--reference参数指定引用文件路径。 -
错误调试: 服务器的日志级别为INFO,可以查看日志来诊断问题。
-
依赖问题: 确保所有依赖已正确安装:
mcp>=0.1.0
贡献
欢迎提交 Issue 和 Pull Request 来改进这个 MCP 服务器。
许可证
MIT License
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mcp_server_endstone-0.1.1.tar.gz.
File metadata
- Download URL: mcp_server_endstone-0.1.1.tar.gz
- Upload date:
- Size: 368.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
07a364c96dc690883a6d53d65e722f74b8522e9cb25c138b83e43847c938fe45
|
|
| MD5 |
0e9fac5452320f174021ce377afa03ea
|
|
| BLAKE2b-256 |
2e9aaee4ca2c4e3de1df9df259d65c2adbfd38b46f95b9038fadbf0f36f21614
|
File details
Details for the file mcp_server_endstone-0.1.1-py3-none-any.whl.
File metadata
- Download URL: mcp_server_endstone-0.1.1-py3-none-any.whl
- Upload date:
- Size: 199.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8658a87eebfbc52a1f69028df8e8189ea4bcefaebb9bf4cf61895f4b92f3be63
|
|
| MD5 |
2b1968d39c65440895bcaec7abea02e3
|
|
| BLAKE2b-256 |
950cc013bbd8c6b08fb993eec38206b82b75ec1ebb637af37cbd27987552e0b2
|