{
  "reference_kind": "editorial_input_field_inventory_not_runtime_json_schema",
  "verified_on": "2026-10-07",
  "implementation_revision": "309a912ab11ebb5b1bdd114a7d43c251e532cc43",
  "endpoint": "https://dev.testril.ai/mcp",
  "endpoint_status": "read_only_development_endpoint_reviewed_production_designation_not_confirmed",
  "authority": "Use deployed MCP tools/list schemas and server instructions.",
  "tools": [
    {
      "name": "health_check",
      "description": "Shallow process/connect diagnostics, chain IDs, version, counts, and payment rail; no dependency probes.",
      "input_fields": {},
      "reference_url": "/agents/mcp-tools/"
    },
    {
      "name": "inspect",
      "description": "Catalog, scope, coverage, jobs, chains, payment channels, pricing, and wallet accounting.",
      "input_fields": {
        "subject": {
          "type": "string",
          "required": true
        },
        "bound_function_id": {
          "type": "string",
          "required": false
        },
        "function_slug": {
          "type": "string",
          "required": false
        },
        "job_id": {
          "type": "string",
          "required": false
        },
        "chain_id": {
          "type": "unsigned_integer",
          "required": false
        },
        "payer": {
          "type": "string",
          "required": false
        },
        "network": {
          "type": "string",
          "required": false
        },
        "wallet": {
          "type": "string",
          "required": false
        }
      },
      "reference_url": "/agents/mcp-tools/"
    },
    {
      "name": "bind",
      "description": "Instantiate a catalog template with explicit chain and structural scope; no metric data.",
      "input_fields": {
        "function_slug": {
          "type": "string",
          "required": true
        },
        "chain_id": {
          "type": "unsigned_integer",
          "required": true
        },
        "params": {
          "type": "object",
          "required": false
        }
      },
      "reference_url": "/agents/mcp-tools/"
    },
    {
      "name": "ask",
      "description": "Select a catalog Function or live declared binding and bind scope; authors nothing. Resolve suggested parameters or windows.",
      "input_fields": {
        "chain_id": {
          "type": "unsigned_integer",
          "required": true
        },
        "from_block": {
          "type": "unsigned_integer",
          "required": false
        },
        "function_slug": {
          "type": "string",
          "required": false
        },
        "metric": {
          "type": "string",
          "required": true
        },
        "params": {
          "type": "object",
          "required": false
        },
        "to_block": {
          "type": "unsigned_integer",
          "required": false
        }
      },
      "reference_url": "/agents/mcp-tools/"
    },
    {
      "name": "materialize",
      "description": "Freeze and fill unpaid coverage holes, then execute using only payment_id.",
      "input_fields": {
        "payment_id": {
          "type": "string",
          "required": false
        },
        "bound_function_id": {
          "type": "string",
          "required": false
        },
        "from_block": {
          "type": "unsigned_integer",
          "required": false
        },
        "to_block": {
          "type": "unsigned_integer",
          "required": false
        },
        "extra_cache_days": {
          "type": "unsigned_integer",
          "required": false
        }
      },
      "reference_url": "/agents/mcp-tools/"
    },
    {
      "name": "pay_quote",
      "description": "Settle a frozen materialize/read quote; payload is signed x402 v2 JSON text.",
      "input_fields": {
        "quote_id": {
          "type": "string",
          "required": true
        },
        "payload": {
          "type": "string",
          "required": false
        }
      },
      "reference_url": "/agents/mcp-tools/"
    },
    {
      "name": "read",
      "description": "Read all row attributes typed by the Function row schema from fully materialized coverage; optional leading row-key filter, no indexing or pagination.",
      "input_fields": {
        "payment_id": {
          "type": "string",
          "required": false
        },
        "bound_function_id": {
          "type": "string",
          "required": false
        },
        "from_block": {
          "type": "unsigned_integer",
          "required": false
        },
        "to_block": {
          "type": "unsigned_integer",
          "required": false
        },
        "key": {
          "type": "object_of_string_values",
          "required": false,
          "constraint": "A leading run of key parts from the Function row schema after block."
        }
      },
      "reference_url": "/agents/mcp-tools/"
    },
    {
      "name": "provenance",
      "description": "Expand contributing block numbers and hashes for the bound function and exact window; no attribute selector.",
      "input_fields": {
        "from_block": {
          "type": "unsigned_integer",
          "required": true
        },
        "to_block": {
          "type": "unsigned_integer",
          "required": true
        },
        "bound_function_id": {
          "type": "string",
          "required": false
        }
      },
      "reference_url": "/agents/mcp-tools/"
    },
    {
      "name": "stop",
      "description": "Stop the specific in-flight materialize quote held by the current NFT owner; inspect refunds and unstopped rows.",
      "input_fields": {
        "bound_function_id": {
          "type": "string",
          "required": true
        },
        "wallet": {
          "type": "string",
          "required": true
        },
        "quote_id": {
          "type": "string",
          "required": true
        }
      },
      "reference_url": "/agents/mcp-tools/"
    },
    {
      "name": "claim_rewards",
      "description": "Pay eligible unclaimed USDC atoms to the current claim-right holder; minimum 10000 atoms ($0.01).",
      "input_fields": {
        "wallet": {
          "type": "string",
          "required": true
        }
      },
      "reference_url": "/agents/mcp-tools/"
    }
  ],
  "inspect_subjects": {
    "functions": {
      "required_fields": [],
      "optional_fields": []
    },
    "function": {
      "required_fields": [
        "function_slug"
      ],
      "optional_fields": []
    },
    "bound_functions": {
      "required_fields": [],
      "optional_fields": [
        "function_slug"
      ]
    },
    "bound_function": {
      "required_fields": [
        "bound_function_id"
      ],
      "optional_fields": []
    },
    "jobs": {
      "required_fields": [],
      "optional_fields": []
    },
    "job": {
      "required_fields": [
        "job_id"
      ],
      "optional_fields": []
    },
    "chains": {
      "required_fields": [],
      "optional_fields": []
    },
    "chain": {
      "required_fields": [
        "chain_id"
      ],
      "optional_fields": []
    },
    "channels": {
      "required_fields": [
        "payer"
      ],
      "optional_fields": [
        "network"
      ]
    },
    "nft": {
      "required_fields": [
        "wallet"
      ],
      "optional_fields": []
    },
    "pricing": {
      "required_fields": [],
      "optional_fields": []
    }
  },
  "outcomes": [
    "success",
    "error",
    "incomplete",
    "payment_required",
    "suggested"
  ],
  "rules": {
    "block_windows": "half_open_from_block_inclusive_to_block_exclusive",
    "paid_execution": "Original verb with payment_id only; do not restate work.",
    "identity": "Returned bound_function_id, not name or metric phrasing.",
    "quote_lifetime_seconds": 120,
    "maximum_provenance_contributing_blocks": 10000,
    "spending": "Confirm operator authorization for quoted scope and amount, including mock settlement.",
    "unknown_fields": "Rejected.",
    "provenance_identity": "bound_function_id is optional in the wire type but required for a usable request.",
    "read_materialize_identity": "Either payment_id alone, or bound_function_id and applicable work fields.",
    "public_tools_only": "Only the 10 advertised public tools are documented; internal and separate admin-server operations are excluded.",
    "read_key": "Optional object of string values for a leading run of row-key parts; all attributes are returned.",
    "retired_inputs": [
      "read.attributes",
      "read.entity",
      "provenance.attribute",
      "read.cursor",
      "read.limit"
    ],
    "indexing_head": "Indexing runs through the current chain head; future paid tails wait in waiting_blocks, not for finality.",
    "stateful_materialize": "Functions with memory are quoted and walked from contract creation; preceding coverage is required.",
    "stop_ownership": "Current NFT owner at the chain tip, when a collection is configured; original payer alone is insufficient.",
    "minimum_claim_atoms": 10000,
    "declared_bindings": "Live instructions advertise named catalog scopes and dependency params supplied as nested scope or discovered binding names; data tools still require the returned bound_function_id.",
    "dependency_materialize": "Live instructions advertise quotes across needed dependency and reader blocks, walking dependencies first; runtime execution was not verified."
  },
  "captured_example_endpoint": "https://dev.testril.ai/mcp",
  "captured_example_payment_network": "Base Sepolia testnet USDC",
  "release_review": {
    "reviewed_on": "2026-10-07",
    "implementation_worktree_clean": true,
    "live_protocol_version": "2025-06-18",
    "live_tool_names_and_input_fields_match": true,
    "live_schema_sha256": "3d5d22e4f616b7cb0178cbcfafa1c6fe6fdbf5d43ec0f9695ae7ad2db815938c",
    "live_instructions_sha256": "07d3061d0111b820a8498af40b5ab8dc181d6b13657363cbe0122c9bbb10039f",
    "verification_scope": "initialize and tools/list only; no metric execution, payments, or mutation",
    "schema_fingerprint_encoding": "UTF-8 JSON of tools array, sorted object keys, compact separators",
    "deployment_revision": "Not independently established; endpoint reports 0.6.0. Public tool names and input fields agree with the reviewed local revision; live instructions advertise additional capabilities.",
    "live_server_version": "0.6.0",
    "implementation_review_scope": "Public MCP registrations, argument types, instructions, handlers, relevant test sources, and REST routes/types; tests were read, not executed.",
    "deployment_differences": [
      "Live input/output schemas retain unsigned formats such as uint64; local advertised schemas remove those formats and preserve minimum: 0.",
      "Live 0.6.0 instructions advertise declared bindings and dependency-aware materialization beyond the reviewed local revision. Guides reflect the advertised behavior; execution was not verified."
    ],
    "release_scope": "Static demos catalog and navigation; local preview port selection. Demo applications remain in the separate demos repository."
  }
}
