Skip to main content
Glama

Midnight contract

get_midnight_contract
Read-onlyIdempotent

One Midnight contract by address: calls, deploys, updates, first and last seen, entry points, recent actions and latest state. Includes freshness so you know whether the index is current.

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": {
      "address": "<address>"
    },
    "name": "get_midnight_contract"
  }
}

Input Schema

NameRequiredDescriptionDefault
addressYesContract address: 64 to 70 hex characters.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is fully covered structurally. The description does add one piece of genuine behavioral context beyond that — the `freshness` field signalling whether the index is current — which is useful for judging result trustworthiness. It says nothing about what happens when the address is unknown or how large the 'recent actions' set is, so the addition is real but thin.

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?

Two sentences, the resource and key front-loaded, with the field list in the second half and the freshness note last. No filler. The enumeration is longish but each item is a distinct returned field, so it earns its space — though it reads as a feature list rather than a narrative.

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?

There is no output schema, so the description's enumeration of returned fields (calls, deploys, entry points, latest state, freshness) is the only place an agent learns the shape of the response — and it does that job. For a single-address, non-paginated, read-only lookup with full annotation coverage, little else is required; only unknown-address behavior is left unstated.

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 exactly one parameter with 100% schema description coverage (the 64–70 hex character pattern and its description), so the schema carries the semantic load. The description only echoes 'by address' and adds no format or edge-case guidance itself. Baseline 3 applies when the schema already documents the parameter fully.

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 names a specific resource (one Midnight contract), the lookup key (by address), and enumerates the payload: calls, deploys, updates, first/last seen, entry points, recent actions, latest state. That is far more than a restatement of the name. It stops short of explicitly contrasting with the nearest sibling, get_midnight_network, so an agent must infer that this is the per-contract view and that one is the network-level view.

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 only implied by 'by address' — the reader infers this is the tool for inspecting a single contract. There is no explicit when-to-use versus get_midnight_network, get_address, or get_transaction, and no stated prerequisites or failure behavior for an unknown address. Adequate for a single-purpose lookup but leaves the agent to reason about alternatives.

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