Skip to main content
Glama

Validate a resource

open77_validate
Read-only

Validates a resource's scripts and manifest against the server build, catching Lua syntax errors, unknown natives, undeclared permissions, and command conflicts.

Instructions

Static checks of one resource directory against the served build: manifest grammar, script files, Lua syntax (5.3-compatible parser; exact 5.4 via the server's --lint when present), unknown Open77.* natives, client natives in server scripts and the reverse, permissions used but not declared, natives newer than the build or unreleased, and command names another resource of this server already registers (a warning; literal RegisterCommand names only). Argument resource: a resource name from open77_workspace or an absolute path.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
resourceYesResource name under the resources root, or a directory path

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.7/5.0
Behavior5/5

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

Beyond the readOnlyHint annotation, it discloses important behaviors: the Lua parser version caveat ('5.3-compatible parser; exact 5.4 via the server's --lint when present'), command-name collisions being only warnings for literal RegisterCommand names, and the warning-only nature of that check. This gives an agent realistic expectations about strictness and side effects.

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 dense yet front-loaded with the core operation and then efficiently organizes the many check categories. Every clause contributes useful information, with no filler or repetition.

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

Completeness5/5

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

Given the tool's single required parameter and no output schema, the description covers what is validated, the input source, the build context, and important edge cases like Lua version and literal command names. An agent has what it needs to call the tool appropriately.

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 covers the parameter fully, but the description adds meaningful context by saying the resource can come 'from open77_workspace or an absolute path', clarifying where acceptable names come from beyond the schema's wording.

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 names the exact operation ('Static checks of one resource directory against the served build') and enumerates the specific check categories, making the purpose unmistakable. This clearly separates it from siblings such as open77_build or open77_resource.

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

Usage Guidelines4/5

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

The description gives clear context for when validation applies, especially 'against the served build' and the detailed list of checks. It does not explicitly name alternative tools or state when not to use it, but the intended scenario is strongly implied.

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