For developers
OpenHytale is built API-first. Every page rendered on this site is also a static JSON file. The data is free to consume from any tool, bot, plugin, or LLM agent — no auth, no rate limit, no analytics.
JSON endpoints
Section titled “JSON endpoints”All endpoints live under https://openhytale.org/api/.
| Endpoint | Returns |
|---|---|
/api/meta.json | Dataset metadata: generation timestamp, counts, category list |
/api/commands.json | List of all 647 server commands (name, category, description, permission) |
/api/commands/<slug>.json | Full metadata for one command (sub-commands, probe response, Java class, test status) |
/api/catalogs.json | Index of the 21 catalogs with entry counts |
/api/catalogs/<name>.json | All entries in a catalog (e.g. items.json, npcs.json, blocks.json) |
/api/search.json | Flat search index across commands and catalog entries |
Slugs follow this rule: lowercase, leading / removed, spaces / dots / slashes replaced with -. So /ambience emitter add becomes ambience-emitter-add.
Example: curl
Section titled “Example: curl”curl -s https://openhytale.org/api/commands/give.json | jqcurl -s https://openhytale.org/api/catalogs/items.json | jq '.[:10]'curl -s https://openhytale.org/api/search.json | jq '.[] | select(.name | test("iron"; "i"))' | headMCP server (Python stdio)
Section titled “MCP server (Python stdio)”Drop-in MCP server for Claude Desktop, Codex, or any other MCP-compatible client. Stdlib only — no pip install.
Download
Section titled “Download”curl -O https://openhytale.org/mcp/server.pyTools exposed
Section titled “Tools exposed”| Tool | What it does |
|---|---|
list_commands(filter?) | List server commands, optionally filtered by name substring (capped at 200) |
get_command(name) | Full metadata for one command |
search(query) | Fuzzy search across commands AND catalog entries, top 20 results |
list_catalogs() | List the 21 catalogs with entry counts |
find_in_catalog(catalog, query) | Fuzzy search inside one catalog (e.g. items, npcs, blocks) |
list_in_catalog(catalog, filter?) | List a catalog’s entries, optionally filtered (capped at 200) |
Claude Desktop config
Section titled “Claude Desktop config”Add to your claude_desktop_config.json (location: ~/Library/Application Support/Claude/claude_desktop_config.json on macOS, %APPDATA%\Claude\claude_desktop_config.json on Windows):
{ "mcpServers": { "openhytale": { "command": "python3", "args": ["/absolute/path/to/server.py"] } }}Restart Claude Desktop. The openhytale tools become available in any conversation.
Example agent queries
Section titled “Example agent queries”Once installed, you can ask Claude things like:
- “What’s the exact item ID for an iron ingot in Hytale?” → calls
find_in_catalog(catalog="items", query="iron ingot") - “Show me all commands related to ambience” → calls
list_commands(filter="ambience") - “List the first 20 NPCs” → calls
list_in_catalog(catalog="npcs") - “What does the /give command do, exactly?” → calls
get_command(name="/give")
llms.txt
Section titled “llms.txt”A summary file is available at /llms.txt following the llmstxt.org convention. Useful for agents that want a roadmap of the site without crawling.
A longer version with per-catalog links: /llms-full.txt.
Caveats
Section titled “Caveats”- About 21% of commands (138 / 648) ship without a description in the source dataset. We display these as placeholder pages with a request for help. Their metadata (permission, sub-commands) is still complete.
- The dataset is regenerated whenever Hytale ships a meaningful update. Cache accordingly — check
/api/meta.jsonfor thegenerated_attimestamp. - Use a real
User-Agentif you script against the API at scale, so we can identify abuse vs. legitimate traffic.
License
Section titled “License”Code (the MCP server, the generator, the site): MIT. Data: descriptive metadata, no copyrighted game content redistributed. See the disclaimer.