← The evidence ledger
Evidence row 293650
Observed , by probe.mcp/1.
- Kind
- mcp.tools
- About
- endpoint aa0c5a86-e3d9-4602-b0f9-0a6341eb7f82
- Recorded
- Previous row
- None: the first of its kind about this subject
- Body SHA-256
- 7141a5dcab19090abd7eb70ef9fc69138649384d63bfcb62a4fb3c6a2bceb552
- Leaf
- 0x643928eb4ca79e6bd747563a2c8dadf0c693a49f4bdc3d1b9c927930e202001e
What was observed
{
"count": 9,
"tools": [
{
"description": "What facts do 2 to 4 named models have? Returns sourced snapshot facts, offerings and evidence in caller order; unknowns stay null. Needs an API key (Authorization: Bearer). Costs 2 credits a call; $0.0053–$0.02 per credit by plan or pack (https://modelspec.dev/pricing/). It doesn't choose a model and does not rank. Proxies POST https://api.modelspec.dev/v1/compare-models with {models: [...]} at most 16 KB.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"properties": {
"models": {
"description": "2 to 4 distinct catalogue ids, such as openai/gpt-5-6, in caller order",
"items": {
"maxLength": 128,
"pattern": "^[a-z0-9][a-z0-9._-]*\\/[a-z0-9][a-z0-9._-]*$",
"type": "string"
},
"maxItems": 4,
"minItems": 2,
"type": "array"
}
},
"required": [
"models"
],
"type": "object"
},
"name": "compare_models"
},
{
"description": "Which models fit this job? Call decide early. Returns answer, ranked results, may_qualify, reading and recovery hints, decision_id and snapshot. Never add a gate or constraint the user didn't state. Relax only constraints the user stated, one at a time, and say what was relaxed and why. Prefer the answer's own `relax` suggestions. A tie stays a tie. Don't promote a member by knowledge from outside the response. Cite only evidence in the response. Never add benchmark figures from memory. Tied or partial answer: report the tie and caveats, pick no member; a null answer names no pick and says what's missing. A null cost is unknown. Never show it as $0.00 or \"free\". One vocabulary lookup per unknown facet, then decide. Read `next` before another call. Size `task_tokens` from the user's own task, and say what you assumed. Don't copy the guide's example sizes. Template weights are examples, not requirements. If the evidence basis or board does not match the task, say so: Arena web-dev evidence does not establish chat quality. p_best is the probability of ranking best under the Spec and evidence uncertainty, not the probability of matching the user's task or satisfying its requirements. Read reading when present. Present answer.kind=tied among all answer.members, including with_estate; tie-breakers are conditional. State requirements in reading.not_applied or error.issues that were not applied, including requirements removed after a rejected call. A retry does not verify them. Report estimates as estimates: fits_hardware membership is not measured fit for a specific quantization and context workload. Follow reading.do_not_claim. Never claim a rank the response does not show. Present `summary_for_user` to the user unchanged and keep every `must_mention` item. When `next_move` is present, offer it instead of a pick. Needs an API key (Authorization: Bearer). Costs 1 or 2 credits a call; $0.0053–$0.02 per credit by plan or pack (https://modelspec.dev/pricing/). Not a router: call once per job or role, not per request; route among its chosen models. Proxies POST https://api.modelspec.dev/v1/decide. MCP decide returns a bounded answer of at most 16 KB, summary included. Drill down with evidence_for. Complete rows need fields:null; explanation.fetch names what was removed and how to fetch it. With explain unset or \"none\": explain=none, limit=10, fields=model_rank,cost_per_task,estimates,p_best. summary/full adds contributions and evidence. omitted counts removed records; explain=none skips eliminations. Explicit fields, including null, pass through. Oversize responses use a trimmed notice with explanation.fetch. decision_id is a citation, not a stored lookup. task free text is rejected; where is an array. Examples, recovery and budgets: https://modelspec.dev/agents.md. Null means unresearched or unpublished, never a guess. Sourced card values include a URL and read date. Returns the origin JSON and URL without invented fields. Example. Answer: status partial, answer.kind tied (a/x, b/y), next_move.kind decide_by_testing. Right report: summary_for_user verbatim, each must_mention item, then next_move.steps for its candidates. Wrong: \"Start with a/x\", a shortlist, or a ranked table.",
"inputSchema": {
"$defs": {
"Access": {
"additionalProperties": false,
"description": "How the caller will use the model. Added in 2.6.\n\n``chat_app``: a provider's chat app, through a subscription plan.\n``coding_tool``: a coding harness, through a plan or pay-per-use;\n``harness`` names one from ``registry/harnesses.yaml`` (any when absent).\n``own_software``: the caller's own software, pay-per-use (or a plan whose\nsurfaces include ``api``). ``own_hardware``: self-hosted on the caller's\ndevices. A spec may give the bare kind as a string.",
"properties": {
"harness": {
"anyOf": [
{
"pattern": "^[a-z0-9][a-z0-9-]*$",
"type": "string"
},
{
"type": "null"
}
]
},
"kind": {
"enum": [
"chat_app",
"coding_tool",
"own_software",
"own_hardware"
],
"type": "string"
}
},
"required": [
"kind"
],
"type": "object"
},
"AllOf": {
"additionalProperties": false,
"properties": {
"all": {
"items": {
"$ref": "#/$defs/Condition"
},
"type": "array"
},
"soft": {
"anyOf": [
{
"$ref": "#/$defs/Soft"
},
{
"type": "null"
}
]
},
"unknown": {
"anyOf": [
{
"enum": [
"list",
"fail",
"pass"
],
"type": "string"
},
{
"type": "null"
}
]
}
},
"required": [
"all"
],
"type": "object"
},
"AnyOf": {
"additionalProperties": false,
"properties": {
"any": {
"items": {
"$ref": "#/$defs/Condition"
},
"type": "array"
},
"soft": {
"anyOf": [
{
"$ref": "#/$defs/Soft"
},
{
"type": "null"
}
]
},
"unknown": {
"anyOf": [
{
"enum": [
"list",
"fail",
"pass"
],
"type": "string"
},
{
"type": "null"
}
]
}
},
"required": [
"any"
],
"type": "object"
},
"BestRef": {
"additionalProperties": false,
"description": "``facet >= best(m)``: within ``m`` of the highest value among the candidates\nthat pass every other hard condition. Added in 2.11.",
"properties": {
"best": {
"minimum": 0,
"type": "number"
}
},
"required": [
"best"
],
"type": "object"
},
"Budget": {
"additionalProperties": false,
"properties": {
"max_cost_per_task_usd": {
"anyOf": [
{
"exclusiveMinimum": 0,
"type": "number"
},
{
"type": "null"
}
]
}
},
"type": "object"
},
"Compare": {
"additionalProperties": false,
"description": "``facet op value``; the value may be ``model(<id>)`` or ``best(m)`` for a relative\ncondition.",
"properties": {
"facet": {
"pattern": "^[a-z][a-z0-9_-]*(\\.[a-z0-9_-]+)*$",
"type": "string"
},
"op": {
"enum": [
"=",
"!=",
"<",
"<=",
">",
">="
],
"type": "string"
},
"qualifiers": {
"anyOf": [
{
"$ref": "#/$defs/EvidenceQualifiers"
},
{
"type": "null"
}
]
},
"soft": {
"anyOf": [
{
"$ref": "#/$defs/Soft"
},
{
"type": "null"
}
]
},
"unknown": {
"anyOf": [
{
"enum": [
"list",
"fail",
"pass"
],
"type": "string"
},
{
"type": "null"
}
]
},
"value": {
"anyOf": [
{
"$ref": "#/$defs/ModelRef"
},
{
"$ref": "#/$defs/BestRef"
},
{
"type": "boolean"
},
{
"type": "integer"
},
{
"type": "number"
},
{
"format": "date",
"type": "string"
},
{
"type": "string"
}
]
}
},
"required": [
"facet",
"op",
"value"
],
"type": "object"
},
"Condition": {
"anyOf": [
{
"type": "string"
},
{
"$ref": "#/$defs/Compare"
},
{
"$ref": "#/$defs/Window"
},
{
"$ref": "#/$defs/InSet"
},
{
"$ref": "#/$defs/Known"
},
{
"$ref": "#/$defs/AnyOf"
},
{
"$ref": "#/$defs/AllOf"
},
{
"$ref": "#/$defs/NotOf"
}
]
},
"DecideRequest": {
"additionalProperties": false,
"properties": {
"access": {
"anyOf": [
{
"$ref": "#/$defs/Access"
},
{
"enum": [
"chat_app",
"coding_tool",
"own_software",
"own_hardware"
],
"type": "string"
},
{
"type": "null"
}
]
},
"capabilities": {
"anyOf": [
{
"patternProperties": {
"^[a-z][a-z0-9_-]*(\\.[a-z0-9_-]+)*$": {
"enum": [
"required",
"preferred"
],
"type": "string"
}
},
"type": "object"
},
{
"type": "null"
}
]
},
"estate": {
"anyOf": [
{
"$ref": "#/$defs/Estate"
},
{
"type": "null"
}
]
},
"evidence_for": {
"anyOf": [
{
"pattern": "^[a-z0-9][a-z0-9._-]*/[a-z0-9][a-z0-9._-]*$",
"type": "string"
},
{
"type": "null"
}
]
},
"exclude_benchmarks": {
"items": {
"pattern": "^[a-z][a-z0-9_-]*(\\.[a-z0-9_-]+)*$",
"type": "string"
},
"type": "array"
},
"explain": {
"default": "none",
"enum": [
"none",
"summary",
"full"
],
"type": "string"
},
"fields": {
"anyOf": [
{
"items": {
"enum": [
"rank",
"model",
"model_rank",
"offering",
"cost_per_task",
"harness",
"effort",
"evidence",
"estimates",
"refinement_estimates",
"p_best",
"top3_stability",
"soft_penalty",
"contributions",
"warnings",
"plans"
],
"type": "string"
},
"maxItems": 16,
"minItems": 1,
"type": "array"
},
{
"type": "null"
}
],
"default": [
"model_rank",
"cost_per_task",
"estimates",
"p_best"
]
},
"limit": {
"default": 10,
"maximum": 500,
"minimum": 1,
"type": "integer"
},
"optimize": {
"$ref": "#/$defs/Objective"
},
"profile": {
"anyOf": [
{
"oneOf": [
{
"pattern": "^profile:[a-z0-9][a-z0-9-]*$",
"type": "string"
},
{
"$ref": "#/$defs/InventoryProfile"
}
]
},
{
"type": "null"
}
]
},
"router_config": {
"anyOf": [
{
"$ref": "#/$defs/RouterConfigOptions"
},
{
"type": "null"
}
]
},
"save_as": {
"anyOf": [
{
"pattern": "^[a-z0-9][a-z0-9-]{0,63}$",
"type": "string"
},
{
"type": "null"
}
]
},
"snapshot": {
"anyOf": [
{
"const": "latest"
},
{
"pattern": "^snap_[A-Za-z0-9:._-]+$",
"type": "string"
}
],
"default": "latest"
},
"spec_version": {
"const": 1,
"type": "integer"
},
"task": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"task_tokens": {
"anyOf": [
{
"$ref": "#/$defs/TaskTokens"
},
{
"type": "null"
}
]
},
"task_type": {
"anyOf": [
{
"enum": [
"new_feature",
"bug_fix",
"refactor",
"test_writing",
"docs",
"migration",
"performance",
"security_fix",
"review",
"analysis",
"data_transform",
"config_infra"
],
"type": "string"
},
{
"type": "null"
}
]
},
"unknowns": {
"const": "default",
"default": "default",
"type": "string"
},
"where": {
"items": {
"$ref": "#/$defs/Condition"
},
"type": "array"
}
},
"required": [
"spec_version",
"optimize"
],
"type": "object"
},
"Estate": {
"additionalProperties": false,
"description": "What the caller holds, sent with the spec and never stored. Added in 2.3.\n\n``providers`` are provider IDs the caller has a key for, ``plans`` are\nsubscription plan IDs, ``devices`` are hardware SKU IDs. ``exhausted`` lists\nproviders or plans that cannot be used right now; an exhausted provider\ntakes its key and its plans with it.",
"properties": {
"devices": {
"items": {
"maxLength": 120,
"minLength": 1,
"type": "string"
},
"maxItems": 64,
"type": "array"
},
"exhausted": {
"items": {
"maxLength": 120,
"minLength": 1,
"type": "string"
},
"maxItems": 64,
"type": "array"
},
"plans": {
"items": {
"maxLength": 120,
"minLength": 1,
"type": "string"
},
"maxItems": 64,
"type": "array"
},
"providers": {
"items": {
"maxLength": 120,
"minLength": 1,
"type": "string"
},
"maxItems": 64,
"type": "array"
}
},
"type": "object"
},
"EvidenceQualifiers": {
"additionalProperties": false,
"description": "Which evidence may satisfy a condition on an evidence facet.",
"properties": {
"direct": {
"default": false,
"type": "boolean"
},
"effort": {
"anyOf": [
{
"pattern": "^[a-z0-9_-]+$",
"type": "string"
},
{
"type": "null"
}
]
},
"harness": {
"anyOf": [
{
"pattern": "^[a-z0-9][a-z0-9-]*@[0-9]+\\.[0-9]+$",
"type": "string"
},
{
"type": "null"
}
]
},
"measured_after": {
"anyOf": [
{
"format": "date",
"type": "string"
},
{
"type": "null"
}
]
},
"measured_by": {
"anyOf": [
{
"enum": [
"independent",
"provider_self_report",
"any"
],
"type": "string"
},
{
"type": "null"
}
]
}
},
"type": "object"
},
"Hardware": {
"additionalProperties": false,
"properties": {
"class": {
"type": "string"
},
"count": {
"default": 1,
"minimum": 1,
"type": "integer"
},
"memory_gb": {
"anyOf": [
{
"exclusiveMinimum": 0,
"type": "number"
},
{
"type": "null"
}
]
}
},
"required": [
"class"
],
"type": "object"
},
"InSet": {
"additionalProperties": false,
"description": "``facet in {a, b}`` or ``facet not in {a, b}``. Values are kept sorted and unique.",
"properties": {
"facet": {
"pattern": "^[a-z][a-z0-9_-]*(\\.[a-z0-9_-]+)*$",
"type": "string"
},
"in": {
"anyOf": [
{
"items": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "integer"
},
{
"type": "number"
},
{
"format": "date",
"type": "string"
},
{
"type": "string"
}
]
},
"type": "array"
},
{
"type": "null"
}
]
},
"not_in": {
"anyOf": [
{
"items": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "integer"
},
{
"type": "number"
},
{
"format": "date",
"type": "string"
},
{
"type": "string"
}
]
},
"type": "array"
},
{
"type": "null"
}
]
},
"soft": {
"anyOf": [
{
"$ref": "#/$defs/Soft"
},
{
"type": "null"
}
]
},
"unknown": {
"anyOf": [
{
"enum": [
"list",
"fail",
"pass"
],
"type": "string"
},
{
"type": "null"
}
]
}
},
"required": [
"facet"
],
"type": "object"
},
"InventoryProfile": {
"additionalProperties": false,
"properties": {
"budget": {
"anyOf": [
{
"$ref": "#/$defs/Budget"
},
{
"type": "null"
}
]
},
"harnesses": {
"items": {
"pattern": "^[a-z0-9][a-z0-9-]*@[0-9]+\\.[0-9]+$",
"type": "string"
},
"type": "array"
},
"id": {
"anyOf": [
{
"pattern": "^profile:[a-z0-9][a-z0-9-]*$",
"type": "string"
},
{
"type": "null"
}
]
},
"local": {
"items": {
"$ref": "#/$defs/LocalModel"
},
"type": "array"
},
"offerings": {
"items": {
"$ref": "#/$defs/ProfileOffering"
},
"type": "array"
},
"profile_version": {
"const": 1,
"type": "integer"
},
"rules": {
"items": {
"$ref": "#/$defs/Condition"
},
"type": "array"
}
},
"required": [
"profile_version"
],
"type": "object"
},
"Known": {
"additionalProperties": false,
"description": "``known(facet)``: passes when the facet is known. It is never unknown itself.",
"properties": {
"known": {
"pattern": "^[a-z][a-z0-9_-]*(\\.[a-z0-9_-]+)*$",
"type": "string"
},
"soft": {
"anyOf": [
{
"$ref": "#/$defs/Soft"
},
{
"type": "null"
}
]
}
},
"required": [
"known"
],
"type": "object"
},
"LexStep": {
"additionalProperties": false,
"properties": {
"max": {
"anyOf": [
{
"pattern": "^[a-z][a-z0-9_-]*(\\.[a-z0-9_-]+)*$",
"type": "string"
},
{
"type": "null"
}
]
},
"min": {
"anyOf": [
{
"pattern": "^[a-z][a-z0-9_-]*(\\.[a-z0-9_-]+)*$",
"type": "string"
},
{
"type": "null"
}
]
},
"within": {
"anyOf": [
{
"$ref": "#/$defs/Tolerance"
},
{
"type": "null"
}
]
}
},
"type": "object"
},
"LocalModel": {
"additionalProperties": false,
"properties": {
"hardware": {
"anyOf": [
{
"$ref": "#/$defs/Hardware"
},
{
"type": "null"
}
]
},
"model": {
"pattern": "^[a-z0-9][a-z0-9._-]*/[a-z0-9][a-z0-9._-]*$",
"type": "string"
},
"runtime": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
}
},
"required": [
"model"
],
"type": "object"
},
"ModelRef": {
"additionalProperties": false,
"description": "The right-hand side of a relative condition: ``coding >= model(openai/gpt-6-sol)``.",
"properties": {
"model": {
"pattern": "^[a-z0-9][a-z0-9._-]*/[a-z0-9][a-z0-9._-]*$",
"type": "string"
}
},
"required": [
"model"
],
"type": "object"
},
"NotOf": {
"additionalProperties": false,
"properties": {
"not": {
"$ref": "#/$defs/Condition"
},
"soft": {
"anyOf": [
{
"$ref": "#/$defs/Soft"
},
{
"type": "null"
}
]
},
"unknown": {
"anyOf": [
{
"enum": [
"list",
"fail",
"pass"
],
"type": "string"
},
{
"type": "null"
}
]
}
},
"required": [
"not"
],
"type": "object"
},
"Objective": {
"additionalProperties": false,
"description": "Exactly one of ``max``, ``min``, ``lexicographic``, ``weights``, ``pareto``.",
"properties": {
"lexicographic": {
"anyOf": [
{
"items": {
"$ref": "#/$defs/LexStep"
},
"type": "array"
},
{
"type": "null"
}
]
},
"max": {
"anyOf": [
{
"pattern": "^[a-z][a-z0-9_-]*(\\.[a-z0-9_-]+)*$",
"type": "string"
},
{
"type": "null"
}
]
},
"min": {
"anyOf": [
{
"pattern": "^[a-z][a-z0-9_-]*(\\.[a-z0-9_-]+)*$",
"type": "string"
},
{
"type": "null"
}
]
},
"pareto": {
"anyOf": [
{
"items": {
"pattern": "^-?[a-z][a-z0-9_-]*(\\.[a-z0-9_-]+)*$",
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
]
},
"qualifiers": {
"patternProperties": {
"^[a-z][a-z0-9_-]*(\\.[a-z0-9_-]+)*$": {
"$ref": "#/$defs/EvidenceQualifiers"
}
},
"type": "object"
},
"weights": {
"anyOf": [
{
"patternProperties": {
"^-?[a-z][a-z0-9_-]*(\\.[a-z0-9_-]+)*(/[a-z][a-z0-9_]*)?$": {
"anyOf": [
{
"type": "number"
},
{
"$ref": "#/$defs/Preference"
}
]
}
},
"type": "object"
},
{
"type": "null"
}
]
}
},
"type": "object"
},
"Preference": {
"additionalProperties": false,
"description": "A weighted preference for one value of a boolean or enum facet.",
"properties": {
"prefer": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "integer"
},
{
"type": "number"
},
{
"format": "date",
"type": "string"
},
{
"type": "string"
}
]
},
"weight": {
"exclusiveMinimum": 0,
"type": "number"
}
},
"required": [
"prefer",
"weight"
],
"type": "object"
},
"ProfileOffering": {
"additionalProperties": false,
"properties": {
"model": {
"pattern": "^[a-z0-9][a-z0-9._-]*/[a-z0-9][a-z0-9._-]*$",
"type": "string"
},
"provider": {
"type": "string"
},
"region": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"tier": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
}
},
"required": [
"model",
"provider"
],
"type": "object"
},
"RouterConfigOptions": {
"additionalProperties": false,
"properties": {
"format": {
"enum": [
"litellm",
"openrouter",
"json"
],
"type": "string"
},
"include_rest": {
"default": false,
"type": "boolean"
},
"include_thin": {
"default": false,
"type": "boolean"
}
},
"required": [
"format"
],
"type": "object"
},
"Soft": {
"additionalProperties": false,
"description": "A soft condition: violating it costs ``penalty`` of the objective instead of eliminating.",
"properties": {
"penalty": {
"exclusiveMinimum": 0,
"maximum": 1,
"type": "number"
}
},
"required": [
"penalty"
],
"type": "object"
},
"TaskTokens": {
"additionalProperties": false,
"description": "How many tokens one task takes. ``offering.cost_per_task`` is priced from it.",
"properties": {
"input": {
"minimum": 0,
"type": "integer"
},
"output": {
"minimum": 0,
"type": "integer"
}
},
"required": [
"input",
"output"
],
"type": "object"
},
"Tolerance": {
"additionalProperties": false,
"description": "How far below the best a lexicographic step may be and still tie: ``5%`` or a number.",
"properties": {
"absolute": {
"anyOf": [
{
"exclusiveMinimum": 0,
"type": "number"
},
{
"type": "null"
}
]
},
"relative": {
"anyOf": [
{
"exclusiveMaximum": 1,
"exclusiveMinimum": 0,
"type": "number"
},
{
"type": "null"
}
]
}
},
"type": "object"
},
"Window": {
"additionalProperties": false,
"description": "``facet in [low, high]``, both ends inclusive.",
"properties": {
"between": {
"maxItems": 2,
"minItems": 2,
"prefixItems": [
{
"anyOf": [
{
"type": "boolean"
},
{
"type": "integer"
},
{
"type": "number"
},
{
"format": "date",
"type": "string"
},
{
"type": "string"
}
]
},
{
"anyOf": [
{
"type": "boolean"
},
{
"type": "integer"
},
{
"type": "number"
},
{
"format": "date",
"type": "string"
},
{
"type": "string"
}
]
}
],
"type": "array"
},
"facet": {
"pattern": "^[a-z][a-z0-9_-]*(\\.[a-z0-9_-]+)*$",
"type": "string"
},
"qualifiers": {
"anyOf": [
{
"$ref": "#/$defs/EvidenceQualifiers"
},
{
"type": "null"
}
]
},
"soft": {
"anyOf": [
{
"$ref": "#/$defs/Soft"
},
{
"type": "null"
}
]
},
"unknown": {
"anyOf": [
{
"enum": [
"list",
"fail",
"pass"
],
"type": "string"
},
{
"type": "null"
}
]
}
},
"required": [
"facet",
"between"
],
"type": "object"
}
},
"$ref": "#/$defs/DecideRequest",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object"
},
"name": "decide"
},
{
"description": "Was an answer reliable? Returns recorded/not_recorded for a rating after acting; include decision_id. Free, no key, and no Authorization header is forwarded. No prompts, keys or personal details in note; no questions or support. Storage stays off until covered by the privacy statement. Proxies POST https://api.modelspec.dev/v1/feedback.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"properties": {
"decision_id": {
"description": "The decision_id of the answer this is about.",
"pattern": "^dec_[0-9A-Za-z]{8,64}$",
"type": "string"
},
"note": {
"description": "Optional. What was wrong or right. Never a prompt, a key or personal details.",
"maxLength": 1000,
"type": "string"
},
"rating": {
"description": "How the answer held up when you acted on it.",
"enum": [
"reliable",
"unreliable",
"trustworthy",
"untrustworthy",
"confusing"
],
"type": "string"
},
"template": {
"description": "Optional. The decision template you used.",
"pattern": "^[a-z0-9][a-z0-9-]{0,63}$",
"type": "string"
},
"trying_to_decide": {
"description": "Optional. What you were trying to decide.",
"maxLength": 300,
"type": "string"
}
},
"required": [
"rating"
],
"type": "object"
},
"name": "feedback"
},
{
"description": "Does this workload fit? Returns measured for an exact cited run, estimated with sources, or undetermined. Uses basis full with sourced headroom, or basis lower_bound for unlikely only. Missing headroom cannot establish likely. Estimates never prove fit. Memory is decimal GB per device, never pooled. Needs an API key (Authorization: Bearer). Costs 2 credits a call; $0.0053–$0.02 per credit by plan or pack (https://modelspec.dev/pricing/). It doesn't choose a model. Proxies POST https://api.modelspec.dev/v1/hardware-fit.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"properties": {
"batch": {
"anyOf": [
{
"maximum": 1000000,
"minimum": 1,
"type": "integer"
},
{
"type": "null"
}
]
},
"context": {
"anyOf": [
{
"maximum": 1000000000,
"minimum": 1,
"type": "integer"
},
{
"type": "null"
}
]
},
"device_count": {
"anyOf": [
{
"maximum": 1024,
"minimum": 1,
"type": "integer"
},
{
"type": "null"
}
]
},
"memory": {
"anyOf": [
{
"exclusiveMinimum": 0,
"maximum": 1000000,
"type": "number"
},
{
"type": "null"
}
],
"description": "Optional memory override in decimal GB per device"
},
"model": {
"anyOf": [
{
"maxLength": 512,
"minLength": 1,
"pattern": "\\S",
"type": "string"
},
{
"type": "null"
}
]
},
"quantisation": {
"anyOf": [
{
"maxLength": 512,
"minLength": 1,
"pattern": "\\S",
"type": "string"
},
{
"type": "null"
}
]
},
"runtime": {
"anyOf": [
{
"maxLength": 512,
"minLength": 1,
"pattern": "\\S",
"type": "string"
},
{
"type": "null"
}
]
},
"sku": {
"anyOf": [
{
"maxLength": 512,
"minLength": 1,
"pattern": "\\S",
"type": "string"
},
{
"type": "null"
}
]
}
},
"type": "object"
},
"name": "hardware_fit"
},
{
"description": "Which legacy profiles and ranking rules exist? Returns https://modelspec.dev/api/rank/profiles.json with evidence floors and the neutrality commitment. Needs an API key. Use decide for decisions.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {},
"type": "object"
},
"name": "list_use_cases"
},
{
"description": "What does one model's card say? Reads https://modelspec.dev/api/models/<model_id>.json. Split mode returns only its display name. Needs an API key. Not current evidence or a ranking; use decide.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"model_id": {
"description": "Catalogue id, e.g. openai/gpt-5-6",
"type": "string"
}
},
"required": [
"model_id"
],
"type": "object"
},
"name": "model_info"
},
{
"description": "Which models and platforms does my policy allow? Returns pass, fail or undetermined per model/platform for licence, origin and data handling; undetermined is not a pass. Needs an API key (Authorization: Bearer). Costs 5 credits a call; $0.0053–$0.02 per credit by plan or pack (https://modelspec.dev/pricing/). It doesn't choose a model; use decide among passing rows. Proxies POST https://api.modelspec.dev/v1/policy-check with these arguments and Authorization.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": {},
"properties": {
"limit": {
"maximum": 500,
"minimum": 0,
"type": "integer"
},
"models": {
"items": {
"type": "string"
},
"type": "array"
},
"offset": {
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"platforms": {
"items": {
"type": "string"
},
"type": "array"
},
"policy": {
"additionalProperties": {},
"properties": {
"commercial_use": {
"properties": {
"accept_restricted": {
"type": "boolean"
},
"required": {
"type": "boolean"
}
},
"type": "object"
},
"licence": {
"properties": {
"allowed": {
"items": {
"type": "string"
},
"type": "array"
},
"prohibited": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
},
"name": {
"type": "string"
},
"origin": {
"properties": {
"permitted_countries": {
"items": {
"type": "string"
},
"type": "array"
},
"prohibited_countries": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
},
"residency": {
"properties": {
"match": {
"enum": [
"any",
"all"
],
"type": "string"
},
"required_regions": {
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
},
"type": "object"
},
"require_no_undetermined": {
"type": "boolean"
},
"verdicts": {
"items": {
"enum": [
"pass",
"fail",
"undetermined"
],
"type": "string"
},
"type": "array"
}
},
"required": [
"policy"
],
"type": "object"
},
"name": "policy_check"
},
{
"description": "Legacy v1; use decide. Deprecated fixed-benchmark ranking; scores lag the catalogue and newer models may be unranked. Which models lead a fixed use-case profile? Returns a shortlist with evidence_basis and input provenance, not a quality verdict. Needs an API key (Authorization: Bearer). Costs 1 credit a call; $0.0053–$0.02 per credit by plan or pack (https://modelspec.dev/pricing/). Don't call it as a fallback when decide has no single leader; report its tie. Present `summary_for_user` to the user unchanged and keep every `must_mention` item. When `next_move` is present, offer it instead of a pick. Proxies POST https://api.modelspec.dev/v1/rank with these arguments.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": {},
"properties": {
"constraints": {
"properties": {
"include_rehosts": {
"type": [
"boolean",
"null"
]
},
"max_cost_per_million_input_tokens": {
"type": [
"number",
"null"
]
},
"open_weights": {
"type": [
"boolean",
"null"
]
},
"price_sensitivity": {
"type": [
"number",
"null"
]
}
},
"type": "object"
},
"environment": {
"properties": {
"hardware": {
"type": [
"string",
"null"
]
},
"hosting": {
"anyOf": [
{
"enum": [
"local",
"self_hosted",
"managed_api"
],
"type": "string"
},
{
"type": "null"
}
]
},
"runtime": {
"type": [
"string",
"null"
]
}
},
"type": "object"
},
"limit": {
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"use_case": {
"description": "Ranking profile id, as published in /api/rank/profiles.json",
"type": "string"
}
},
"required": [
"use_case"
],
"type": "object"
},
"name": "rank"
},
{
"description": "What can a Spec say? Returns ids and task types. Needs an API key. One vocabulary lookup per unknown facet, then decide. Use decide to compare models. Starter includes a minimal Spec. Compact pages: at most 20 rows, no counts; empty pages end results. Search ranks all tokens before subsets; misses offer nearest ids. Split-mode full details exclude model facts and counts. ",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"detail": {
"description": "Full returns all display details; defaults to compact. Cross-section matches remain paged",
"enum": [
"compact",
"full"
],
"type": "string"
},
"id": {
"description": "Full details for this exact, case-sensitive id; starter resolves across sections and intersects with search",
"maxLength": 128,
"type": "string"
},
"ids": {
"description": "Full details for these exact, case-sensitive ids; starter resolves across sections and intersects with search",
"items": {
"maxLength": 128,
"type": "string"
},
"maxItems": 100,
"type": "array"
},
"limit": {
"description": "Page size; defaults to 20. Cross-section lookups page even full details and ids",
"maximum": 20,
"minimum": 1,
"type": "integer"
},
"offset": {
"description": "Skip this many ranked cross-section matches or compact section rows; defaults to 0",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"search": {
"description": "Search every section's ids, labels, definitions, values and synonyms. All tokens rank first; else content tokens match, stopwords omitted. A miss returns nearest ids. A non-starter section scopes the search",
"maxLength": 128,
"type": "string"
},
"section": {
"description": "Defaults to starter; with search or id/ids searches every section except coverage. An explicit non-starter section scopes the lookup",
"enum": [
"starter",
"facets",
"benchmarks",
"domains",
"providers",
"models",
"task_types",
"coverage",
"templates",
"refinements",
"estate",
"vendors",
"template_categories",
"template_tiers"
],
"type": "string"
}
},
"type": "object"
},
"name": "vocab"
}
]
}What the leaf hashes
{"body":"7141a5dcab19090abd7eb70ef9fc69138649384d63bfcb62a4fb3c6a2bceb552","id":293650,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793049544776516,"prev":null,"subject":"aa0c5a86-e3d9-4602-b0f9-0a6341eb7f82","subject_kind":"endpoint"}Proof
Fold these into the leaf in order, hashing each sorted pair with keccak256, to reach the root of (296695 rows).
- 0x643961a5087bf2f6c2dbafc4f10bc281a03a70a299d928ed61b7b2622e176198
- 0x8a008aeab617f76b8af45633ecf8f7998bfbe012bed1831371a7ff925dee2720
- 0xcc9d43d5d31134eb77acfcdc3852be6eed7b76a54fd2eea6f17989f50f6f229c
- 0xa00d78ae44a349af73701c1711a784989dee2ca2064ec052d3524614ad177bf6
- 0x5e9b639ec544ac66a79ac0041119325c892fb6bbad96c3d0edbd306570c88f48
- 0xd1ed569d4d704f9b45650a8f0e16e67bcdc364559003e24801360c78e5877f98
- 0xc0298a075eb87f9f68d88ffa10bd80cae7402431e74c0bab5b3719facee6ff69
- 0xc547cd3bcb6afe23e3f4c434237c1d7163e34bb367e5b43515e8c0863bca74a1
- 0xfccaf824f53ca3ae31b1724c008f31600edf9905032595022ba29bb4ca91a231
- 0x7dd6ecfa9185a17104569489cbef33034bbe40fda02f46c4806f2506cfdf5d24
- 0x4008ba50886e166082b39cf7d2aabf1793fbc0c9ee377f5c8c84131ff6d65579
- 0x3c8355143bb13802401d5a80f8a70809a59f429bc298f4912731fc8d207e4f43
- 0x13f4b94ecf613d585c952b5363dad2b247a55371eb8e358bb89dc033e83128b1
- 0x9a79c65e077cd9da9d436b3ade6f5ddc0d244510c4d5903ef2f02d81205f7666
- 0xa2d436d488e3600b0e5c3e3ed9c9234cd52853c59830b786334fd0c4292d9f40
- 0x47b89901b0f07938a6b9a66ddf35683903f79d756a7c7763665fd632758b08d0
- 0x9a83be955a206deb65b995adfd92c58fa31c95fbbf926bd199d300e70b08b26d
- 0x20704208aa6923d6b2450ef74ede87a6e0265d46447926038fe9506e9e154b2d
- 0x9b9ce5b74b9bab5121612ef6b64920a8d453cbf311096a423eef9702747e868a
- Day root
- 0xf43e8dcc3d451a4788b26be904c55e8c4c0fa75c9666796c51db38d37e2c0df8
- Chained
- 0x702d5ac508f08b0d1accf36af25822d8e5660367494edd17a642fb61e158a57a
- Published
- On Arc Testnet, block 69251483: 0x495162f8936e19f0039918feebe6c307f327cd6bf8c37219620b1970041fa9ae