Skip to main content
Glama

OMENZ agent tools

contract_build

A2A Contract Builder: turn a machine job into signed terms both agents hold: deliverable, deterministic acceptance tests (required_fields, field_types, regex, min_items, max_bytes, equals, url_alive, claim_evidence), max spend, deadline, parties. Ed25519-signed by OMENZ; verify offline with /v1/passport/key. By OMENZ. (MCP calls run in AYNE, the free playzone; production: POST https://www.omenz.org/api/tollbooth/v1/contract/build, $0.002 via x402.)

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "terms": "<terms>"
    },
    "name": "contract_build"
  }
}

Input Schema

NameRequiredDescriptionDefault
termsYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A3.5/5.0
Behavior4/5

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

With no annotations supplied, the description carries the full disclosure burden and does reasonably well: it states that the contract is Ed25519-signed by OMENZ, that it can be verified offline via /v1/passport/key, and that production calls cost $0.002 via x402 while MCP calls run free in AYNE. That covers side effects, trust model, and cost. It omits what a failed build returns, whether builds are idempotent, or what happens to prior contracts, which keeps it below a 5.

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

Conciseness3/5

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

The core definition is front-loaded, which is good, but it is delivered as one dense run-on sentence with a long inline parenthetical list of test types. 'By OMENZ.' is redundant filler given the same attribution earlier, and the endpoint/pricing detail is wedged into parentheses rather than structured. Readable, but cluttered.

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

Completeness3/5

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

For a tool with no annotations, no output schema, and a nested untyped object parameter, the description covers the domain well but leaves gaps: the return shape (contract identifier, signed artifact) is unexplained, and error or partial-acceptance behavior is unaddressed. Adequate to attempt a call, not quite complete for a signing plus payment operation.

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?

There is a single required 'terms' object with 0% schema description coverage and no defined sub-properties, so the description must compensate. It does list the expected content (deliverable, acceptance tests with enumerated test kinds, max spend, deadline, parties), which is meaningful beyond the schema. But it never clarifies that these are nested inside 'terms', nor the types/format of max spend or deadline, leaving the nesting ambiguous.

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

Purpose4/5

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

The description uses a specific verb+resource framing: 'turn a machine job into signed terms both agents hold', then enumerates the terms (deliverable, acceptance tests, max spend, deadline, parties). An agent can tell this constructs and signs a contract rather than accepting one. It stops short of naming the sibling it must not be confused with (contract_accept), so it falls below a 5.

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

Usage Guidelines3/5

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

Usage is implied: this is what you call when two agents need a mutually held, signed set of terms. The parenthetical distinguishes the free AYNE playzone from the paid production endpoint, which is useful routing context. However, there is no explicit 'use this when X, use contract_accept instead' guidance and no stated prerequisites for either call path.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources