# Server Doctor

> >-

- **Type:** Skill
- **Install:** `agentstack add skill-teddy563-mcwrench-server-doctor`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [Teddy563](https://agentstack.voostack.com/s/teddy563)
- **Installs:** 0
- **Category:** [Cloud & Infrastructure](https://agentstack.voostack.com/c/cloud-infrastructure)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [Teddy563](https://github.com/Teddy563)
- **Source:** https://github.com/Teddy563/mcwrench/tree/main/skills/server-doctor
- **Website:** https://mcwrench.teddy.bar

## Install

```sh
agentstack add skill-teddy563-mcwrench-server-doctor
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# Server Doctor (day-2 operations)

Keep a running server healthy. Three jobs, all **local and read-only** — paste a log or point at a
server folder; **never run live commands or write to a panel** (that is a future operator mode).
Never invent config keys or plugin behaviour; confirm specifics with `learn-plugin-docs`.

## 1. Diagnose a crash or error  (`/mcwrench:diagnose`)
The headline. Read a `crash-reports/crash-*.txt`, `logs/latest.log`, or pasted text and return a
ranked root cause.
```bash
node "${CLAUDE_PLUGIN_ROOT}/skills/server-doctor/scripts/parse-log.mjs" 
#   or pipe:  cat latest.log | node .../parse-log.mjs
#   add --json for machine output
```
It names the **likely culprit namespace** (the first non-engine stack frame), and matches signatures
in `references/log-signatures.md`: UnsupportedClassVersionError (Java too old — class file version 69
= Java 25), OutOfMemoryError, Watchdog / single-tick overload, ticking entity/world crashes, port
already in use, EULA not accepted, plugin load failures (Unsupported API version / missing
dependency), NoClassDefFoundError/NoSuchMethodError. Each finding has a fix recipe; route a named
plugin to `learn-plugin-docs` and lag findings to `performance-tuning`. Cross-reference the
**server-profile** (Java/software/plugins) to disambiguate (e.g. `UnsupportedClassVersionError` on a
26.1 jar = Java           # software, version, plugins, footguns
node "${CLAUDE_PLUGIN_ROOT}/skills/audit-config/scripts/check-conflicts.mjs"            # plugin conflicts + missing deps
node "${CLAUDE_PLUGIN_ROOT}/skills/server-doctor/scripts/check-plugin-versions.mjs"     # outdated / no-build-for-this-MC
node "${CLAUDE_PLUGIN_ROOT}/skills/server-doctor/scripts/parse-log.mjs"                 # today's crash/log, if any
```
Grade four areas — **security, performance, durability, currency** — list the top fixes prioritised
critical to low, and hand deep tuning to `performance-tuning` and config lint to `audit-config`. Use
the server-profile so you do not re-ask known facts.

## 3. Upgrade / migration planner  (`/mcwrench:upgrade`)
Given the server-profile and a target version, produce a go/no-go runbook. Use
`references/upgrade-checklist.md`. The big 2026 facts:
- **Paper 26.1+ requires Java 25** — flag `UnsupportedClassVersionError` risk if Java is older.
- **26.1 dropped the obfuscated jar**: Spigot-mapped plugins must be re-released for 26.1, so many
  silently break. For each installed plugin, label **has a 26.1 build / none / unknown** using
  `check-plugin-versions.mjs` + `learn-plugin-docs`.
- Do **not** combine a version bump with a software/server-type switch in one step.
- World-upgrade caveats: back up and trim first; test on a copy before upgrading the live world.
Emit an ordered runbook: **back up → bump Java → update plugins (verify builds) → test on a copy →
upgrade the world**. Read-only: it never downloads or writes.

## Guardrails
- Local + read-only. No RCON, no panel writes, no console commands (that is v2).
- Never invent config keys or claim a plugin behaviour you have not read; fetch with `learn-plugin-docs`.
- Always confirm a destructive step (world upgrade, deleting regions) and tell the user to back up first.

## References + scripts
- `references/log-signatures.md` — the crash/log signature catalogue + fix recipes.
- `references/upgrade-checklist.md` — the 26.1 / Java 25 / cross-version migration runbook.
- `scripts/parse-log.mjs` — crash/log analyzer (read-only, no deps).
- `scripts/check-plugin-versions.mjs` — staleness + MC/loader-compat report (Modrinth; `--offline` ok).

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [Teddy563](https://github.com/Teddy563)
- **Source:** [Teddy563/mcwrench](https://github.com/Teddy563/mcwrench)
- **License:** MIT
- **Homepage:** https://mcwrench.teddy.bar

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-teddy563-mcwrench-server-doctor
- Seller: https://agentstack.voostack.com/s/teddy563
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
