Skip to main content
Glama
jmrapp1

HytaleModding.dev MCP Server

by jmrapp1

HytaleModding.dev MCP Server

An MCP (Model Context Protocol) server that provides AI tools with access to the HytaleModding.dev documentation. Run it locally and connect it to Claude Desktop, Cursor, Windsurf, or any MCP-compatible client.

Watch how Claude uses it to built out a user interface: HytaleModding MCP Server Demo

Tools

search_docs

Search the documentation index. Returns matching pages and sections grouped by page with URLs and breadcrumb paths.

Parameter

Type

Required

Default

Description

query

string

yes

Search query text

locale

string

no

"en"

Locale code

limit

number

no

10

Limits the number of pages returned

get_doc

Fetch the full content of a documentation page, converted from HTML to readable text.

Parameter

Type

Required

Description

path

string

yes

Page path, e.g. /en/docs/official-documentation/custom-ui/markup

Related MCP server: Roblox Documentation MCP Server

Prerequisites

  • Node.js 18+

  • npm

Setup

npm install
npm run build

Running the server

The MCP-server communicates over stdio (stdin/stdout) using JSON-RPC, which is how MCP clients launch and talk to it, so there's no need to have an ever-running server. AI clients will trigger the requests directly against the dist/index.js file (refer to the testing manually section).

Client configuration

Claude Desktop

Add to your claude_desktop_config.json:

a

Cursor

Go to Cursor Settings > Tools & Integrations > MCP Tools and add:

{
  "mcpServers": {
    "hytalemodding-docs": {
      "command": "node",
      "args": ["/absolute/path/to/hytalemodding-mcp-server/dist/index.js"]
    }
  }
}

Windsurf

Open Command Palette > Windsurf MCP Configuration Panel and add the same JSON block as above.

Claude Code

Run this from any directory:

claude mcp add hytalemodding-docs node /absolute/path/to/hytalemodding-mcp-server/dist/index.js

Development

Watch mode recompiles on file changes:

npm run dev

Testing manually

You can pipe JSON-RPC messages to the server over stdio to test:

# Initialize and list tools
printf '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test","version":"1.0.0"}}}\n{"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}\n' | node dist/index.js 2>/dev/null

# Search for documentation
printf '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test","version":"1.0.0"}}}\n{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"search_docs","arguments":{"query":"NPC template"}}}\n' | node dist/index.js 2>/dev/null

# Fetch a specific doc page
printf '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test","version":"1.0.0"}}}\n{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"get_doc","arguments":{"path":"/en/docs/quick-start"}}}\n' | node dist/index.js 2>/dev/null

Available Tools

2 tools
get_docA

Fetch the full content of a Hytale modding documentation page. You MUST use the search_docs tool first to get a list of URLs that are compatible with this tool.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesDocumentation page url (e.g. '/en/docs/official-documentation')

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the burden of behavioral disclosure. It adds the key precondition that URLs must come from search_docs and implies read-only behavior ('Fetch'). While it doesn't cover error handling or output format, the mandatory prerequisite is a valuable behavioral disclosure for a simple read tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences long, with the purpose front-loaded and the critical usage prerequisite in a clear second sentence. Every word contributes value; there is no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (one parameter, no output schema), the description adequately covers purpose, prerequisite, and parameter compatibility. The absence of an output schema means the description need not explain return values, and the 'full content' phrasing gives a general expectation. Minor gap: no detail on response structure, but this is acceptable for a simple fetch tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already documents the 'url' parameter with a format example, giving 100% coverage. The description adds extra meaning by noting that only URLs from search_docs are compatible, which clarifies that not arbitrary URLs will work. This enhances the schema-provided semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Fetch') and clearly identifies the resource ('full content of a Hytale modding documentation page'). It distinguishes itself from the sibling tool search_docs by indicating it retrieves full content rather than performing a search.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit usage guidance: 'You MUST use the search_docs tool first to get a list of URLs that are compatible with this tool.' This clearly states when to use this tool and the required prerequisite, effectively distinguishing it from search_docs.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_docsD

Fetch the full content of a Hytale modding documentation page. Provide a doc path (e.g. '/en/docs/official-documentation'). Use search_docs first to find the right page path.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of pages to return (default: 10)
queryYesSearch query (e.g. 'custom UI', 'NPC template', 'world generation')
localeNoLocale code (default: 'en')en

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultsYes

TDQS

D1.3/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry the full burden. It fails to disclose that this is a search operation returning page results; instead, it claims to fetch full content. There is no mention of pagination, result format, or any behavioral details. The description actively misleads about what the tool does.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short but not concise in an effective way. It mixes two unrelated instructions (fetching content and using search_docs) without clear separation. The structure is confusing and fails to front-load the actual search purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite having an output schema and simple parameters, the description is incomplete and misleading. An agent would not be able to correctly select and invoke this tool based on the description. It lacks any statement that this is a search tool, and the reference to 'doc path' is a serious omission/contradiction.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema covers all parameters (query, limit, locale) with clear descriptions. However, the description instructs 'Provide a doc path (e.g. '/en/docs/official-documentation')', which does not match any parameter. A doc path is not the query parameter, and no 'path' parameter exists. This directly contradicts the schema and misguides the agent.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose1/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description says 'Fetch the full content of a Hytale modding documentation page,' which describes a retrieval tool, not a search tool. The only hint that this is search_docs is 'Use search_docs first to find the right page path,' which is buried and contradicts the main verb 'Fetch'. The purpose is misleading.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides a mild workflow hint ('Use search_docs first to find the right page path'), implying an alternative tool (get_doc) exists for fetching. However, it never explicitly states when to use search_docs vs get_doc, and the description itself confuses the two roles.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 2 tool updatesv1.0.0
    • First observedget_doc
    • First observedsearch_docs

TDQS

C2.5/5.0

Scored across 2 tools

Disambiguation2/5

Both tools are described as 'Fetch the full content of a Hytale modding documentation page', making them appear to do the same thing. While one is named 'search' and the other 'get', the descriptions do not clearly differentiate their purposes, leaving agents confused about which to use.

Naming Consistency4/5

Both tool names follow a verb_noun pattern (search_docs, get_doc), but one uses the plural 'docs' and the other singular 'doc', a minor inconsistency. The verbs 'search' and 'get' are distinct and reasonably clear.

Tool Count3/5

With only 2 tools, the server feels minimal. For a documentation server, a search and fetch pair is plausible, but the count is at the lower end of what is reasonable for a coherent toolset.

Completeness3/5

The server appears to cover searching and fetching documentation pages, but the unclear boundary between the tools leaves a gap in understanding how to discover pages without already knowing a path. A clearer search step or listing mechanism would make the surface more complete.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers