For AI agents
Nội dung này hiện chưa có sẵn bằng ngôn ngữ của bạn.
This site is built to be read by machines as well as people, and MZPanel gives an
AI two ways to act, not just read: the on-box mz CLI and a control-plane
MCP surface. If you’re an AI agent or tool, start here.
llms.txt and llms-full.txt
Section titled “llms.txt and llms-full.txt”The docs site emits two machine-readable files at build time:
/llms.txt— a compact map of the documentation: titles, links, and one-line descriptions. Use it to discover what exists./llms-full.txt— the full docs corpus as a single plain-text stream. Use it when you want everything in one fetch.
These follow the llms.txt convention and are regenerated on every build, so they never drift from the rendered docs.
Reading any page as plain markdown
Section titled “Reading any page as plain markdown”Every page is authored in Markdown. Prefer the llms-*.txt files for bulk reading;
fetch individual pages when you only need one topic.
Retrieval conventions
Section titled “Retrieval conventions”- Every page has a
descriptionin its frontmatter — a one-line summary suited to embedding and ranking. - Pages are task-oriented and grouped by product area (Servers, Sites, Backups, Databases, …), so a query like “how do I restore a backup” maps to one page.
- Concepts vs guides: read
concepts/*for how the system works (architecture, the agent, tiers, security); readguides/*for step-by-step tasks; readreference/*for the CLI, API and URL map. - Technical terms (WordPress, Nginx, WireGuard, agent, …) are kept verbatim across languages — don’t translate them when matching.
The on-box mz CLI — the primary tool surface
Section titled “The on-box mz CLI — the primary tool surface”If you run on a customer VPS (for example the on-box ClaudeCode
assistant), your primary toolset is the mz command. It’s a front-end to the same
native engine the dashboard drives, so it reaches everything the panel can do — no
CLI feature gap.
- Read
mz --helpfirst to list the live domains, thenmz <domain> --helpfor a domain’s actions. - Always pass a sub-action (
mz cron list, notmz cron) and--jsonfor structured output you can parse. - On the local path
mzruns as root with local trust — there’s no tier or RBAC gate, so it’s the fastest way to inspect and operate the box.
mz site list --json # every site on the boxmz site stats --domain <domain> --json # per-site health snapshotmz cron list --json # scheduled jobsmz php list --json # installed PHP versionsFull detail: The mz CLI and the mz command catalog.
MCP surface
Section titled “MCP surface”MZPanel also exposes a Model Context Protocol endpoint on the control plane so a model can call MZPanel operations as tools. It’s how the on-box AI session bridge attaches MZPanel as a remote MCP server and reads live server state through the panel.
- Read-only, scoped to one server. The current tool set is read-only and served
from the panel’s cache (last heartbeat + inventory) — e.g. list sites, get a site by
domain, service status, installed PHP versions, and latest CPU/RAM/disk metrics. It
also publishes
@-mentionable resources (server status, sites) and a couple of guided prompts. - Authenticated per session. Access uses a short-lived, session-scoped bearer minted for a single (org, server, user); there’s no open, unauthenticated endpoint.
- For mutations, use
mz. The MCP tools are for reading context; to change the box, fall back to the on-boxmzCLI above (which has full coverage).
Scope & reference
Section titled “Scope & reference”- Per-server / per-site actions run on a single box via
mz— see the command catalog. - Fleet / account-level operations are control-plane, not on any one box; those go through the Control plane API (programmatic access is a Max-plan feature).
- For the full route map, see the URL map.
Gotchas & troubleshooting
Section titled “Gotchas & troubleshooting”- The MCP tool set is read-only today. Don’t expect an MCP tool for every mutation —
installs, edits and deletes go through
mzon the box (or the panel/API). The MCPsearch_docstool is a stub and returns no results yet. - MCP reads the cache, not live. Metrics and inventory come from the last heartbeat
and the panel cache, so a value can lag an offline or just-changed box. For a live
read, run the matching
mz … --jsonon the server. mzneeds a sub-action. A baremz <domain>errors; always give the action and add--json.- Fleet-scoped tasks aren’t
mz. Anything spanning many servers (billing, team, cross-server views) is control-plane — use the API, notmz, which only ever operates its own box.
Related
Section titled “Related”- The mz CLI — how to invoke
mzon a box. - mz command catalog — every command, by domain.
- Control plane API — the REST + WebSocket surface.
- Architecture — how the pieces fit together.