# Agent Charts

> Paid AI-agent tools ranked by real on-chain spend, wash trading filtered out. Updated daily.

- name: xyz.agentcharts/ranking
- version: 1.0.1
- connection class: R0 (autonomous)
- trust: 82/100 flags: no-repository
- quality: 88/100 (new)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/xyz.agentcharts%2Franking
- tools: https://api.protogrid.dev/v1/servers/xyz.agentcharts%2Franking/tools

**An agent can connect right now, no human step.** Remote endpoint, no authentication, reachable on the last probe.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "ranking": {
      "type": "http",
      "url": "https://agents.agentcharts.xyz/mcp"
    }
  }
}
```


## Trust

- hygiene: 80
- liveness: 98
- freshness: 100
- provenance: 55
- drivers: +dns-namespace +website +reachable +uptime-94% +updated-4d-ago -no-repository
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 88/100 (new)

### protocol: 88 (weight 25)

- pass `protocol.modern`: supports 2026-07-28 (server/discover)
- pass `protocol.stateless`: answers without a session
- pass `protocol.transport`: streamable HTTP
- warn `protocol.list_ttl`: tools/list declares ttlMs 0, so clients re-fetch it on every use

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 88 (weight 30)

- pass `tools.descriptions`: every tool has a description
- pass `tools.description_length`: descriptions are concise
- pass `tools.schemas`: every tool has an object input schema
- pass `tools.annotations`: 3 of 3 tools declare readOnlyHint or destructiveHint
- fail `tools.directory_hints`: no tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: categories (destructiveHint, idempotentHint); best_tools (destructiveHint, idempotentHint); seller (destructiveHint, idempotentHint)
- pass `tools.token_cost`: about 493 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump
- pass `tools.hidden_text`: no hidden text in tool names, descriptions, schemas or annotations

### stability: n/a (weight 15)

- n/a `stability.changes`, `stability.rug_pull`, `stability.new_links`: tool history recorded for 3 of the 7 days needed

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 3, about 493 tokens to load them all
- tool set hash: bb5eb34adb44bae2c24f47003ff28859
- tools last changed: 2026-11-10T19:49:54.468Z
- badge: [![protogrid quality](https://protogrid.dev/badge/xyz.agentcharts/ranking.svg)](https://protogrid.dev/servers/xyz.agentcharts/ranking)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

- 2026-11-10 `seller` changed (description, inputSchema, annotations) **meaning changed**
  - before: One ranked seller by its domain: category, rank, 30-day numbers, the last weeks, and links.
  - after: Look up one ranked seller by its domain: its category and rank; its spend in USD, buyers and paid calls over the last 30 days; median price per call; chains; its rank, spend and buyers at the end of each recent week; a link to its site and its Agent Charts page. Use it to check a tool you already have in mind; use best_tools to compare a whole category. A domain that isn't ranked returns an error. Read-only and free, no sign-in.
- 2026-11-10 `best_tools` changed (description, inputSchema, annotations) **meaning changed**
  - before: The ranking of one category: sellers by 30-day spend from real buyers, with buyers, paid calls, median price per call, chains, and links.
  - after: Rank the paid tools in one category by what real buyers spent on them in the last 30 days (x402 and MPP payments, wash trading filtered out). Returns every ranked seller, rank 1 first, each with spend in USD, buyers, paid calls, median price per call, chains, a link to its site and its Agent Charts page. Use it to choose a tool for a job; use seller to check one domain you already know. An unknown slug returns an error: the slugs come from categories. Read-only and free, no sign-in.
- 2026-11-10 `categories` changed (description, annotations) **meaning changed**
  - before: The categories of paid agent tools, with the slug each other tool takes.
  - after: List every category Agent Charts ranks, each with its slug and name, such as web-search. Call this first: best_tools takes one of these slugs. Every answer carries data_as_of, the last day in the data, which updates daily. Read-only and free, no sign-in.

Full history: https://api.protogrid.dev/v1/servers/xyz.agentcharts%2Franking/changes

## Remotes

- https://agents.agentcharts.xyz/mcp (streamable-http, auth none, reachable true, uptime30d 0.9375)

## Packages

_none_

## Tools (3)

- `best_tools`: Rank the paid tools in one category by what real buyers spent on them in the last 30 days (x402 and MPP payments, wash trading filtered out). Returns every ranked seller, rank 1 first, each with spend in USD, buyers, paid calls, median price per call, chains, a link to its site and its Agent Charts page. Use it to choose a tool for a job; use seller to check one domain you already know. An unknown slug returns an error: the slugs come from categories. Read-only and free, no sign-in.
- `categories`: List every category Agent Charts ranks, each with its slug and name, such as web-search. Call this first: best_tools takes one of these slugs. Every answer carries data_as_of, the last day in the data, which updates daily. Read-only and free, no sign-in.
- `seller`: Look up one ranked seller by its domain: its category and rank; its spend in USD, buyers and paid calls over the last 30 days; median price per call; chains; its rank, spend and buyers at the end of each recent week; a link to its site and its Agent Charts page. Use it to check a tool you already have in mind; use best_tools to compare a whole category. A domain that isn't ranked returns an error. Read-only and free, no sign-in.
