Endstone MCP服务器
为支持EndstoneMC开发而设计的模型上下文协议(MCP)服务器。
特性
- 模块信息查询:检索Endstone模块的详细信息和导出。
- 代码搜索:在所有Endstone模块中搜索类、函数和常量。
- 插件模板生成:根据指定要求生成基本插件模板。
- 事件处理指南:提供事件处理的详细信息和示例。
- 开发教程:插件开发、事件处理和命令创建的内置指南。
安装或启动
使用uvx
uvx mcp-server-endstone来源
git clone https://github.com/Mcayear/mcp-server-endstone
cd mcp-server-endstone
pip install -e .
# Start after installation
mcp-server-endstone单元测试
python -m tests.test_server用法
直接启动服务器
mcp-server-endstone [--reference
]与MCP客户端集成
将以下内容添加到MCP客户端配置中:
示例(与游标、trae等客户端兼容):
{
"mcpServers": {
"endstone": {
"command": "uvx",
"args": [
"mcp-server-endstone"
]
}
}
}可用工具
1.get_module_info
获取特定Endstone模块的信息。
参数:
module_name:模块的名称(例如,“endstone.event”、“endstone-plugin”)。
例子:
Tool: get_module_info
Parameters: {"module_name": "endstone.event"}2.搜索导出
搜索所有模块中的特定导出。
参数:
query:搜索词(类名、函数名等)。
例子:
Tool: search_exports
Parameters: {"query": "Player"}3.获取符号信息
获取Endstone中特定符号(如类或事件)的详细定义,包括其文档、属性和方法。
参数:
symbol_name:符号的名称(例如,“PlayerInteractEvent”、“Plugin”)。
例子:
Tool: get_symbol_info
Parameters: {"symbol_name": "PlayerInteractEvent"}4.generate_plugin_template
生成具有指定功能的基本插件模板。
参数:
plugin_name:插件的名称(必须以“\_plugin”结尾)。features:要包含的功能列表(可选:“命令”、“事件”、“权限”)。
例子:
Tool: generate_plugin_template
Parameters: {
"plugin_name": "example_plugin",
"features": ["events", "commands"]
}5.获取事件信息
获取有关事件的信息。如果 event_type 如果提供了,它将返回该事件的详细定义(属性、文档)和使用示例。否则,它将列出所有可用的事件。
参数:
event_type:特定事件类型(可选)。
例子:
Tool: get_event_info
Parameters: {"event_type": "PlayerJoinEvent"}6.阅读教程
获取教程内容。如果没有指定教程名称,它将列出所有可用的教程。
参数:
query:教程的名称(可选)。
例子:
Tool: read_tutorials
Parameters: {"query": "register-commands"}支持的Endstone模块
endstone-核心模块endstone.actor-演员相关endstone.ban-禁令制度endstone.block-区块操作endstone.boss-老板酒吧endstone.command-指挥系统endstone.damage-损伤系统endstone.enchantments-魔法endstone.event-事件系统endstone.form-表单用户界面endstone.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/ # Required reference resources
│ ├── endstone/
│ └── tutorials/
├── src/
│ └── mcp_server_endstone/
│ ├── __init__.py
│ ├── server.py # Core server logic
│ ├── cli.py # Command-line entry point
│ └── reference/ # Reference files
├── tests/
│ ├── __init__.py
│ └── test_server.py
├── pyproject.toml
└── README.md故障排除
- 参考文件路径问题:服务器首先尝试从
reference然后从包中的当前工作目录。如果两者都不存在,则某些功能可能不可用。使用--reference参数指定路径。
- 调试错误:服务器的日志级别设置为INFO。检查日志以诊断问题。
- 依赖性问题:确保所有依赖项都已正确安装:
mcp>=0.1.0
贡献
欢迎投稿!请随时提交问题和拉取请求以改进此MCP服务器。
鸣谢
EndstoneMC -The reference 内容基于 endstone/docs/reference 和 endstone/docs/tutorials.
许可证
MIT许可证
