Skip to main content
Glama
Proofofarchitect

arc-pow-sigils-mcp

Verify craft commit

verify_craft_commit

Recompute the commit hash from choices and salt and compare it to the on-chain choicesHash, without sending a transaction. Also reveals settlement flags, player, boost tier, and reveal window.

Instructions

Verify a crafting commit WITHOUT sending a transaction: reads commits(commitId) from the CraftingController, recomputes keccak256(abi.encode(choices, salt)) the same way the contract does, and reports whether it matches the on-chain choicesHash, plus settlement flags, player, boost tier and the reveal window.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
saltYes32-byte client secret (0x + 64 hex) used at commit.
choicesYesReveal choices as [slot, parent] pairs, in the exact order hashed at commit.
commitIdYes1-based commit id (see CraftingController.lastCommitId()).

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.5/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 full burden of behavioral disclosure. It transparently states that the tool is read-only, reads on-chain commit data, recomputes the hash exactly as the contract does, and reports a match status plus additional fields. It does not mention error behavior (e.g., reverts for invalid commitId), which prevents a perfect score.

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 a single, front-loaded sentence that packs the core action, the non-transactional caveat, the exact computation, and the output contents into minimal words. No filler or repetitive phrasing is present, and every clause contributes useful information.

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 has no output schema, the description does a good job listing the returned data (match status, settlement flags, player, boost tier, reveal window). It does not cover edge cases such as behavior when commitId does not exist or invalid input handling, which would make it more complete, but for a read-only verification call it is largely sufficient.

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

Parameters5/5

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

Although the input schema already documents all parameters (100% schema description coverage), the description adds significant semantic value by explaining how the parameters interact: commitId selects the commit, while choices and salt are combined via keccak256(abi.encode(choices, salt)) in the contract's exact manner. This goes well beyond the baseline level.

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 opens with a specific verb ('Verify') and resource ('a crafting commit'), then immediately clarifies the non-transactional nature ('WITHOUT sending a transaction'), which distinguishes it from any mutation-style sibling. It further names the exact contract function (CraftingController.commits) and the verification computation, leaving no ambiguity about what this tool does.

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 explicitly states the tool verifies without sending a transaction, giving a clear context for when it should be used. It does not name sibling alternatives or provide explicit when-not-to-use conditions, but the non-transactional framing is a strong contextual cue that differentiates it from transaction-sending tools.

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