Skip to main content
Glama

Validate a game server Dockerfile and port config

edgegap_validate_server_config
Read-onlyIdempotent

Validate your game server Dockerfile and ports/resources against Edgegap's requirements to catch build, push, and deploy failures before they happen.

Instructions

Check a game server Dockerfile and the ports/resources you intend to register against what Edgegap requires, BEFORE building and pushing. Catches the failures that otherwise only show up after a build, push, version and deploy: ARM or Windows images (Edgegap runs linux/amd64), Unreal running as root, missing Unity -batchmode -nographics, a server bound to localhost, EXPOSE ports that do not match the version ports, a protocol that does not match the netcode transport, the "latest" tag, and bad CPU/memory ratios. Pass the Dockerfile text (read it from disk first). If there is no Dockerfile yet, call edgegap_generate_dockerfile instead. Makes no API calls.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
portsNoPorts you plan to pass to edgegap_create_app_version.
engineNoGame engine. Detected from the Dockerfile when omitted.
netcodeNoNetworking transport, to check the port protocol. Known: mirror-kcp, kcp, mirror-telepathy, telepathy, mirror-simpleweb, simpleweb, websocket, fishnet-tugboat, tugboat, netcode-for-gameobjects, ngo, unity-transport, utp, photon-fusion, litenetlib, enet, unreal-netdriver, godot-enet, godot-websocket.
cpu_unitsNo
memory_mbNo
docker_tagNo
dockerfileNoFull text of the Dockerfile.
docker_imageNo
docker_repositoryNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.2.0

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint and openWorldHint=false, so the safety profile is known. The description still adds real value beyond them: it enumerates the concrete failure classes detected (ARM/Windows images, root Unreal, missing -batchmode -nographics, localhost binding, EXPOSE/version port mismatch, protocol/netcode mismatch, 'latest' tag, bad CPU/memory ratios) and states 'Makes no API calls,' which confirms it is a local static check. It stops short of describing the returned report.

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

Conciseness4/5

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

The purpose and timing are front-loaded in the first sentence, followed by a dense but well-ordered list of concrete failure modes rather than vague hedging. It is long, but nearly every clause names a distinct, actionable check, so little is wasted.

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?

For a 9-parameter, no-output-schema validation tool, the description conveys purpose, timing, alternative routing, and the failure classes it catches. The main gap is the shape of the result (pass/fail report, list of issues) and how the optional params like docker_image/docker_repository feed the check.

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

Parameters3/5

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

Schema coverage is only 44%, so several parameters (cpu_units, memory_mb, docker_tag, docker_image, docker_repository) carry no explanation anywhere. The description partially compensates by telling the agent to pass the Dockerfile text (read from disk first) and by conveying the port/netcode relationship that drives validation, but it adds little for the remaining unlabeled params. Baseline 3 is appropriate given the partial coverage.

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?

States a specific verb (validate/check) and resource (game server Dockerfile plus ports/resources) scoped against Edgegap's requirements. It explicitly distinguishes itself from edgegap_generate_dockerfile and from the build/push/version/deploy flow, so an agent knows exactly what this tool does and does not do.

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?

Gives explicit timing ('BEFORE building and pushing') and a clear branch condition with an alternative ('If there is no Dockerfile yet, call edgegap_generate_dockerfile instead'). This is exactly the when-to-use / when-not-to-use / alternative structure.

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