A source your coding agent can trust.

One line to connect, three read-only tools, and every answer carries the level it earned, the source, the cost and a trace you can read back.

Metera runs a hosted MCP server. Point a client at it and your agent gains three tools, so it can fetch verified data while it works instead of guessing from what it remembers.

https://api.metera.xyz/mcp

Connecting

In an app, paste that URL as a custom connector. Metera sends you through a login and the connection is bound to your account, with no key to copy anywhere. In a terminal, add it as a server with a bearer token instead.

claude mcp add --transport http metera https://api.metera.xyz/mcp \
  --header "Authorization: Bearer $METERA_KEY"

Transport is Streamable HTTP over a single POST endpoint. Both routes reach the same account and the same balance, so connecting an app by login and a terminal by header is one account, not two.

The three tools

get_verified_data fetches one datum from the best available source and returns the value, the level it earned, the source, and how fresh it is. It takes structured parameters rather than a sentence, because your model already knows what it wants and is better placed to fill them in than a second model guessing at the same question.

list_available_data returns the live catalog: every servable type, the parameters each one requires, and the highest level it can reach. It grows as sources are provisioned, so an agent can discover what to ask for rather than guess.

get_trace returns the full verification trace for an answer you were given: which sources were considered, what each scored, which attempts ran, and why one won. It is free to call, because it reports a call already made and already charged.

All three are declared read only. Nothing here writes, deletes or moves anything you own, and the manifest says so, which is what puts them under read only access on a client permission screen.

What comes back

Ask for something and the answer arrives judged. anchored means it was checked against on chain truth. consensus means independent sources agreed. single_source means it passed the checks but nothing confirmed it. Your agent reads the level and decides what to do with it, exactly as any other caller would.

{
  "status": "delivered",
  "value": { "token": "SOL", "priceUsd": 75.67 },
  "level": "anchored",
  "source": "okx",
  "freshness": { "asOf": 1786582718269, "ageMs": 330 },
  "traceId": "tr_9z23eb",
  "cost": 0.0015
}

When you ask for a level a type cannot reach, the call is refused before anything is spent, and the refusal names the highest level that type does reach. Refusing costs you nothing.