server_stop
Stop a Minecraft server by sending the configured stop command using its server ID. This tool helps manage server operations within the crafty-mcp environment.
Instructions
Stop a Minecraft server (sends configured stop command)
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| server_id | Yes | Server ID or UUID |
Implementation Reference
- src/tools/server-actions.ts:7-34 (registration)The `registerServerActionTools` function iterates over an array of action definitions, including `server_stop`, and registers them as MCP tools using `server.tool`. The handler logic for all these actions, including `server_stop`, is defined within the `async ({ server_id }) => { ... }` function block, which calls the Crafty API.
export function registerServerActionTools(server: McpServer, client: CraftyClient): void { const actions: Array<{ name: string; action: string; description: string }> = [ { name: "server_start", action: "start_server", description: "Start a Minecraft server" }, { name: "server_stop", action: "stop_server", description: "Stop a Minecraft server (sends configured stop command)" }, { name: "server_restart", action: "restart_server", description: "Restart a Minecraft server" }, { name: "server_kill", action: "kill_server", description: "Force-kill a Minecraft server process immediately" }, { name: "server_backup", action: "backup_server", description: "Trigger an immediate backup of a Minecraft server's files" }, { name: "server_update_executable", action: "update_executable", description: "Update the server jar/executable from the configured download URL" }, { name: "server_clone", action: "clone_server", description: "Clone an existing Minecraft server (server must not be running)" }, ]; for (const { name, action, description } of actions) { server.tool( name, description, serverIdSchema, async ({ server_id }) => { try { const data = await client.post(`/servers/${server_id}/action/${action}`); return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] }; } catch (error) { const msg = error instanceof Error ? error.message : String(error); return { content: [{ type: "text", text: `Error: ${msg}` }], isError: true }; } } ); } }