# Modelmeter

**Category:** 💻 Developer Tools  
**Repository:** https://github.com/modelmeters/modelmeter  
**Views:** 0  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/modelmeter

## Description
The changelog of record for the AI stack: sunset checks, deprecations, pricing, and model events.

## Claude Desktop Quick Installation
Heuristic fallback — verify the package name and runner against the repository README before running it. Uses `npx` (confidence: low):

```json
"mcpServers": {
  "modelmeter": {
    "command": "npx",
    "args": ["-y","modelmeter"]
  }
}
```

## Documentation & README

# Modelmeter

The changelog of record for the AI stack. Live at [modelmeter.xyz](https://modelmeter.xyz).

## What this is

A machine-readable, source-verified record of everything that changes in the model layer: **deprecations with sunset dates and migration targets, silent model swaps behind stable IDs, price changes, releases** — plus three years of pricing history and cost tooling. Every event carries its sources with verbatim quotes (most with archive snapshots), a verification status (`unverified` → human-reviewed `verified`), and corrections are never silent — a `correction` event points at what it supersedes.

Built primarily for AI agents to call programmatically, secondarily for humans through a dashboard. Reach it three ways: plain **GET URLs** returning JSON, a remote **[MCP server](#mcp-server)** any tool-calling agent can connect to, and a **visual dashboard** built on the same endpoints. The wedge: clean URLs, stable JSON contracts, an [OpenAPI spec](https://github.com/modelmeters/modelmeter/blob/HEAD/public/openapi.yaml), and an [`llms.txt`](https://github.com/modelmeters/modelmeter/blob/HEAD/public/llms.txt) discoverability file. Most sites in this space are JS-heavy SPAs that agents can't use; Modelmeter is built the other way around.

## Endpoints

- `GET /estimate?model=X&input=N&output=M` — token cost for a hypothetical call, including upstream-markup comparison for reseller models
- `GET /models` — current model catalog, with filters
- `GET /model?id=X` — unified card for one model: normalized pricing, capabilities (context window, vision, reasoning, tags), availability, reseller markup, and a price-history summary (launch vs. current price, % change, all-time low/high)
- `GET /check?models=gpt-4o,claude-sonnet-4-6` — **is my stack okay?** Verdict per model: scheduled retirements with days-remaining and migration targets, past retirements, breaking changes, or a clean bill
- `GET /deprecations` — per-model retirement rows: which model dies when, with runway and migration target
- `GET /feed.xml` / `GET /feed.json` — RSS 2.0 / JSON Feed 1.1 of breaking and action-required events
- `GET /events` — the changelog of record: deprecations, price changes, launches and surrounding market events, each with `severity` (`breaking` | `action_required` | `informational`), `announced_at`/`effective_at` dates, sources with quotes, and verification `status`. Filters: `provider`, `type`, `model`, `severity`, `since`, `until`, `status`
- `GET /history` — historical pricing time-series per model, with filters
- `GET /pricing.json` — raw pricing snapshot
- `GET /events.json` — raw events snapshot
- `GET /history.json` — raw historical time-series

See [`public/openapi.yaml`](https://github.com/modelmeters/modelmeter/blob/HEAD/public/openapi.yaml) for the full spec.

## GitHub Action

Fail CI when a model your repo depends on is deprecated, sunsetting, or already retired:

```yaml
- uses: modelmeters/modelmeter/actions/check@main
  # with:
  #   models: "gpt-4o, claude-sonnet-4-6"   # optional — otherwise the repo is scanned for known model ids
  #   fail-on: breaking                      # breaking (default) | retired | none
  #   warn-days: "120"                       # sunsets within N days fail; beyond N warn
```

The action scans your repo for known model ids (catalog + every model named in a deprecation event, dashed and dotted spellings), calls `/check`, annotates the exact `file:line` of each affected model, writes a job-summary table with migration targets, and exits nonzero per your `fail-on` policy.

## MCP server

Modelmeter is also a remote [MCP](https://modelcontextprotocol.io) server, so any tool-calling agent (Claude, Hermes, …) can call it natively over the Streamable HTTP transport — no auth, no install:

```
https://modelmeter.xyz/mcp
```

Tools: `check_model_dependencies`, `list_deprecations`, `estimate_cost`, `get_model`, `list_models`, `get_price_history`, `list_events`. Start with `list_models` to discover ids, then `get_model` or `estimate_cost`. The MCP tools return the same data as the REST endpoints above — use whichever your runtime prefers.

## Datasets

- [`pricing/`](https://github.com/modelmeters/modelmeter/blob/HEAD/pricing/) — current and historical model pricing across providers
- [`events/`](https://github.com/modelmeters/modelmeter/blob/HEAD/events/) — the events record (schema 2.0.0): deprecations, price changes, releases, and market events with primary-source citations, verbatim quotes, and verification status

Each entry carries a `last_verified` date. Daily snapshots in `pricing/snapshots/` accumulate the historical record. Wrong pricing is the existential risk — the schema requires explicit human verification before an entry is served.

## Contributing

Found a price change? Open a PR updating [`pricing/current.json`](https://github.com/modelmeters/modelmeter/blob/HEAD/pricing/current.json) with the new value, an updated `last_verified` date, and the source URL.

Spotted a meaningful AI market event? Add an entry to [`events/current.json`](https://github.com/modelmeters/modelmeter/blob/HEAD/events/current.json) with primary-source citations and `verified: true`.

Automation opens issues when provider pricing pages change. Pick one up if you want to help.

## License

MIT — see [LICENSE](https://github.com/modelmeters/modelmeter/blob/HEAD/LICENSE).
