Skip to main content
Glama

Per-agent stats and identity

get_agent
Read-only

One wallet in its paying role: its resolved identity and its own settlement aggregates. Every figure is that wallet's own — there are no site-wide totals on this endpoint.

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

Returns:

  • wallet: The wallet queried, lowercased.

  • role: The role it was queried in: agent or merchant.

  • coverage: Read this first. known false means the index has never observed this address, so every figure below is a zero meaning "not observed" — not "observed to be nothing". Also first_seen, last_seen, settlements_scanned, scan_truncated and scan_cap.

  • entities: Resolved identity rows: display name, ENS, ERC-8004 card, role, first and last seen.

  • erc8004_agents: ERC-8004 registrations whose on-chain agentWallet is this address.

  • aggregates: That wallet's own totals: inbound/outbound USD and counts, distinct counterparties, chain split. basis says what they were computed over — index_rollup is the whole history, scanned_settlements is the capped scan and is a floor when coverage.scan_truncated is set. distinct_counterparties excludes the wallet itself on both bases. chain_split is the exception and carries its own chain_split_basis: the rollup is keyed by wallet and holds no chain dimension, so that split is ALWAYS the scan and is capped with it, whatever the object-level basis says.

  • data_quality: The risk annotation. Route on verdict, not on note. verdict is one of unobserved (never seen — nothing assessed), patterns_detected, no_patterns_detected, or insufficient_evidence — the last meaning the address WAS observed, nothing fired, and not enough of its history was examined for that to rule anything out. checks carries every check with its threshold, what was observed, its own basis, and conclusive: a check that FIRED is always conclusive (a pattern seen in a sample happened), a check that did not fire on a truncated scan is not. note says the same thing in a sentence and is derived from the two.

  • recent: A slice of its activity, recent_limit rows (default 5). Each row also carries is_self_payment (payer = payee, annotated rather than only excluded — a third of the feed can be self-payment) and evidence: { verified, method, probability, tier }. verified is THREE-VALUED — true a named facilitator relayed it, false examined with no EIP-3009 marker, and null gasless and authorized but NOT ESTABLISHED as x402, which is not the same as disproven. tier is proven | probable | unproven | not_x402 | ungraded.

Input Schema

NameRequiredDescriptionDefault
walletYesAn EVM address (`0x` + 40 hex digits; case-insensitive, lowercased before lookup) or a Solana address (base58; case-sensitive, used exactly as given). An address the index has not observed answers `coverage.known: false`, not zeros.
recent_limitNoSettlement rows to embed in the profile. 0 omits them. Default 5 — this was an unbounded 25, which is most of the payload on a surface where a response is billed as context tokens.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, non-destructive, openWorld), and the description still adds material context: the API-key auth scheme, scan truncation making aggregates a floor, chain_split always being scan-based regardless of object-level basis, and the three-valued `verified` field where null means not-established rather than disproven. That is real behavioral disclosure beyond structured fields, with only minor gaps (no rate limits or payload size limits).

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?

Long, but front-loaded with purpose, endpoint, and auth, then organized into a bulleted Returns block that maps to a response with no output schema. The density is justified, though a few editorial asides ('which is most of the payload on a surface where a response is billed as context tokens') could be trimmed without loss.

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?

With no output schema, the description carries the full burden of explaining returns, and it does so thoroughly: coverage semantics, entity resolution, ERC-8004 linkage, aggregate bases, data_quality verdict routing, and the recent-activity evidence model. An agent has everything needed to call the tool and to interpret each field 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%, so both parameters are already documented thoroughly, including the EVM/Solana address formats and recent_limit's 0-to-50 range. The description echoes the default of 5 and reinforces the coverage.known:false behavior, but adds little the schema does not already say; baseline 3 is appropriate.

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?

States a specific verb+resource: one wallet's resolved identity plus its own settlement aggregates, wrapping GET /v0/agents/{wallet}. It also pre-empts confusion with the many list_* siblings by declaring 'there are no site-wide totals on this endpoint,' so an agent knows this is a single-wallet lookup rather than a roster or leaderboard call.

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 guidance is interpretive rather than routing: 'Read this first' on coverage and 'Route on verdict, not on note' tell the agent how to consume the payload. It never explicitly says when to choose this over get_account, get_merchant, or list_entity_settlements, so the agent must infer sibling boundaries from names alone.

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