Fermat
REMOTE · MCP.FERMAT.AI.PHASE.XYZ
OpenAI-compatible LLM gateway: pay per request with an API key, signed receipt for each call.
Available components
Last scanned (16 hours ago)
Scores higher than 47% of remote servers
Reachable. Last reached 22 Oct 2026.
Category AI and Machine Learning
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →
Endpoint Security57
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- Authorisation check failed: no authorisation is required to call this server, and it exposes a tool marked destructive (session). See how to fix → View diagnostics → Fail
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- HSTS check failed: the Strict-Transport-Security header is absent. See how to fix → View diagnostics → Fail
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability70
- AI-judged instruction clarity (good).Pass
- Context-footprint check failed: tool/resource definitions use about 1246 tokens (~113/item across 11 items; 11 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management0
- Stability not yet verified: not enough scan history yet (needs a 30-day window).Unverified
Tool Coverage99
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 97% of tool parameters carry a description.Partial
- Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- We read all 11 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
- An AI judge read all 12 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a current MCP spec version (2026-07-28).Pass
Unverified: 1 category
A category scored 0 because we could not verify it: authentication we do not have, an unreachable endpoint, or not enough scan history. We only credit what we can confirm.
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 22 Oct 26 63
First indexed and scored.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 22 Oct 2026 · Probed https://mcp.fermat.ai.phase.xyz/mcp
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=mcp.fermat.ai.phase.xyz | CN=YE2,O=Let's Encrypt,C=US | 22 Oct 2026 | 20 Jan 2027 | ECDSA 256 | ECDSA-SHA384 | 55f667296769841d89fef3113030d9f64e8 |
| SANs: mcp.fermat.ai.phase.xyz | ||||||
| CN=YE2,O=Let's Encrypt,C=US (CA) | CN=Root YE,O=ISRG,C=US | 3 Sept 2025 | 2 Sept 2028 | ECDSA 384 | ECDSA-SHA384 | 4df3b15dd6c0784c507cd37b58e6f115 |
| CN=Root YE,O=ISRG,C=US (CA) | CN=ISRG Root X2,O=Internet Security Research Group,C=US | 13 May 2026 | 2 Sept 2032 | ECDSA 384 | ECDSA-SHA384 | 872165fc34b6e5fba8add5b3705fb53a |
| CN=ISRG Root X2,O=Internet Security Research Group,C=US (CA) | CN=ISRG Root X1,O=Internet Security Research Group,C=US | 13 May 2026 | 2 Sept 2032 | ECDSA 384 | SHA256-RSA | 6c8f1dc727c7117f7baf853ac980f9cd |
Background: What to check on a remote MCP endpoint →
DNSSEC insecure
Validation of mcp.fermat.ai.phase.xyz. — Not signed
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| xyz. | present | 3599, 18130 | 8, 8 | Verified |
| phase.xyz. | absent | Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation |
Authentication No authorisation required
The endpoint answered without asking for a token. Anyone who knows the URL can reach it.
| Result | No authorisation required |
|---|---|
| HTTP status | 200 |
Background: How OAuth 2.1 works in the 2026 MCP spec →
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://mcp.fermat.ai.phase.xyz/mcp | Verified | 200 | |
| http (plaintext) | http://mcp.fermat.ai.phase.xyz/mcp | HTTPS enforced | 308 | https://mcp.fermat.ai.phase.xyz/mcp |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
chat ~186
Run a chat completion on the Fermat gateway, paid from the Phase API key or the wallet this server uses (free models cost nothing). Returns the answer, actual price, task id for the receipt and usage.
| Name | Type | Req | Description |
|---|---|---|---|
| max_tokens | integer | – | output cap; also bounds the price ceiling |
| messages | null|array | – | full conversation; overrides prompt/system |
| model | string | yes | model id from list_models, or a class: auto | eco | premium | agentic |
| prompt | string | – | single user message (use messages for multi-turn) |
| session | string | – | saved session id (from the session tool or a /s/<id> link): the gateway prepends its history and appends this turn |
| system | string | – | optional system prompt |
| temperature | null|number | – | sampling temperature 0–2 (Claude ignores it) |
| Name | Type | Req | Description |
|---|---|---|---|
| batch | string | – | payment batch this call was charged to (settled with one transaction later) |
| ceiling_usd | string | – | – |
| elapsed_ms | integer | yes | – |
| level | string | – | – |
| model | string | yes | – |
| payment | string | yes | – |
| price_usd | string | yes | – |
| provider | string | yes | – |
| receipt_url | string | – | – |
| routed_model | string | – | – |
| session | string | – | – |
| session_url | string | – | – |
| task_id | string | yes | – |
| text | string | yes | – |
| tx_hash | string | – | – |
| usage | object | yes | – |
No examples provided.
compare ~170
Run one prompt on 2 to 4 Fermat models or classes at once and compare answer, price, tokens and speed; returns the cheapest, the most expensive and how many times more the expensive one cost. Spends credit for each model. Default models: the cheapest paid chat model, auto, and the most expensive open chat model.
| Name | Type | Req | Description |
|---|---|---|---|
| max_tokens | integer | – | output cap for every model (default: none) |
| messages | null|array | – | full conversation; overrides prompt/system |
| models | null|array | – | 2 to 4 model ids or classes; default: the cheapest paid chat model, auto, and the most expensive open chat model |
| prompt | string | – | single user message (use messages for multi-turn) |
| system | string | – | optional system prompt |
| Name | Type | Req | Description |
|---|---|---|---|
| cheapest | string | – | model with the lowest price among the answers |
| most_expensive | string | – | model with the highest price among the answers |
| ratio | number | – | most expensive price divided by the cheapest, one decimal |
| results | null|array | yes | – |
No examples provided.
docs ~47
Fermat documentation in short: connect, pricing (with the live price table), savings, mcp, byok, data, receipts, limits.
| Name | Type | Req | Description |
|---|---|---|---|
| topic | string | yes | what to explain |
| Name | Type | Req | Description |
|---|---|---|---|
| text | string | yes | – |
| topic | string | yes | – |
No examples provided.
embed ~44
Compute embeddings on the Fermat gateway (paid from the Phase API key or the wallet).
| Name | Type | Req | Description |
|---|---|---|---|
| input | null|array | yes | – |
| model | string | yes | embeddings model id |
| Name | Type | Req | Description |
|---|---|---|---|
| payment | string | yes | – |
| price_usd | string | yes | – |
| vectors | null|array | yes | – |
No examples provided.
key ~26
Balance, daily cap and spend of the Phase API key this server pays with (key mode).
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| key | object | – | – |
No examples provided.
list_models ~58
List models of the Fermat gateway with prices (USD per 1M tokens, fee per call) and layer (flagship | open | class | free).
| Name | Type | Req | Description |
|---|---|---|---|
| layer | string | – | optional filter: flagship | open | class | free |
| Name | Type | Req | Description |
|---|---|---|---|
| gateway | string | yes | – |
| models | null|array | yes | – |
| wallet | string | – | – |
No examples provided.
quote ~161
Get the price ceiling for a chat request without paying (the gateway's 402 quote).
| Name | Type | Req | Description |
|---|---|---|---|
| max_tokens | integer | – | output cap; also bounds the price ceiling |
| messages | null|array | – | full conversation; overrides prompt/system |
| model | string | yes | model id from list_models, or a class: auto | eco | premium | agentic |
| prompt | string | – | single user message (use messages for multi-turn) |
| session | string | – | saved session id (from the session tool or a /s/<id> link): the gateway prepends its history and appends this turn |
| system | string | – | optional system prompt |
| temperature | null|number | – | sampling temperature 0–2 (Claude ignores it) |
| Name | Type | Req | Description |
|---|---|---|---|
| ceiling_usd | string | yes | – |
| free | boolean | yes | – |
| input_tokens_estimate | integer | yes | – |
| input_usd_per_1m | string | yes | – |
| max_output_tokens_priced | integer | yes | – |
| max_usd_per_call | string | – | largest quote the wallet will sign (wallet mode only) |
| model | string | yes | – |
| network | string | yes | – |
| output_usd_per_1m | string | yes | – |
| paid_by_key | boolean | – | true when a Phase API key pays: its balance and daily cap apply, max_usd_per_call does not |
| per_call_usd | string | yes | – |
| wallet_can_pay | boolean | yes | – |
No examples provided.
receipt ~67
Fetch the public receipt of a paid request by task id (model, provider, tokens, price, settlement tx, request/response hashes, signatures) and its Merkle proof once the weekly epoch is closed.
| Name | Type | Req | Description |
|---|---|---|---|
| task_id | string | yes | task id from chat / embed (0x…) |
| Name | Type | Req | Description |
|---|---|---|---|
| epoch_state | string | yes | – |
| proof | object | – | – |
| receipt | object | yes | – |
| url | string | yes | – |
No examples provided.
route_explain ~77
Explain one Fermat request from its public receipt: the model or class it named, the complexity level, the model and provider that served it, the price, the price of the class baseline model and the saving in percent, and the providers tried.
| Name | Type | Req | Description |
|---|---|---|---|
| task_id | string | yes | task id from chat / embed (0x…) |
| Name | Type | Req | Description |
|---|---|---|---|
| attempts | integer | – | providers tried, the one that served included |
| baseline_usd | string | – | price of the same usage on the class baseline model |
| explanation | string | yes | – |
| failed_attempts | null|array | – | – |
| is_class | boolean | yes | – |
| level | string | – | complexity level the classifier gave the request |
| price_usd | string | yes | – |
| provider | string | yes | – |
| receipt_url | string | yes | – |
| requested | string | yes | model or class the request named |
| routed_model | string | yes | – |
| saved_usd | string | – | – |
| saving_percent | number | – | – |
| task_id | string | yes | – |
No examples provided.
session ~161
Saved chat sessions on the Fermat gateway: create one (returns an id and a shareable /s/<id> link), read its thread, list the wallet's sessions (wallet mode only: signed with the wallet key, no transaction), or delete one. Pass the id as `session` to chat and the gateway carries the context between turns and visits.
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | yes | create | get | list | delete |
| id | string | – | session id (get, delete) |
| model | string | – | create: model the session starts with (informational; each chat names its own) |
| system | string | – | create: system prompt kept for every turn |
| title | string | – | create: title (defaults to the first message) |
| Name | Type | Req | Description |
|---|---|---|---|
| deleted | boolean | – | – |
| expires_at | string | yes | – |
| id | string | yes | – |
| messages | null|array | yes | – |
| model | string | – | – |
| requests | integer | yes | – |
| sessions | null|array | – | – |
| spent_usd | string | yes | – |
| system | string | – | – |
| title | string | – | – |
| url | string | yes | – |
No examples provided.
usage ~81
Spend and savings of the Fermat API key over the last N days (1 to 90, default 7): totals, per day and per model when the gateway has the history (source usage), otherwise the key's totals (source key). Key mode only.
| Name | Type | Req | Description |
|---|---|---|---|
| days | integer | – | period in days, 1 to 90 (default 7) |
| Name | Type | Req | Description |
|---|---|---|---|
| available_usd | string | – | – |
| daily_cap_usd | string | – | – |
| days | integer | yes | – |
| per_day | null|array | – | – |
| per_model | null|array | – | – |
| requests | integer | yes | – |
| saved_usd | string | – | – |
| source | string | yes | usage: per-day history from /v1/key/usage; key: totals only from /v1/key |
| spent_today_usd | string | – | – |
| spent_usd | string | yes | – |
No examples provided.
How do I install the Fermat MCP server?
Fermat is a hosted endpoint at https://mcp.fermat.ai.phase.xyz/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
remote · mcp.fermat.ai.phase.xyz
claude mcp add --transport http xyz-phase-ai-gateway 'https://mcp.fermat.ai.phase.xyz/mcp'
What is the Fermat MCP server?
Fermat is an MCP server listed in the public MCP registry as xyz.phase.ai/gateway. OpenAI-compatible LLM gateway: pay per request with an API key, signed receipt for each call. This page covers its hosted endpoint (https://mcp.fermat.ai.phase.xyz/mcp).
Is the Fermat MCP server safe to use?
Fermat scores 63 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the Fermat MCP server expose?
Fermat exposes 11 tools: chat, compare, docs, embed, key, and 6 more. Their descriptions and schemas cost roughly 1,078 tokens of context every time the server is loaded.
Does the Fermat MCP server require authentication?
No. We connected to Fermat without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.
Is the Fermat MCP server still maintained?
Fermat is still listed as active in the MCP registry. We last reached this channel on 22 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.