# GPU Finder

> Live cloud GPU prices, stock and price history across 30+ providers. Read-only; free API key.

- name: dev.gpufinder/gpufinder
- version: 1.0.1
- connection class: R1 (autonomous)
- trust: 83/100 flags: no-repository
- quality: 79/100 (good)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/dev.gpufinder%2Fgpufinder
- tools: https://api.protogrid.dev/v1/servers/dev.gpufinder%2Fgpufinder/tools

**An agent can connect on its own if it already holds `GPUFINDER_TOKEN`.** Remote endpoint behind a static API key or header. The registry never sees the value; the agent fills the placeholder.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "gpufinder": {
      "type": "http",
      "url": "https://gpufinder.dev/mcp",
      "headers": {
        "Authorization": "Bearer ${GPUFINDER_TOKEN}"
      }
    }
  }
}
```

Placeholders to fill: `${GPUFINDER_TOKEN}`.

## Trust

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

## Quality 79/100 (good)

### 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: 100 (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`: 8 of 8 tools declare readOnlyHint or destructiveHint
- pass `tools.directory_hints`: every tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
- pass `tools.token_cost`: about 1,976 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: 25 (weight 15)

- warn `stability.changes`: 8 tool changes in 30 days
- fail `stability.rug_pull`: 7 tools kept their name but changed most of their description in 30 days; review before trusting them

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

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

- tools: 8, about 1,976 tokens to load them all
- tool set hash: 01199f3cfd61521e562cd459515ddd21
- tools last changed: 2026-10-17T02:14:27.716Z
- badge: [![protogrid quality](https://protogrid.dev/badge/dev.gpufinder/gpufinder.svg)](https://protogrid.dev/servers/dev.gpufinder/gpufinder)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

- 2026-10-17 `get_usage` changed (description) **meaning changed**
  - before: Read this account's shared REST/MCP usage, effective allowance, remaining units and UTC resets. Works after monthly exhaustion; spends no monthly units and remains rate controlled.
  - after: Show this API key's usage across REST and MCP: plan allowance, units used and remaining, and UTC reset times. Use it before large paginated reads or after a quota_exceeded error. Spends no monthly units and works after the monthly allowance is exhausted, but is still rate limited.
- 2026-10-17 `get_market_snapshot` changed (description, inputSchema) **meaning changed**
  - before: Compare cheapest listed and cheapest currently observed in-stock offers for a GPU and count. Includes whole node and per GPU hourly USD prices, timestamps and unknown availability. The whole snapshot costs one data unit; collected stock is not a capacity guarantee.
  - after: Answer "what is the cheapest way to rent this GPU now": the cheapest listed offer and the cheapest offer observed in stock for one GPU model and node size, each with provider, region, whole node and per GPU hourly USD price, availability status and check time, plus how many providers were compared. Use it for a single recommendation; use get_prices for every offer. The whole snapshot costs one data unit; collected stock is not a capacity guarantee.
- 2026-10-17 `get_data_status` changed (description) **meaning changed**
  - before: Read collection timestamps and provider freshness. This is a metered data operation, not an anonymous health check.
  - after: Report how fresh GPU Finder's data is: when price and availability collection last completed, and each provider's last success, last run, consecutive failures and last error. Use it to decide whether a price or availability answer may be stale. Costs one data unit; it is not an anonymous health check.
- 2026-10-17 `get_price_history` changed (description, inputSchema)
  - before: Read monthly GPU price history, at most 12 UTC months per provider series. Pages default to 20 rows, maximum 100; each page costs one data unit. Reuse the same filters and page limit with nextCursor.
  - after: Show how one GPU model's price changed month by month per provider: on-demand and spot USD per whole node hour for up to 12 UTC months. Use it for trends; use get_prices for current prices. Pages default to 20 rows, maximum 100; each page costs one data unit. Reuse the same filters and page limit with nextCursor.
- 2026-10-17 `get_availability` changed (description, inputSchema) **meaning changed**
  - before: Read observed seven-day availability coverage for a GPU, optionally one provider. Missing coverage remains unknown. Pages default to 20 rows, maximum 100.
  - after: Show day-by-day stock for one GPU model over the last seven days, per provider and node size: instances observed available versus total each day. Optionally limit to one provider. Use it to judge how reliably a GPU can be found in stock; prices come from get_prices. Days without observations are unknown, not zero. Pages default to 20 rows, maximum 100; each page costs one data unit.
- 2026-10-17 `get_prices` changed (description, inputSchema) **meaning changed**
  - before: Compare listed prices in USD per whole node hour for a GPU and count. Prices and availability reflect collected data, not a live capacity guarantee. Pages default to 20 rows, maximum 100.
  - after: List every provider offer for one GPU model and node size: provider, instance type, region, GPU count, on-demand and spot USD price per whole node hour, links and last update. Use it for the full price table; use get_market_snapshot for only the cheapest offer, get_availability for stock and get_price_history for trends. Prices reflect collected data, not a live capacity guarantee. Pages default to 20 rows, maximum 100; each page costs one data unit.
- 2026-10-17 `list_providers` changed (description, inputSchema) **meaning changed**
  - before: List GPU cloud providers, price ranges and GPU Finder links. Pages default to 20 rows, maximum 100; each page costs one data unit.
  - after: List GPU cloud providers: name and slug, GPU and instance counts, min/max hourly USD price, egress cost per GB and free egress allowance, website and GPU Finder links, and last update time. Use it to find valid provider slugs or compare providers overall; use get_prices for one GPU's offers. Pages default to 20 rows, maximum 100; each page costs one data unit.
- 2026-10-17 `list_gpus` changed (description, inputSchema) **meaning changed**
  - before: List GPU catalog models and price ranges. Pages default to 20 rows, maximum 100; each page costs one data unit.
  - after: List the GPU models GPU Finder tracks: canonical name and slug, VRAM, memory type, bandwidth, interconnect, provider and instance counts, and min/max hourly USD price. Use it to find valid gpu names for the other tools or to compare GPU specs; use get_prices for per-provider offers. Pages default to 20 rows, maximum 100; each page costs one data unit.

Full history: https://api.protogrid.dev/v1/servers/dev.gpufinder%2Fgpufinder/changes

## Remotes

- https://gpufinder.dev/mcp (streamable-http, auth api_key ${GPUFINDER_TOKEN}, reachable true, uptime30d 1)

## Packages

_none_

## Tools (8)

- `get_availability`: Show day-by-day stock for one GPU model over the last seven days, per provider and node size: instances observed available versus total each day. Optionally limit to one provider. Use it to judge how reliably a GPU can be found in stock; prices come from get_prices. Days without observations are unknown, not zero. Pages default to 20 rows, maximum 100; each page costs one data unit.
- `get_data_status`: Report how fresh GPU Finder's data is: when price and availability collection last completed, and each provider's last success, last run, consecutive failures and last error. Use it to decide whether a price or availability answer may be stale. Costs one data unit; it is not an anonymous health check.
- `get_market_snapshot`: Answer "what is the cheapest way to rent this GPU now": the cheapest listed offer and the cheapest offer observed in stock for one GPU model and node size, each with provider, region, whole node and per GPU hourly USD price, availability status and check time, plus how many providers were compared. Use it for a single recommendation; use get_prices for every offer. The whole snapshot costs one data unit; collected stock is not a capacity guarantee.
- `get_price_history`: Show how one GPU model's price changed month by month per provider: on-demand and spot USD per whole node hour for up to 12 UTC months. Use it for trends; use get_prices for current prices. Pages default to 20 rows, maximum 100; each page costs one data unit. Reuse the same filters and page limit with nextCursor.
- `get_prices`: List every provider offer for one GPU model and node size: provider, instance type, region, GPU count, on-demand and spot USD price per whole node hour, links and last update. Use it for the full price table; use get_market_snapshot for only the cheapest offer, get_availability for stock and get_price_history for trends. Prices reflect collected data, not a live capacity guarantee. Pages default to 20 rows, maximum 100; each page costs one data unit.
- `get_usage`: Show this API key's usage across REST and MCP: plan allowance, units used and remaining, and UTC reset times. Use it before large paginated reads or after a quota_exceeded error. Spends no monthly units and works after the monthly allowance is exhausted, but is still rate limited.
- `list_gpus`: List the GPU models GPU Finder tracks: canonical name and slug, VRAM, memory type, bandwidth, interconnect, provider and instance counts, and min/max hourly USD price. Use it to find valid gpu names for the other tools or to compare GPU specs; use get_prices for per-provider offers. Pages default to 20 rows, maximum 100; each page costs one data unit.
- `list_providers`: List GPU cloud providers: name and slug, GPU and instance counts, min/max hourly USD price, egress cost per GB and free egress allowance, website and GPU Finder links, and last update time. Use it to find valid provider slugs or compare providers overall; use get_prices for one GPU's offers. Pages default to 20 rows, maximum 100; each page costs one data unit.
