mcstatus
A library to query Minecraft Servers for their status and capabilities.
Decision gist · record as of 2026-08-14
Yes. mcstatus is actively maintained, has no known vulnerabilities, low install friction, and solves a specific problem well—querying Minecraft servers without protocol knowledge. It supports current Python versions and is licensed permissively. Install it if you need to check Minecraft server status or player information in a Python application.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.10 or later.
- Query protocol requires it to be enabled on the target server's server.properties file.
- Low install friction with only 2 runtime dependencies (asyncio-dgram and dnspython).
License · maintenance · safety
Apache-2.0 (permissive) — Licensed under Apache-2.0 (permissive), allowing free use, modification, and distribution with minimal restrictions—suitable for both open-source and commercial projects.
last release 2026-06-26 (49 days) · last repo commit 2026-08-14 · 600 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 172,037 downloads/mo, #10,350 on PyPI
Alternatives
Verify before relying
from mcstatus import JavaServer
server = JavaServer.lookup("example.org")
status = server.status()
print(f"Players online: {status.players.online}")- Whether asyncio-dgram and dnspython introduce significant transitive dependencies.
- Performance characteristics when querying many servers concurrently or in rapid succession.
- Whether the library handles network timeouts and connection failures gracefully in production use.
What it is and what it does
mcstatus is a Python library that abstracts away the complexity of Minecraft server protocols, letting you query server status and player information without implementing the Server List Ping or Query protocols yourself. It supports Java Edition servers (modern and legacy versions), Bedrock Edition servers, and provides both a Python API and a command-line interface.
The library handles the low-level protocol details and returns structured data about player counts, server latency, MOTD, and other server properties. It depends on asyncio-dgram for UDP communication and dnspython for DNS resolution, making it suitable for monitoring dashboards, server browsers, or any application that needs to check Minecraft server availability and player status.
Use it for
- Build a server browser or status dashboard that displays live player counts and latency for Minecraft servers.
- Monitor Minecraft server uptime and performance as part of a larger hosting or management platform.
- Retrieve full player lists from servers with Query enabled to populate leaderboards or player tracking systems.
- Implement a Discord bot or web service that responds to queries about specific Minecraft server status.
- Automate server health checks and alerting for your own Minecraft infrastructure.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes.
mcstatus is actively maintained, has no known vulnerabilities, low install friction, and solves a specific problem well—querying Minecraft servers without protocol knowledge. It supports current Python versions and is licensed permissively. Install it if you need to check Minecraft server status or player information in a Python application.
Install
mcstatus on PyPI
Before you install
Low install friction with only 2 runtime dependencies (asyncio-dgram and dnspython). Active maintenance with a recent release 49 days ago and a commit as recent as 2026-08-14. Supports current Python versions (3.10 through 3.14).
Requires Python 3.10 or later. Query protocol requires it to be enabled on the target server's server.properties file.
License in practice
Licensed under Apache-2.0 (permissive), allowing free use, modification, and distribution with minimal restrictions—suitable for both open-source and commercial projects.
Quickstart
from mcstatus import JavaServer
server = JavaServer.lookup("example.org")
status = server.status()
print(f"Players online: {status.players.online}")
Verify before relying
- Whether asyncio-dgram and dnspython introduce significant transitive dependencies.
- Performance characteristics when querying many servers concurrently or in rapid succession.
- Whether the library handles network timeouts and connection failures gracefully in production use.
Package facts
| License | Apache-2.0 permissive |
| Python support | Supports the current Python release >=3.10 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 2 packagesasyncio-dgramdnspython |
| Maintenance | Actively maintained 49 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 172,037 / month, #10,350 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 5 - Production/StableIntended Audience :: DevelopersLicense :: OSI Approved :: Apache Software LicenseNatural Language :: EnglishOperating System :: OS IndependentProgramming Language :: PythonProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Topic :: Games/EntertainmentTopic :: Software Development :: Libraries :: Python ModulesTopic :: System :: MonitoringTyping :: Typed |
Evidence: mcstatus-14.0.0-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “minecraft server status”
- mcstatusQueries Minecraft servers (Java, Legacy, and Bedrock editions) to…
- mcpylibMCPyLib is a Python client library for remotely controlling Minecraft…
- nbtlibRead, write, and edit NBT (Named Binary Tag) data files used in…
Give your agent the search over MCP, or paste the wish link into any chat.
More Python Modules packages
Converts domain names between Unicode and ASCII-compatible encoding (Punycode) according to IDNA 2008 and Unicode Technical Standard 46, with security validation and broader script coverage than the standard library.
Install it if you work with internationalized domain names, need to validate domains, or use HTTP clients that depend on it transitively.
Setuptools is a Python build backend and package management tool that handles building, distributing, and installing Python packages, including support for C/C++ extension modules.
PyYAML parses and emits YAML 1.1 data format, enabling serialization and deserialization of configuration files and Python objects to and from human-readable YAML text.
Pydantic validates Python data structures against type hints, coercing and checking input at runtime to ensure it matches a declared schema.
Provides reusable metadata objects for use with PEP-593 `typing.Annotated` to express common constraints like bounds, collection sizes, and predicates on types.
Install it if you use or build libraries that need to express type constraints in a standardized, inspectable way—or if you want to annotate your own types with…
Provides runtime tools to inspect and introspect Python type annotations, enabling programmatic examination of type hints at execution time.
See also mcpylib · amulet-core · ping3 · aioping · nbtlib · pingparsing · awslabs.bedrock-kb-retrieval-mcp-server · openskill · llama-index-llms-bedrock · pyblu