Server definition
- Hash
- sha256:402242c1c6701ac15a824145d427817607bac39e5c2299ed128625711bbd3028
- What it is
- What a remote MCP server returned when asked what it offers: 14 tools
The blob, as servednamed by its sha256
{
"instructions": "Whetstone's public verifier toolbox as MCP tools. Three tiers. Tier 0 is stateless: you supply the data (exam rows, paired results, documents, event logs) and get back audits, promotion verdicts, patches, or counterexamples; payloads and results are not persisted, while operational counters and standard access logs are retained. Tier 1 is the disposable report card: report_card_start hands your agent a small graph-repair exam minted from the repository's public frontier, report_card_submit grades it by checker spec and requires a verified repair to retain at least 5% of clean support for promotion grade (no answer key exists), then destroys the session. Tier 2 is Open Promotion Bench: open_bench_start gives a paired baseline/candidate scope-integrity cohort, open_bench_submit grades both answer maps, and open_bench_leaderboard returns opt-in public receipts. Published entries retain only the self-attested manifests and sanitized receipts, never tasks or answers. No private exam bank is loaded in this service, so no tool can leak one. Complete request/response examples for every Tier 0 tool: GET /api/examples. Full agent documentation: https://whetstone.cyberelf.link/for-agents — installable skill file: https://whetstone.cyberelf.link/skill.md",
"tools": [
{
"description": "What this service is: the tool catalog, the tier boundaries, and where the source lives.",
"inputSchema": {
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "about_whetstone",
"outputSchema": null
},
{
"description": "Exact declared-exposure audit over your exam rows: row identity, behavioral fingerprints for graph-DSL expressions, text-similarity review flags, and a clean exam export. Full example: GET /api/examples key 'leakage'.",
"inputSchema": {
"additionalProperties": false,
"description": "Audit declared exposure against an exam and export the clean remainder.",
"properties": {
"enable_behavioral_fingerprint": {
"default": true,
"type": "boolean"
},
"enable_text_similarity": {
"default": true,
"type": "boolean"
},
"exam": {
"description": "Exam rows. Each row needs item_id (or id) plus prompt/content/input/task/question/expression.",
"items": {
"additionalProperties": true,
"properties": {},
"type": "object"
},
"maxItems": 5000,
"minItems": 1,
"type": "array"
},
"exposure": {
"description": "Declared exposure rows carrying identity/content fields and an optional source or path.",
"items": {
"additionalProperties": true,
"properties": {},
"type": "object"
},
"maxItems": 5000,
"minItems": 0,
"type": "array"
},
"fingerprint_max_n": {
"default": 4,
"maximum": 5,
"minimum": 3,
"type": "integer"
},
"similarity_threshold": {
"default": 0.6,
"maximum": 1,
"minimum": 0.5,
"type": "number"
}
},
"required": [
"exam"
],
"type": "object"
},
"name": "audit_leakage",
"outputSchema": null
},
{
"description": "Item-lifecycle diagnostics over your grading history: discriminators, saturated and flaky items, frontier gaps. Full example: GET /api/examples key 'health'.",
"inputSchema": {
"additionalProperties": false,
"description": "Diagnose item lifecycle health from one or more grading-history rows.",
"properties": {
"history": {
"description": "Observed item/system outcomes.",
"items": {
"additionalProperties": true,
"properties": {
"domain": {
"type": "string"
},
"item_id": {
"minLength": 1,
"type": "string"
},
"passed": {
"type": "boolean"
},
"system": {
"minLength": 1,
"type": "string"
}
},
"required": [
"item_id",
"system",
"passed"
],
"type": "object"
},
"maxItems": 5000,
"minItems": 1,
"type": "array"
},
"items": {
"description": "Optional item definitions.",
"items": {
"additionalProperties": true,
"properties": {
"domain": {
"type": "string"
},
"item_id": {
"minLength": 1,
"type": "string"
}
},
"required": [
"item_id"
],
"type": "object"
},
"maxItems": 5000,
"minItems": 0,
"type": "array"
}
},
"required": [
"history"
],
"type": "object"
},
"name": "bank_health",
"outputSchema": null
},
{
"description": "Bounded simulated-annealing search for a graph counterexample inside a DSL predicate class, with an exact certificate when found. CPU-bounded and strictly rate-limited. Full example: GET /api/examples key 'counterexample'.",
"inputSchema": {
"additionalProperties": false,
"description": "Run a bounded graph search against one Whetstone predicate expression.",
"properties": {
"expression": {
"description": "Graph predicate in the Whetstone DSL, for example: is_connected and is_triangle_free and not is_bipartite",
"maxLength": 500,
"minLength": 1,
"type": "string"
},
"ns": {
"default": [
8,
9,
10,
11
],
"description": "Graph sizes searched.",
"items": {
"maximum": 12,
"minimum": 4,
"type": "integer"
},
"maxItems": 5,
"minItems": 1,
"type": "array"
},
"restarts": {
"default": 4,
"maximum": 6,
"minimum": 1,
"type": "integer"
},
"seed": {
"default": 0,
"type": "integer"
},
"steps": {
"default": 800,
"maximum": 1500,
"minimum": 50,
"type": "integer"
}
},
"required": [
"expression"
],
"type": "object"
},
"name": "counterexample_hunt",
"outputSchema": null
},
{
"description": "Quarantine declared exposure, compare paired baseline/candidate outcomes on the clean remainder, and issue a promotion receipt. Bring your own exam rows, exposure records, and per-item results. Full example: GET /api/examples key 'inspector'.",
"inputSchema": {
"additionalProperties": false,
"description": "Audit exposure, prove a complete clean cohort, then gate baseline versus candidate.",
"properties": {
"baseline": {
"additionalProperties": {
"type": "boolean"
},
"description": "item_id -> boolean pass/fail result for the baseline system.",
"maxProperties": 5000,
"minProperties": 1,
"type": "object"
},
"baseline_name": {
"default": "baseline",
"type": "string"
},
"candidate": {
"additionalProperties": {
"type": "boolean"
},
"description": "item_id -> boolean pass/fail result for the candidate system.",
"maxProperties": 5000,
"minProperties": 1,
"type": "object"
},
"candidate_name": {
"default": "candidate",
"type": "string"
},
"domains": {
"additionalProperties": {
"type": "string"
},
"description": "Optional item_id -> domain label mapping.",
"type": "object"
},
"enable_behavioral_fingerprint": {
"default": true,
"type": "boolean"
},
"enable_text_similarity": {
"default": true,
"type": "boolean"
},
"exam": {
"description": "Exam rows. Each row needs item_id (or id) plus prompt/content/input/task/question/expression.",
"items": {
"additionalProperties": true,
"properties": {},
"type": "object"
},
"maxItems": 5000,
"minItems": 1,
"type": "array"
},
"exposure": {
"description": "Declared exposure rows carrying identity/content fields and an optional source or path.",
"items": {
"additionalProperties": true,
"properties": {},
"type": "object"
},
"maxItems": 5000,
"minItems": 0,
"type": "array"
},
"fingerprint_max_n": {
"default": 4,
"maximum": 5,
"minimum": 3,
"type": "integer"
},
"policy": {
"additionalProperties": false,
"description": "Explicit promotion policy. Omitted fields use the documented defaults.",
"properties": {
"confidence_alpha": {
"default": 0.05,
"exclusiveMinimum": 0,
"maximum": 1,
"type": "number"
},
"max_regressions": {
"default": 0,
"minimum": 0,
"type": "integer"
},
"min_gains": {
"default": 1,
"minimum": 0,
"type": "integer"
},
"require_retained_probe": {
"default": false,
"type": "boolean"
}
},
"type": "object"
},
"retained_probe": {
"additionalProperties": false,
"description": "Optional retained-capability result checked alongside the paired cohort.",
"properties": {
"base_verified": {
"minimum": 0,
"type": "integer"
},
"candidate_verified": {
"minimum": 0,
"type": "integer"
},
"items": {
"minimum": 0,
"type": "integer"
}
},
"required": [
"base_verified",
"candidate_verified",
"items"
],
"type": "object"
},
"similarity_threshold": {
"default": 0.6,
"maximum": 1,
"minimum": 0.5,
"type": "number"
}
},
"required": [
"exam",
"baseline",
"candidate"
],
"type": "object"
},
"name": "inspect_promotion",
"outputSchema": null
},
{
"description": "Compare query-free salience against objective-conditioned relevance for a set of memories under a token budget. Full example: GET /api/examples key 'memory'.",
"inputSchema": {
"additionalProperties": false,
"description": "Rank caller-supplied memories against a concrete objective under a token budget.",
"properties": {
"context_entities": {
"description": "Entities already active in context.",
"items": {
"type": "string"
},
"maxItems": 100,
"type": "array"
},
"current_step": {
"minimum": 0,
"type": "integer"
},
"memories": {
"description": "Memories to rank.",
"items": {
"additionalProperties": false,
"properties": {
"age": {
"default": 0,
"minimum": 0,
"type": "integer"
},
"confidence": {
"default": 0.8,
"maximum": 1,
"minimum": 0,
"type": "number"
},
"content": {
"minLength": 1,
"type": "string"
},
"entities": {
"description": "Entities explicitly present in this memory.",
"items": {
"type": "string"
},
"maxItems": 100,
"type": "array"
},
"kind": {
"default": "episodic",
"type": "string"
},
"source": {
"default": "uploaded",
"type": "string"
},
"use_count": {
"default": 0,
"minimum": 0,
"type": "integer"
}
},
"required": [
"content"
],
"type": "object"
},
"maxItems": 1000,
"minItems": 1,
"type": "array"
},
"objective": {
"minLength": 1,
"type": "string"
},
"objective_entities": {
"description": "Optional explicit entities when the objective text is not self-describing.",
"items": {
"type": "string"
},
"maxItems": 100,
"type": "array"
},
"question_kind": {
"default": "generic",
"type": "string"
},
"token_budget": {
"default": 90,
"maximum": 10000,
"minimum": 1,
"type": "integer"
}
},
"required": [
"objective",
"memories"
],
"type": "object"
},
"name": "memory_relevance",
"outputSchema": null
},
{
"description": "TIER 2: list the self-attested public Open Promotion Bench receipts. Entries contain manifests, verdicts, item-level transitions, and commitments but never task contents or submitted answers.",
"inputSchema": {
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "open_bench_leaderboard",
"outputSchema": null
},
{
"description": "TIER 2: start a one-shot Open Promotion Bench session. Returns six fresh virtual-repository scope-integrity tasks. Run a baseline and candidate independently on the same cohort, then submit both answer maps with open_bench_submit. This is an open, procedural, self-attested track rather than a private-bank credential.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"challenge": {
"description": "Caller nonce bound into the signed receipt for replay detection.",
"maxLength": 128,
"minLength": 8,
"type": "string"
}
},
"type": "object"
},
"name": "open_bench_start",
"outputSchema": null
},
{
"description": "TIER 2: grade paired baseline and candidate patches, count gains/regressions/ties, and issue PASS/HOLD/BLOCK. Set publish=true plus attestation=true to append only the safe manifests and sanitized receipt to the public board; tasks and answers are never persisted.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"attestation": {
"type": "boolean"
},
"baseline_answers": {
"type": "object"
},
"baseline_manifest": {
"additionalProperties": false,
"properties": {
"harness": {
"type": "string"
},
"model": {
"type": "string"
},
"name": {
"type": "string"
},
"version": {
"type": "string"
}
},
"required": [
"name"
],
"type": "object"
},
"candidate_answers": {
"type": "object"
},
"candidate_manifest": {
"additionalProperties": false,
"properties": {
"harness": {
"type": "string"
},
"model": {
"type": "string"
},
"name": {
"type": "string"
},
"version": {
"type": "string"
}
},
"required": [
"name"
],
"type": "object"
},
"publish": {
"type": "boolean"
},
"session_id": {
"type": "string"
}
},
"required": [
"session_id",
"baseline_manifest",
"candidate_manifest",
"baseline_answers",
"candidate_answers"
],
"type": "object"
},
"name": "open_bench_submit",
"outputSchema": null
},
{
"description": "PASS, HOLD, or BLOCK from paired per-item results: gains, regressions, exact McNemar p-value, per-domain breakdown. Full example: GET /api/examples key 'gate'.",
"inputSchema": {
"additionalProperties": false,
"description": "Compare identical baseline and candidate item cohorts under an explicit policy.",
"properties": {
"baseline": {
"additionalProperties": {
"type": "boolean"
},
"description": "item_id -> boolean pass/fail result for the baseline system.",
"maxProperties": 5000,
"minProperties": 1,
"type": "object"
},
"baseline_name": {
"default": "baseline",
"type": "string"
},
"candidate": {
"additionalProperties": {
"type": "boolean"
},
"description": "item_id -> boolean pass/fail result for the candidate system.",
"maxProperties": 5000,
"minProperties": 1,
"type": "object"
},
"candidate_name": {
"default": "candidate",
"type": "string"
},
"domains": {
"additionalProperties": {
"type": "string"
},
"description": "Optional item_id -> domain label mapping.",
"type": "object"
},
"policy": {
"additionalProperties": false,
"description": "Explicit promotion policy. Omitted fields use the documented defaults.",
"properties": {
"confidence_alpha": {
"default": 0.05,
"exclusiveMinimum": 0,
"maximum": 1,
"type": "number"
},
"max_regressions": {
"default": 0,
"minimum": 0,
"type": "integer"
},
"min_gains": {
"default": 1,
"minimum": 0,
"type": "integer"
},
"require_retained_probe": {
"default": false,
"type": "boolean"
}
},
"type": "object"
},
"retained_probe": {
"additionalProperties": false,
"description": "Optional retained-capability result checked alongside the paired cohort.",
"properties": {
"base_verified": {
"minimum": 0,
"type": "integer"
},
"candidate_verified": {
"minimum": 0,
"type": "integer"
},
"items": {
"minimum": 0,
"type": "integer"
}
},
"required": [
"base_verified",
"candidate_verified",
"items"
],
"type": "object"
}
},
"required": [
"baseline",
"candidate"
],
"type": "object"
},
"name": "promotion_gate",
"outputSchema": null
},
{
"description": "Turn reasoning-emulator control events into checkpoints, rewinds, notes, and a timeline. Full example: GET /api/examples key 'replay'.",
"inputSchema": {
"additionalProperties": false,
"description": "Reconstruct checkpoints, rewinds, branches, and verifier outcomes from control events.",
"properties": {
"events": {
"description": "Ordered reasoning-emulator events.",
"items": {
"additionalProperties": false,
"properties": {
"detail": {
"type": "string"
},
"kind": {
"description": "Event class such as control, verifier, model, or observation.",
"type": "string"
},
"source": {
"default": "native",
"type": "string"
},
"step": {
"minimum": 0,
"type": "integer"
}
},
"required": [
"kind",
"detail"
],
"type": "object"
},
"maxItems": 5000,
"minItems": 1,
"type": "array"
},
"notes": {
"description": "Optional analyst notes.",
"items": {
"type": "string"
},
"maxItems": 5000,
"type": "array"
}
},
"required": [
"events"
],
"type": "object"
},
"name": "replay_trace",
"outputSchema": null
},
{
"description": "TIER 1: start a disposable report-card session. Returns exam items (graph-repair prompts minted from the repository's public frontier) for THIS agent to answer. Answer every item, then call report_card_submit exactly once. Sessions are one-shot, expire in 15 minutes, and are strictly rate-limited. This demonstrates the promotion-gate mechanism on disposable items; it is not a private-bank credential.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"challenge": {
"description": "Caller nonce bound into the signed receipt for replay detection.",
"maxLength": 128,
"minLength": 8,
"type": "string"
}
},
"type": "object"
},
"name": "report_card_start",
"outputSchema": null
},
{
"description": "TIER 1: submit answers for a report-card session and receive the graded report (per-item verdicts, per-domain totals, SHA-256 commitments). Grading is by checker spec: verified strict refinements are reported separately, and promotion grade requires at least 5% clean-support retention. No answer key exists. The session is destroyed by this call.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"answers": {
"additionalProperties": {
"type": "string"
},
"description": "item_id -> answer (a DSL predicate, or the JSON reply the prompt asked for)",
"type": "object"
},
"session_id": {
"type": "string"
}
},
"required": [
"session_id",
"answers"
],
"type": "object"
},
"name": "report_card_submit",
"outputSchema": null
},
{
"description": "Apply a section-scoped Markdown patch under conservation checks (untouched sections stay byte-identical; protected tokens preserved). Full example: GET /api/examples key 'safepatch'.",
"inputSchema": {
"additionalProperties": false,
"description": "Apply deterministic, section-scoped Markdown replacements under conservation checks.",
"properties": {
"document": {
"description": "Complete Markdown document to patch.",
"maxLength": 200000,
"minLength": 1,
"type": "string"
},
"operations": {
"items": {
"additionalProperties": false,
"properties": {
"allow_token_changes": {
"description": "Protected literal tokens that this operation may intentionally change.",
"items": {
"type": "string"
},
"maxItems": 100,
"type": "array"
},
"find": {
"minLength": 1,
"type": "string"
},
"replace": {
"type": "string"
},
"target_heading": {
"description": "Markdown heading text without the leading # characters.",
"minLength": 1,
"type": "string"
}
},
"required": [
"target_heading",
"find",
"replace"
],
"type": "object"
},
"maxItems": 50,
"minItems": 1,
"type": "array"
},
"reason": {
"type": "string"
}
},
"required": [
"document",
"operations"
],
"type": "object"
},
"name": "safe_patch",
"outputSchema": null
}
]
}Verify it yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:402242c1c6701ac15a824145d427817607bac39e5c2299ed128625711bbd3028 | sha256sum