Skip to main content
Glama

Indexed ERC-8004 agents

list_agents
Read-only

Agents read from the on-chain IdentityRegistry, with their registration card and payment wallet. score is the ERC-8004 reputation score derived from on-chain feedback — it is the REGISTRY's number, not a Roundhouse rating, and it is null for every agent no counterparty has left feedback for. Roundhouse publishes no trust score of its own.

Wraps GET /v0/agents. Access: requires an API key (Authorization: Bearer rh_live_… or x-api-key).

Returns:

  • agents: Agent rows with identity, wallet and the ERC-8004 score (null where the registry holds no feedback). x402_support is the registration card's own declaration; last_activity_at and activity_status are the observed halves, derived from settlements and feedback.

  • next_before: Cursor for the next page, or null.

  • meta: The chain served and as_of. On an EMPTY list it also carries dataset_last_written_at, dataset_row_count and any warnings (e.g. endpoints_catalog_stale) — so a zero can be read as a quiet market or a stalled ingest rather than guessed at.

Input Schema

NameRequiredDescriptionDefault
qNoFree-text search over name and description.
x402NoThe earlier name for `x402_declared`, kept because it is published and a caller sending it wants the same rows. Prefer `x402_declared`, whose name says what it reads. Sending both uses `x402_declared`.
limitNoRows to return. Clamped to 100; values outside the range are clamped, not rejected.
beforeNoOpaque cursor from a previous response's `next_before`. It encodes the whole sort key, tiebreaker included, so a page boundary inside a group of rows sharing a timestamp does not skip the rest. Do not parse it or build one by hand.
x402_declaredNoSet to `true` to keep only agents whose own ERC-8004 registration card declares x402 support (`x402Support: true`). This is the agent's CLAIM ABOUT ITSELF, copied out of a document its owner wrote, and it is not evidence of anything: four of five agents on a page of this filter had `last_activity_at: null`, `activity_status: "unknown"` and no feedback — never observed doing anything. It was named `x402` and documented as "observed on-chain x402 payments", which is the one confusion this index exists to prevent. The old name still works and means the same thing. There is no observed equivalent yet: `agents` carries no per-wallet settlement column, and the weekly activity scan that would populate one covers five agents a run against tens of thousands, so a filter built on it would answer "not observed" about agents nobody has looked at. To screen on evidence today, take the `agent_wallet` and call `get_agent` / `list_entity_settlements` with it.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.1/5.0
Behavior5/5

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

Annotations already mark this read-only/open-world, and the description adds substantial context beyond them: the Bearer/x-api-key auth requirement, that `score` is the registry's number and null without counterparty feedback, that Roundhouse publishes no trust score, and that an empty list carries warnings like `endpoints_catalog_stale` so a zero isn't misread. It also discloses that `x402_declared` is a self-claim, not observed evidence. This is exactly the kind of caveat annotations can't express.

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?

It's long, but the Returns bullet block and the explicit endpoint/auth lines make it scannable, and most sentences carry real signal (empty-list metadata, cursor guarantees, declared-vs-observed). It loses a point for front-loading the `score` caveat ahead of the basic 'what this lists' statement and for some repetition of schema text about the `x402` alias.

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?

There is no output schema, so the description must cover return values, and it does: `agents` fields, `next_before` cursor behavior, and `meta` including the empty-list extension. Combined with the auth and score caveats, an agent has everything needed to call this and interpret the response correctly.

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?

Schema coverage is 100% and each parameter is already documented in detail, including the `x402` vs `x402_declared` legacy alias and cursor semantics, so the description's parameter-level value is mostly redundant. The one genuinely additive note is the framing that the declared filter answers a claim rather than an observation. With the schema doing the heavy lifting, baseline 3 is right.

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 states the resource ('Agents read from the on-chain IdentityRegistry, with their registration card and payment wallet') and pins down the endpoint ('Wraps GET /v0/agents'), so it's clear this is a paged listing of indexed agents. It distinguishes itself from get_agent by pointing to that sibling for evidence screening. It stops just short of a crisp verb-first opener, leading with score semantics instead of 'List agents'.

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?

It gives explicit routing: to screen on observed evidence, take `agent_wallet` and call `get_agent` / `list_entity_settlements`, and explains why no observed-x402 filter exists here. That's a real alternative-selection rule. It lacks a plain 'use this to browse/search the agent index' statement and any exclusion for cases where get_leaderboard or run_sql would be better.

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