Mcp Server Endstone — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Mcp Server Endstone (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
<p align="right"> <img src="https://flagicons.lipis.dev/flags/4x3/gb.svg" width="30" height="24"> </p>
<p align="center"> <img src="https://img.shields.io/badge/License-MIT-yellow.svg" alt="License: MIT"> <img src="https://img.shields.io/badge/version-0.1.4-blue" alt="Version"> <img src="https://img.shields.io/badge/Python-%3E=3.8-blue?logo=python" alt="Python version"> </p>
A Model Context Protocol (MCP) server designed to support EndstoneMC development.
<p align="center"> <a href="README_CN.md"> <img src="https://flagicons.lipis.dev/flags/4x3/cn.svg" width="30" height="24"> </a> </p>
uvx mcp-server-endstonegit clone https://github.com/Mcayear/mcp-server-endstone
cd mcp-server-endstone
pip install -e .
# Start after installation
mcp-server-endstonepython -m tests.test_servermcp-server-endstone [--reference <path_to_reference_files>]Add the following to your MCP client configuration:
Example (compatible with clients like cursor, trae):
{
"mcpServers": {
"endstone": {
"command": "uvx",
"args": [
"mcp-server-endstone"
]
}
}
}Get information about a specific Endstone module.
Parameters:
module_name: The name of the module (e.g., 'endstone.event', 'endstone.plugin').Example:
Tool: get_module_info
Parameters: {"module_name": "endstone.event"}Search for specific exports across all modules.
Parameters:
query: The search term (class name, function name, etc.).Example:
Tool: search_exports
Parameters: {"query": "Player"}Get the detailed definition of a specific symbol (like a class or event) in Endstone, including its documentation, attributes, and methods.
Parameters:
symbol_name: The name of the symbol (e.g., 'PlayerInteractEvent', 'Plugin').Example:
Tool: get_symbol_info
Parameters: {"symbol_name": "PlayerInteractEvent"}Generate a basic plugin template with specified features.
Parameters:
plugin_name: The name of the plugin (must end with '_plugin').features: A list of features to include (optional: 'commands', 'events', 'permissions').Example:
Tool: generate_plugin_template
Parameters: {
"plugin_name": "example_plugin",
"features": ["events", "commands"]
}Get information about events. If event_type is provided, it returns the detailed definition (attributes, docs) and usage examples for that event. Otherwise, it lists all available events.
Parameters:
event_type: A specific event type (optional).Example:
Tool: get_event_info
Parameters: {"event_type": "PlayerJoinEvent"}Get content for a tutorial. If no tutorial name is specified, it lists all available tutorials.
Parameters:
query: The name of the tutorial (optional).Example:
Tool: read_tutorials
Parameters: {"query": "register-commands"}endstone - Core moduleendstone.actor - Actor-relatedendstone.ban - Ban systemendstone.block - Block operationsendstone.boss - Boss barendstone.command - Command systemendstone.damage - Damage systemendstone.enchantments - Enchantmentsendstone.event - Event systemendstone.form - Form UIendstone.inventory - Inventoryendstone.lang - Language localizationendstone.level - World/Dimensionendstone.map - Mapendstone.permissions - Permission systemendstone.plugin - Plugin basicsendstone.scheduler - Task schedulerendstone.scoreboard - Scoreboardendstone.util - Utilitiesfrom 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.mdreference directory within the package, then from the current working directory. If neither exists, some features may be unavailable. Use the --reference argument to specify the path.mcp>=0.1.0Contributions are welcome! Please feel free to submit Issues and Pull Requests to improve this MCP server.
EndstoneMC - The reference content is based on endstone/docs/reference and endstone/docs/tutorials.
MIT License
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.