Documentation
Set up Mectris on your Minecraft network
Everything you need to install the plugin, connect a server with a claim token, and read the numbers it sends back. Setup takes about two minutes per server.
Getting started
Introduction#
Mectris is a monitoring and analytics platform for Minecraft servers. A lightweight plugin reports performance and player activity from every server you run, and the dashboard turns that into charts, comparisons and alerts.
You install the plugin once per Minecraft server, link it to your account with a claim token, and the rest happens on its own. There is no database to run, no port to open, and nothing to configure beyond that one token.
Performance telemetry
Player analytics
Discord alerts
Incident timeline
Who this guide is for
Server owners and admins who want to get the plugin running. You do not need any of the backend or API details to follow along.
Getting started
How it works#
Three moving parts: the plugin on your Minecraft server, the Mectris API, and the dashboard you are reading this on.
| Part | Where it runs | What it does |
|---|---|---|
| Mectris plugin | Your Minecraft server | Samples performance every 180 seconds and tracks player sessions, then sends them over HTTPS. |
| Mectris API | api.mectris.com | Validates the server key, stores the metrics and evaluates your alert rules. |
| Dashboard | mectris.com | Reads your data back as charts, leaderboards, incidents and alert history. |
Connection details
- The plugin only makes outgoing HTTPS requests to
api.mectris.comon port 443. Nothing listens for incoming traffic, so there is no port to forward. - Every report is sent asynchronously, off the main thread, once per 180 seconds.
- Player sessions are buffered and flushed with the next report, and also on shutdown, so a clean restart does not lose sessions.
- If no report arrives for about 3 minutes, the server is marked offline, an incident is opened and offline alerts are sent.
Getting started
Requirements#
Mectris targets modern Paper servers and their forks, including Folia.
| Requirement | Details |
|---|---|
| Server software | Paper 1.21 or newer, or a Paper fork. Folia is supported. |
| Java | Java 21 or newer. |
| Network | Outgoing HTTPS (port 443) to api.mectris.com. The first start also downloads the plugin libraries. |
| Permission | mectris.admin to run the commands. Console and operators have it by default. |
| Account | A Discord account to sign in to the dashboard. |
Proxy networks
Install the plugin on each backend Paper or Folia server, not on Velocity or BungeeCord. Each Minecraft instance becomes its own server in the dashboard, so you can compare them side by side.
Getting started
Quick start#
The short version. Every step has its own section below if you want more detail.
- 1
Sign in with Discord
Open the dashboard and authenticate with Discord. No password, no extra account.
- 2
Create a server and copy the claim token
Go to Servers, press Add Server, give it a name and copy the token. It is valid for 15 minutes.
- 3
Drop the plugin into your server
Put the jar into
plugins/and start the server so the plugin can generate its config. - 4
Claim the server
Run this in the console or in game:
console/mectris claim hK3v9Qz2Lf7bR1sYtN0pXcE8mA4uJ6wD - 5
Wait for the first report
The server shows up as online immediately, and the first performance point lands after 3 minutes.
Plugin setup
1. Install the plugin#
A single jar, no dependencies to install by hand.
- 1
Download the plugin
Grab the latest build from our Discord.
- 2
Copy it into the plugins folder
Upload the jar to your server, into the
plugins/directory. - 3
Start or restart the server
On the first start the plugin downloads its libraries into
plugins/mectris-paper/libs/and writes its config files. This needs internet access and takes a few seconds.
What you end up with
plugins/├── mectris-paper-1.0.0.jar└── mectris-paper/ ├── config.yml ├── messages.yml ├── credentials.json └── libs/Not connected yet
Until the server is claimed, the console prints a reminder on every start: Not connected — run /mectris claim <token>. That is expected, and nothing is sent anywhere yet.
Plugin setup
2. Create a server in the dashboard#
Every Minecraft instance you monitor is one server entry, and every entry has its own claim token.
- 1
Open the Servers page
In the dashboard sidebar, choose Servers.
- 2
Press Add Server
Pick a name you will recognise later, such as
SurvivalorLobby-1. Up to 64 characters. - 3
Copy the claim token
The token is shown once the server is created, together with its expiry time. If you lose it or it expires, open the server and press Generate new token on the connect card.
Treat the token like a password
Anyone holding a valid claim token can attach a server to your account. It expires after 15 minutes and can only be used once, so generate a fresh one instead of sharing an old one.
How many servers you can create depends on your plan. If you are out of slots, the dashboard tells you when you press Add Server — see Plans & limits.
Plugin setup
3. Connect with a claim token#
Two ways to hand the token to the plugin. The command is instant, the config file is handy when you prepare a server before it boots.
Option A — the command (no restart)
Run this from the console or in game. The claim happens asynchronously and reporting starts right away.
/mectris claim hK3v9Qz2Lf7bR1sYtN0pXcE8mA4uJ6wDOption B — the config file
Paste the token into plugins/mectris-paper/config.yml, then start or restart the server.
claim-token: 'hK3v9Qz2Lf7bR1sYtN0pXcE8mA4uJ6wD' version: 1The config token is read at startup only
/mectris reload restarts reporting from the stored credentials — it does not claim. After pasting a token into the config, restart the server or use the command instead.
- After a successful claim the plugin clears
claim-tokenfrom the config by itself and stores its credentials incredentials.json. - If the claim fails at startup, reporting does not start. Fix the token (or clear it and use the command) and restart.
- Each server needs its own token. Never reuse one token, and never copy
credentials.jsonto another server.
Plugin setup
4. Verify the connection#
Two checks in the console, one in the dashboard.
Console
[Mectris] Claim token detected, connecting to Mectris...[Mectris] Connected! Server ID: 8c1f2ad4-5b3e-4c19-9f0a-7d61e2b4c8aa[Mectris] Metrics reporting started (every 180s).[Mectris] The plugin successfully started./mectris status answers the same question at any time:
▎ Mectris ┃ Status ┃ Connection › ● Connected ┃ API URL › https://api.mectris.com ┃ Interval › 180s ┃ Server ID › 8c1f2ad4-5b3e-4c19-9f0a-7d61e2b4c8aa ┃ Installation › 1f9c77e0-3a25-4a6b-bd42-90c0f2f7a1d3Dashboard
- The server switches from Pending to online as soon as the claim succeeds.
- Server info (software, version, Java, OS, plugin count) is sent immediately, so the Server Info card fills in first.
- The first performance point arrives after 3 minutes, so empty charts right after connecting are normal. Use
/mectris metricsin the meantime for a live readout.
Plugin reference
Commands & permissions#
Every command lives under /mectris and works from the console as well as in game.
| Command | What it does |
|---|---|
/mectris | Shows the command list. |
/mectris status | Connection state, API URL, report interval, server and installation ID. |
/mectris metrics | Live readout: TPS, MSPT, CPU, threads, memory, players, worlds, chunks, entities and uptime. |
/mectris claim <token> | Claims this server with a token from the dashboard and starts reporting. |
/mectris disconnect | Flushes pending sessions, tells the API the server is going away and deletes the stored credentials. |
/mectris reload | Reloads the config and messages, then restarts reporting from the stored credentials. |
| Permission | Grants |
|---|---|
mectris.admin | Every /mectris command. Console and operators already have it; grant it in your permission plugin for trusted staff. |
Plugin reference
Files & config#
Everything the plugin writes stays in plugins/mectris-paper.
| File | Purpose |
|---|---|
config.yml | Holds claim-token for the startup claim. Cleared automatically once the server is connected. |
messages.yml | Every console and chat message, with hex colour codes. Safe to rewrite or translate. |
credentials.json | The API key, server ID and installation ID created by the claim. Written by the plugin, never edit it by hand. |
libs/ | Libraries downloaded on the first start. Delete it only if you want them fetched again. |
Keep credentials.json private
It contains the API key for that server. Do not paste it into tickets, do not commit it, and do not include it in a world download or server template. If it leaks, run /mectris disconnect and claim the server again with a new token.
Plugin reference
What gets sent#
Only what the charts need. No chat, no commands, no coordinates, no inventories, no builds.
| Payload | When | Contents |
|---|---|---|
| Performance | Every 180s | TPS, MSPT, CPU usage, used and max heap memory, online and max players. |
| Server info | On connect and on start | Server software and version, Java version, OS name and architecture, plugin count. |
| Player sessions | Batched with reports and on shutdown | Player UUID and name, country code, join and leave time, session length. |
How the country is resolved
The plugin looks the joining address up against the public ip-api.com service and keeps only the two-letter country code. Local and private addresses are skipped, and player IP addresses are never sent to Mectris or stored by it.
Running /mectris disconnect stops all of it: the plugin flushes what it has, tells the API the server is gone and deletes its credentials.
Plugin reference
Moving & reconnecting#
Migrating a host, cloning a server or re-claiming after a reset.
- Same server, new host: move the whole
plugins/mectris-paperfolder with it. The credentials stay valid and history continues uninterrupted. - Cloning a server template: delete
credentials.jsonfrom the copy, then claim it with a fresh token. Two servers cannot share one installation. - Reconnecting: run
/mectris disconnect, then open the server in the dashboard and generate a new token. Your existing metrics are kept. - Retiring a server: disconnect the plugin, then delete the server in the dashboard to free the plan slot. Deleting removes its history.
Using the dashboard
Network overview#
The Dashboard page answers how the whole network is doing, across every server you own or were added to.
- Total managed players, unique players today, players online right now and how many servers are active.
- Player traffic over time, with the range following the history window of your plan.
- A top players leaderboard aggregated across servers.
- A network status panel listing each server with its current state.
The page refreshes on its own while it is open, so it can stay up on a second monitor.
Using the dashboard
Servers & folders#
The Servers page is the list of everything you monitor, plus the place to add and organise entries.
- Add Server creates an entry and hands you a claim token in the same step.
- Folders unlock once you own 3 servers or more. Drag a server onto a folder, or use the row menu, to group networks such as Survival, Creative and Lobbies.
- Deleting a server frees the plan slot and removes its stored metrics. Disconnect the plugin first, otherwise it keeps trying to report.
Naming servers
Renaming is not available yet, so use the name your team already says out loud. If you need a different one, delete the entry and add it again.
Using the dashboard
Server pages#
Opening a server gives you five views, listed in the sidebar under its name.
| Page | What it shows |
|---|---|
| Overview | Current TPS, MSPT, CPU, players, RAM and uptime, the server info card and the team members card. |
| Performance | TPS, MSPT, CPU and memory over time, with the range limited by your history window. |
| Players | New versus returning players, retention, playtime, busiest hours and weekdays, countries and the leaderboard. |
| Incidents | Automatically recorded downtime with start, end and duration. Requires Pro. |
| Alerts | Discord webhook configuration, thresholds and the log of alerts already fired. Requires Pro. |
Pages your plan does not include are marked with a lock in the sidebar. Nothing is lost by staying on Free — the locked pages simply start filling in when you upgrade.
Using the dashboard
Discord alerts#
Mectris pushes alerts to a Discord webhook, so they land in the channel your staff already watches.
- 1
Create a webhook in Discord
In your Discord server open Channel settings → Integrations → Webhooks, create one and copy its URL.
- 2
Paste it into the Alerts page
Open your server, go to Alerts and paste the URL into the webhook field.
- 3
Choose what to be woken up for
Toggle offline and back-online notifications, and set the TPS, CPU and memory thresholds you care about. Leave a threshold empty to disable that check.
- 4
Save
The webhook is validated when you save, so a wrong URL is caught immediately.
| Alert | Fires when |
|---|---|
| Server offline | No report arrives for about 3 minutes. |
| Server online | Reports start arriving again after downtime. |
| Low TPS | A report comes in below your TPS threshold. |
| High CPU | CPU usage rises above your percentage threshold. |
| High memory | Used heap goes above your percentage of the maximum. |
Cooldown
Each threshold alert has a 30 minute cooldown, so a server stuck at 12 TPS will not flood the channel. Fired alerts are always listed on the Alerts page, cooldown or not.
Using the dashboard
Team members#
Share a server with the people who help you run it, without sharing your account.
- Open a server, find the Team Members card on the Overview page and add someone by their Discord username.
- They need to have signed in to Mectris at least once, so their account exists.
- Members see the dashboards of that server; adding, deleting and billing stay with the owner.
- Pro includes 3 members per server. Verified accounts have no limit.
Plans
Plans & limits#
Free is enough to monitor one server properly. Pro is for networks, longer history and alerting.
| Feature | Free | Pro | Verified |
|---|---|---|---|
| Servers | 1 | 5 | Unlimited |
| Metrics history | 2 days | 30 days | Unlimited |
| Live performance & player stats | Yes | Yes | Yes |
| Discord alerts | — | Yes | Yes |
| Incident timeline | — | Yes | Yes |
| Team members | — | 3 per server | Unlimited |
| Priority support | — | — | Yes |
Billing is not live yet
Plans cannot be purchased at the moment, so every account runs on Free unless it has been granted something else. Everything you already have keeps working, and the Plans page shows your current usage.
Verified is granted by us, not bought — it is for partners and larger networks we work with directly. Ask on Discord if you think that is you.
Plans
Data retention#
How far back the charts can look depends on your plan.
| Plan | History window |
|---|---|
| Free | 2 days of performance and traffic history |
| Pro | 30 days |
| Verified | Unlimited |
- Chart ranges and comparisons follow your window, so a Free account sees hourly detail rather than months of trend.
- Player totals and leaderboards are counted from stored sessions, so they grow as history accumulates.
- Upgrading widens the window for data collected from that point on; data already outside the window is gone.
Help
Troubleshooting#
The failures people actually hit, and what to do about them.
| Symptom | Cause & fix |
|---|---|
Claim failed: Invalid claim token | The token was mistyped, already used or belongs to another server. Generate a new one in the dashboard and copy it whole. |
Claim token expired | Tokens live for 15 minutes. Press Generate new token and claim right away. |
Server is already claimed | That entry is connected to a plugin already. Run /mectris disconnect on the old server, or create a new entry for this one. |
Installation ID already in use | credentials.json was copied from another server. Delete it on the copy and claim with a fresh token. |
| Claim never answers, or times out | The server cannot reach api.mectris.com on port 443. Check the host firewall and any outbound filtering, then check status.mectris.com. |
| Dashboard says the server is offline | No report arrived for 3 minutes. Confirm the server is up and the plugin enabled, then run /mectris status. |
| Connected, but the charts are empty | The first performance point is sent 3 minutes after connecting. Wait one interval, then reload. |
Failed to send metrics | A single report could not be delivered, usually a short network hiccup. The next one goes out on schedule; if every report fails, verify outbound HTTPS. |
| Reporting does not start after a restart | A claim token left in config.yml failed at startup. Clear it, restart, and claim with the command. |
| Alerts never arrive | Alerts need Pro, a saved webhook URL and a threshold that is actually crossed. Also remember the 30 minute cooldown per alert type. |
Help
FAQ#
Does the plugin hurt performance?
Sampling is cheap and every request is made off the main thread, one HTTP call per 3 minutes. There is no database, no file writing on a timer and no per-tick work.
Do I need to open a port or expose my server?
No. The plugin only makes outgoing HTTPS requests. Nothing connects inward, and Mectris never needs your server address.
Can I monitor several servers on one machine?
Yes. Create one entry per Minecraft instance and claim each with its own token. Do not copy credentials.json between them, or the second claim is rejected.
Does it work on Folia?
Yes, the plugin is Folia-aware and schedules its work accordingly.
What happens if I remove the plugin?
Reports stop, the server is marked offline after 3 minutes and your existing history stays in the dashboard until you delete the server.
Who can see my data?
You, and the team members you add to a server. Nothing is public and nothing is shared with other users.
Can I translate the plugin messages?
Yes — messages.yml holds every line, including hex colours and placeholders. Edit it and run /mectris reload.
Help
Support#
Still stuck? Bring your console output — it usually contains the answer.
Discord
Status
Account, billing and privacy questions: support@mectris.com.