Skip to content

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.

All endpoints live under https://openhytale.org/api/.

EndpointReturns
/api/meta.jsonDataset metadata: generation timestamp, counts, category list
/api/commands.jsonList of all 647 server commands (name, category, description, permission)
/api/commands/<slug>.jsonFull metadata for one command (sub-commands, probe response, Java class, test status)
/api/catalogs.jsonIndex of the 21 catalogs with entry counts
/api/catalogs/<name>.jsonAll entries in a catalog (e.g. items.json, npcs.json, blocks.json)
/api/search.jsonFlat 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.

Terminal window
curl -s https://openhytale.org/api/commands/give.json | jq
curl -s https://openhytale.org/api/catalogs/items.json | jq '.[:10]'
curl -s https://openhytale.org/api/search.json | jq '.[] | select(.name | test("iron"; "i"))' | head

Drop-in MCP server for Claude Desktop, Codex, or any other MCP-compatible client. Stdlib only — no pip install.

Terminal window
curl -O https://openhytale.org/mcp/server.py
ToolWhat 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)

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.

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")

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.

  • 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.json for the generated_at timestamp.
  • Use a real User-Agent if you script against the API at scale, so we can identify abuse vs. legitimate traffic.

Code (the MCP server, the generator, the site): MIT. Data: descriptive metadata, no copyrighted game content redistributed. See the disclaimer.