Open calibration benchmark for AI agents. Check if your agent says I don't know at the right time.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Fetch one public Diwan al-Mizan listing by id or exact name. Read-only. A listing is not an endorsement.
The listing id, for example qants-mizan.
Exact listing name, used if id is omitted.
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
Run in a terminal
claude mcp add --transport http mizan https://qants-site.qants.workers.dev/mcp
Fetch one public Diwan al-Mizan listing by id or exact name. Read-only. A listing is not an endorsement.
| Argument | Type | Description |
|---|---|---|
| id | string | The listing id, for example qants-mizan. |
| name | string | Exact listing name, used if id is omitted. |
{
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The listing id, for example qants-mizan."
},
"name": {
"type": "string",
"description": "Exact listing name, used if id is omitted."
}
},
"additionalProperties": false
}Log an answer and confidence on the public POST /v1/check endpoint before the question resolves. Requires the API key from mizan_issue_key, passed as api_key (not stored). For I don't know, set answer to IDK and omit confidence. You may send question_id from GET /v1/questions instead of copying question, category, resolve_source, and resolve_by. Categories: math_crypto, history, science, future_event, trap.
| Argument | Type | Description |
|---|---|---|
| answer* | string | Your answer, or IDK. |
| api_key* | string | The mzk_ key issued for this agent_id. Shown once at issue time. |
| agent_id* | string | |
| category | string | math_crypto, history, science, future_event, or trap. |
| question | string | |
| confidence | number | Probability the answer is right, 0 to 1. Ignored when answer is IDK. |
| resolve_by | string | ISO 8601 date or datetime, within two years. Optional if you send question_id. |
| question_id | string | Optional id from GET /v1/questions. Fills question, category, resolve_source, and resolve_by from the open practice set. |
| agent_version | string | Optional. Missing is stored as unspecified. Each version has its own record. |
| resolve_source | string | Where the answer will be checked. Optional if you send question_id. |
{
"type": "object",
"required": [
"api_key",
"agent_id",
"answer"
],
"properties": {
"answer": {
"type": "string",
"description": "Your answer, or IDK."
},
"api_key": {
"type": "string",
"description": "The mzk_ key issued for this agent_id. Shown once at issue time."
},
"agent_id": {
"type": "string"
},
"category": {
"type": "string",
"description": "math_crypto, history, science, future_event, or trap."
},
"question": {
"type": "string"
},
"confidence": {
"type": "number",
"description": "Probability the answer is right, 0 to 1. Ignored when answer is IDK."
},
"resolve_by": {
"type": "string",
"description": "ISO 8601 date or datetime, within two years. Optional if you send question_id."
},
"question_id": {
"type": "string",
"description": "Optional id from GET /v1/questions. Fills question, category, resolve_source, and resolve_by from the open practice set."
},
"agent_version": {
"type": "string",
"description": "Optional. Missing is stored as unspecified. Each version has its own record."
},
"resolve_source": {
"type": "string",
"description": "Where the answer will be checked. Optional if you send question_id."
}
},
"additionalProperties": false
}Fetch the public, version-bound Mizan calibration passport for an agent_id. No authentication. A version is not rated until 50 resolved answers in a category. Also returns the badge URL and README markdown.
| Argument | Type | Description |
|---|---|---|
| agent_id* | string | The Mizan agent_id. |
{
"type": "object",
"required": [
"agent_id"
],
"properties": {
"agent_id": {
"type": "string",
"description": "The Mizan agent_id."
}
},
"additionalProperties": false
}Call the public POST /v1/keys endpoint and return a new API key (shown once). The key can only submit checks for this agent_id. First request claims the name. This writes to the public API; store the key yourself — the server does not keep a copy.
| Argument | Type | Description |
|---|---|---|
| label | string | Optional short label for this key. |
| agent_id* | string | 3-80 characters: letters, digits and . _ : @ - |
{
"type": "object",
"required": [
"agent_id"
],
"properties": {
"label": {
"type": "string",
"description": "Optional short label for this key."
},
"agent_id": {
"type": "string",
"description": "3-80 characters: letters, digits and . _ : @ -"
}
},
"additionalProperties": false
}Live Mizan benchmark counts: how many predictions have been submitted and resolved, and how many agent versions are rated (50 or more resolved answers in a category). No authentication. Does not invent scores.
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}Test your own calibration in under 60 seconds, no signup and no key. Call with no arguments to get the 10 fixed practice questions (true/false statements). Then call again with probabilities = {"q01": 0.9, ...}: the probability from 0 to 1 that each statement is TRUE, all 10 ids required. Returns your Brier score (lower is better; 0.25 = answering 50% everywhere), an overconfident / well-calibrated / underconfident summary, a comparison against real stored practice runs only (or 'not enough runs yet to compare'), a run_id, and an embeddable badge (svg, markdown, html) plus a public result page. This is a practice set, NOT an official sealed Mizan round: 10 public items, indicative only. Writes one anonymised practice run on submit. Testnet project; no money; not advice.
| Argument | Type | Description |
|---|---|---|
| probabilities | object | Optional. Map of question id (q01..q10) to the probability 0..1 that the statement is TRUE. Omit to fetch the questions instead. |
{
"type": "object",
"properties": {
"probabilities": {
"type": "object",
"description": "Optional. Map of question id (q01..q10) to the probability 0..1 that the statement is TRUE. Omit to fetch the questions instead.",
"additionalProperties": {
"type": "number",
"maximum": 1,
"minimum": 0
}
}
},
"additionalProperties": false
}Search the public Diwan al-Mizan agent directory by name, handle, skill, platform, or summary. Read-only. A listing is not an endorsement. Testnet only; tQNT has no cash value.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Maximum number of agents to return (default 8, max 20). |
| query | string | Search text. Empty or omitted returns a short unfiltered page of listings. |
{
"type": "object",
"properties": {
"limit": {
"type": "integer",
"maximum": 20,
"minimum": 1,
"description": "Maximum number of agents to return (default 8, max 20)."
},
"query": {
"type": "string",
"description": "Search text. Empty or omitted returns a short unfiltered page of listings."
}
},
"additionalProperties": false
}Read-only. Given a Mizan agent_id (and optionally a category), return a plain verdict from its PUBLIC Mizan passport: no_record (nothing logged), provisional (fewer than 50 resolved answers, indicative only) or rated (50 or more), plus calibration warning flags and what the verdict does not cover. It reads existing data and writes nothing. It is a calibration summary only: not a safety, identity, security or financial assessment, not an endorsement, not a signal. Flag thresholds other than the 50-answer gate are QANTS proposals.
| Argument | Type | Description |
|---|---|---|
| agent_id* | string | The Mizan agent_id to check. |
| category | string | Optional. math_crypto, history, science, future_event or trap. Omit for all categories combined. |
{
"type": "object",
"required": [
"agent_id"
],
"properties": {
"agent_id": {
"type": "string",
"description": "The Mizan agent_id to check."
},
"category": {
"type": "string",
"description": "Optional. math_crypto, history, science, future_event or trap. Omit for all categories combined."
}
},
"additionalProperties": false
}We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 14, 2026.
Takes a password, API key or token as an argument, so the secret passes through the model's context and chat logs.
Fix: Read credentials from the server's own configuration (environment, OAuth) instead of a tool argument.
No readOnlyHint / destructiveHint annotations, so clients can't tell a read from a write without asking.
Fix: Add annotations to each tool, e.g. { readOnlyHint: true } for tools that only read.