← The evidence ledger
Evidence row 574641
Observed , by probe.mcp/1.
- Kind
- mcp.tools
- About
- endpoint 398a199c-16e9-4a87-bd6d-d73f6a012c4a
- Recorded
- Previous row
- None: the first of its kind about this subject
- Body SHA-256
- 3937f539ddf2d2e69cdcfd41692948a11be20b809617590ffaf046c554b5580f
- Leaf
- 0x952c26f08d993f32779c08066cca77af08b7c6a53186c6593b79dfa1c12b310d
What was observed
{
"count": 14,
"tools": [
{
"description": "Create a Stripe Checkout Session URL for buying a credit pack (starter / scale / enterprise).\n\nPurpose: Hand the caller a self-serve URL to purchase IU credits.\n\nUse when: The caller's balance is low, or you want to route to\na self-serve top-up flow before a larger validation batch.\n\nDo not use when: The caller is on an enterprise in-process\ndeployment — those are invoiced directly, not via Checkout.\n\nCapability class(es): Meta (billing).\n\nPath fit: MCP only.\n\nCost: 0 IU. Callable at balance=0.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"pack": {
"default": "starter",
"description": "one of 'starter' ($500 / 50K IU),\n 'scale' ($5K / 500K IU), or 'enterprise' ($50K / 5M IU).",
"type": "string"
}
},
"type": "object"
},
"name": "kirk_billing_checkout"
},
{
"description": "Return the caller's account_id, IU balance, USD equivalent at list, frozen flag, and recent ledger entries.\n\nPurpose: Surface the caller's current billing state — what they\ncan spend, whether the account is frozen, and how recent entries\nlanded.\n\nUse when: The caller wants to check available credit before\ncommitting to a large batch, or you are debugging a\n\"why-was-I-charged\" question.\n\nDo not use when: You just need per-call cost — the `_cost`\nenvelope on every agent-driven tool result carries that inline\nwithout a separate call.\n\nCapability class(es): Meta (account state), not a capability of\nthe scoring engine.\n\nPath fit: MCP only. Enterprise in-process deployments have\ntheir own billing surface (invoiced separately).\n\nCost: 0 IU. Callable at balance=0 so a customer with zero credit\ncan still self-serve to top up.",
"inputSchema": {
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "kirk_billing_show"
},
{
"description": "Return the caller's inference consumption over the last N days from the append-only Gate 2 events table.\n\nPurpose: Historical usage summary + per-tool breakdown for the\ncaller's account.\n\nUse when: You need a usage report for the caller or an admin,\nor you are reconciling ledger debits against actual inference\nevents.\n\nDo not use when: You need real-time cost — the `_cost` envelope\non every agent-driven tool result covers that inline.\n\nCapability class(es): Meta (metering).\n\nPath fit: MCP only.\n\nCost: 0 IU.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"days": {
"default": 30,
"description": "window size (default 30).",
"type": "integer"
}
},
"type": "object"
},
"name": "kirk_billing_usage"
},
{
"description": "Return a self-contained stdlib Python client for scoring at ZERO per-call LLM tokens.\n\nPurpose: Hand the caller an HTTP consumer that runs locally so\nbulk scoring doesn't burn LLM tokens per book.\n\nUse when: You need to score more than ~200 books, or\n`kirk_score_book_batch` returned `batch_too_large`, or the caller\nis running an autonomous bulk workload that would otherwise pay\nper-tool-call LLM tokens for every book.\n\nDo not use when: You are running a one-off interactive call — a\ndirect `kirk_score_book` invocation is simpler; don't route\nthrough the client for a single book.\n\nCapability class(es): Cost-steering / delivery-path tool. Hands\nthe caller a runner that exercises the same C2 / C5 / C6\ncapabilities as the MCP scoring tools, but at zero per-call LLM\ntoken cost.\n\nPath fit: The returned client is an HTTP consumer of the same\nMCP endpoint. Production integrations run in-process under\nsealed-engine attestation — same binary sha as this endpoint.\nContact Kavara for deployment options.\n\nCost: 0 IU. Free tool. Once running locally, the returned\nclient bills against the same tools it drives: single-book\ncalls at 1 IU each, and batch calls at 1 IU per 50 books\n(minimum 1 IU per call). A full 500-book batch → 10 IU. No\nLLM tokens on top.\n\nCost comparison (2.7M-book validation rerun via 500-book\nbatches — ~5400 batches, 54000 IU billed either way):\n MCP via Sonnet 5: $1,968 LLM + $540 IU + ~15 days wall clock\n MCP via Haiku 4.5: $656 LLM + $540 IU + ~10 days\n Python client (this tool): $0 LLM + $540 IU + ~55 min\n\nReturn structure:\n {\n \"language\": \"python\",\n \"filename\": \"kirk_online_client.py\",\n \"requirements\": str,\n \"usage\": str,\n \"code\": str (the client source, ~500 LOC),\n \"example\": str (2-line copy-paste demo)\n }",
"inputSchema": {
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "kirk_bulk_howto"
},
{
"description": "Runs a curated demonstration of Kirk on a trading example. Zero arguments. Returns real Kirk output against the same sealed engine that customer callers hit. Free, rate-limited. First-time users: call this to see what Kirk does before signing up.\n\nPurpose: Score n=30 jittered L2 snapshots per market regime\n(stationary vs stressed) through the sealed engine and surface\nthe per-regime score-distribution statistics (mean, sd) plus the\nz-separation between the two distributions in pooled-sd units.\nAlso carries a representative canonical book pair so callers\nsee two concrete scores alongside the distributions.\n\nUse when: You are a first-time caller exploring what Kirk does.\nYou want a zero-friction \"what does the output look like\"\nexperience against real sealed-engine attestation.\n\nDo not use when: You are scoring your own data — use\n``kirk_score_book`` or ``kirk_score_book_batch``. This tool's\ninput is a fixed synthetic representative pair, not a market\nfeed.\n\nCapability class(es): C2 (variable-universe cross-section entropy\nscoring) demonstrated end-to-end against the sealed engine.\n\nPath fit: MCP demonstration surface only.\n\nCost: 0 IU. Rate-limited 3/hour per IP.\n\nReturns:\n Dict with per-regime ``stationary`` and ``stressed`` blocks\n (each: ``mean``, ``sd``, ``n``, ``kirk_version``),\n ``z_separation`` (pooled-sd distance between the two\n regime distributions), ``representative_pair`` (canonical\n un-jittered ``stationary_score`` / ``stressed_score`` plus\n ``book_summaries``), ``interpretation_hint``, ``provenance``,\n and ``synthetic_representative`` flag.",
"inputSchema": {
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "kirk_demo_trading"
},
{
"description": "Runs a curated demonstration of Kirk on a UAV example. Zero arguments. Returns real Kirk output against the same sealed engine that customer callers hit. Free, rate-limited. First-time users: call this to see what Kirk does before signing up.\n\nPurpose: Score n=30 jittered 50-element spectra per acoustic\nclass (drone / bird / helicopter) through the sealed engine\nand surface per-class score-distribution statistics plus\nz-separations for the three class pairs. Demonstrates that the\nsame sealed engine sha handles market microstructure and\nacoustic spectra with the same primitive.\n\nUse when: You want to see Kirk's cross-domain generalization\nwithout needing your own audio dataset.\n\nDo not use when: You have real feature vectors to score — use\n``kirk_infer_legacy`` directly (arg: list of 50 floats). This\ntool's inputs are fixed synthetic spectra baked into the demo.\n\nCapability class(es): Demonstrates domain-agnostic mathematical\nprimitive — the same engine sha handles kirk_score_book (L2)\nand kirk_infer_legacy (arbitrary 50-vector).\n\nPath fit: MCP demonstration surface only.\n\nCost: 0 IU. Rate-limited 3/hour per IP.\n\nReturns:\n Dict with per-class ``drone`` / ``bird`` / ``helicopter``\n blocks (each: ``mean``, ``sd``, ``n``, ``kirk_version``),\n ``z_separation`` (dict of drone_vs_bird / drone_vs_helicopter\n / bird_vs_helicopter in pooled-sd units),\n ``representative_scores`` (the three single-sample scores\n from the canonical un-jittered spectra),\n ``interpretation_hint``, ``provenance``, and\n ``synthetic_spectral`` flag.",
"inputSchema": {
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "kirk_demo_uav"
},
{
"description": "Score a 50-value feature vector against the legacy /v1/infer route on the sealed engine.\n\nPurpose: Backwards-compatible scoring surface for callers that were\nalready targeting the legacy path.\n\nUse when: You have an existing client wired to /v1/infer and need\ncontinued MCP access without refactoring.\n\nDo not use when: You are on a fresh integration — prefer kirk_score_book\n(single-layer, cascade-shaped path). Also do not use in a tight loop\nagainst a large corpus: the MCP round-trip is millisecond-scale, and\nthe LLM tool-call cost accrues per book for agent-driven callers.\nFor bulk work, call kirk_bulk_howto first.\n\nCapability class(es): C2 (cross-section entropy scoring), legacy\ninterface.\n\nPath fit: Validation via MCP (this tool). Production integrations\nrun in-process under sealed-engine attestation — same binary sha as\nthis endpoint. Contact Kavara for deployment options.\n\nCost: 1 IU per call. For agent-driven callers, per-call LLM tokens\naccrue on top; the response _cost envelope surfaces both.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"values": {
"description": "50 floats. kirk-server renders these internally into the\n50-element sample the sealed engine consumes.",
"items": {
"type": "number"
},
"type": "array"
}
},
"required": [
"values"
],
"type": "object"
},
"name": "kirk_infer_legacy"
},
{
"description": "Enumerate the model_ids the sealed engine exposes, with the engine sha stamped in-response.\n\nPurpose: Discover the model catalog and record the sealed engine sha\nalongside your inference results.\n\nUse when: You are wiring a client for the first time and need model_id\nvalues for kirk_score_book / kirk_score_book_batch calls, or you want a\nmachine-readable catalog with attestation.\n\nDo not use when: You need per-model hyperparameter detail — those are\nintentionally not exposed on the customer surface.\n\nCapability class(es): C5 (engine sha attested on every response).\n\nPath fit: Validation via MCP (this tool). Production integrations\nrun in-process under sealed-engine attestation — same binary sha as\nthis endpoint. Contact Kavara for deployment options.\n\nCost: 0 IU. Free tool.",
"inputSchema": {
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "kirk_list_models"
},
{
"description": "Render an L2 order-book snapshot into the 20×20 complex128 thermometer tensor WITHOUT invoking the sealed engine.\n\nPurpose: Local tensor prep and inspection — see what shape the\nsealed engine will receive without paying for a scoring call.\n\nUse when: You want to sanity-check bid/ask level convention against\nthe model's canonical input convention, inspect the non-zero cell\npattern for a snapshot, or debug an unexpected entropy value by\nfirst confirming the tensor is well-formed.\n\nDo not use when: You need an entropy score — this tool is prep-only.\nCall kirk_score_book to score.\n\nCapability class(es): Local prep for the C2 (variable-universe\ncross-section entropy) workflow. No sealed-engine interaction; no\ncapability class is exercised beyond the input-shape convention.\n\nPath fit: Validation via MCP (this tool). The same tensor shape is\nwhat production in-process integrations consume under sealed-engine\nattestation.\n\nCost: 0 IU. Free tool.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"ask_px": {
"description": "10 ask prices, level 1 first.",
"items": {
"type": "number"
},
"type": "array"
},
"bid_px": {
"description": "10 bid prices, level 1 first.",
"items": {
"type": "number"
},
"type": "array"
}
},
"required": [
"bid_px",
"ask_px"
],
"type": "object"
},
"name": "kirk_render_book"
},
{
"description": "Score one L2 order-book snapshot through the sealed single-layer path and return a scalar entropy plus engine attestation.\n\nPurpose: Score one snapshot end-to-end through the sealed engine and\nsurface the result plus the engine sha that produced it.\n\nUse when: You are validating Kirk on your own data before committing\nto a production path, or you are scoring a single snapshot inside an\ninteractive workflow (rate-limited at 60 req/min per account).\n\nDo not use when: You need throughput above interactive scale, or you\nare in a per-book loop from an LLM. MCP round-trip is millisecond-scale\nand inappropriate for latency-critical work. For >200 books, call\nkirk_bulk_howto first — the returned stdlib Python client scores at\nzero LLM tokens per iteration.\n\nCapability class(es):\n- C2 (variable-universe cross-section entropy scoring — same model\n handles any N without retraining).\n- C5 (sealed engine sha stamped on every response).\n- C6 (bit-exact reproducibility across substrates; validated by the\n FY24 252-day reproduction, byte-identical on repeat runs).\n\nPath fit: Validation via MCP (this tool). Production integrations\nrun in-process under sealed-engine attestation — same binary sha as\nthis endpoint. Contact Kavara for deployment options. MCP is a\nvalidation and discovery surface, not a latency-critical production\npath.\n\nCost: 1 IU per call. LLM tokens accrue on top for agent-driven callers.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"ask_px": {
"description": "10 ask prices, level 1 first. Same NaN convention.",
"items": {
"type": "number"
},
"type": "array"
},
"bid_px": {
"description": "10 bid prices, level 1 first. NaN allowed for missing levels.",
"items": {
"type": "number"
},
"type": "array"
},
"model_id": {
"default": "kirk-test1-binary-threshold-v1",
"description": "Registered single-layer model. Defaults to\n`kirk-test1-binary-threshold-v1`.",
"type": "string"
}
},
"required": [
"bid_px",
"ask_px"
],
"type": "object"
},
"name": "kirk_score_book"
},
{
"description": "Score up to 500 L2 order-book snapshots in one MCP call — returns an entropies list plus engine attestation.\n\nPurpose: Batch-score up to 500 snapshots through the sealed engine in\na single MCP dispatch.\n\nUse when: You are validating batch behaviour, comparing entropy\ndistributions across small book sets, or running interactive\nexperiments up to 500 books at a time.\n\nDo not use when: You have more than 500 books, or you are looping\nthis tool from an LLM. Batches >500 raise a structured\n`batch_too_large` before any ledger debit. For sustained bulk work,\ncall kirk_bulk_howto — the stdlib Python client scores at zero LLM\ntokens per iteration.\n\nCapability class(es):\n- C2 (variable-universe cross-section entropy — heterogeneous batch\n shapes are handled by one model without retraining).\n- C5 (sealed engine sha stamped on every response).\n- C6 (bit-exact reproducibility across substrates and runs).\n\nPath fit: Validation via MCP (this tool). Production bulk workloads\nrun in-process under sealed-engine attestation — same binary sha as\nthis endpoint. Contact Kavara for deployment options. The MCP\nround-trip is inappropriate for high-throughput consumption.\n\nCost: 1 IU per 50 books (minimum 1 IU per call). n≤50 → 1 IU;\nn=51..100 → 2 IU; a full 500-book batch → 10 IU. Validation tier —\nvalidation-scale limits. LLM-agent-scoped cap at 500 books; use\nkirk_bulk_howto for anything larger.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"books": {
"description": "list of book dicts (bid_px, ask_px, sizes...). Max 500\nper call — larger batches raise a structured `batch_too_large`\nerror pointing at kirk_bulk_howto.",
"items": {
"additionalProperties": true,
"type": "object"
},
"type": "array"
},
"model_id": {
"default": "kirk-test1-binary-threshold-v1",
"description": "registered model_id (see kirk_list_models).",
"type": "string"
}
},
"required": [
"books"
],
"type": "object"
},
"name": "kirk_score_book_batch"
},
{
"description": "Score a sequence of full L2 order books as one chain and return per-book entropies plus engine attestation.\n\nPurpose: Score complete books — prices, sizes and order counts — rather than\nprices alone. This is the v2 book contract; it carries information the\nprice-only contract cannot.\n\nSTATE POLICY, and it matters: the books are scored IN ORDER as a single\nfresh chain. The model starts from its locked initial state at the first\nbook and carries state forward across the rest, so a book's value depends\non the books before it. State is never carried between calls. Sending the\nsame books in a different order is a different measurement and will return\ndifferent values; scoring N books one-per-call is NOT equivalent to one\ncall of N books.\n\nUse when: You are validating Kirk on full L2 snapshots. For the price-only\nv1 contract use kirk_score_book — the two are different envelopes and are\nnot interchangeable.\n\nDo not use when: You are looping this tool from an LLM. Call kirk_bulk_howto\nfor bulk work; its v2 mode wraps this same call.\n\nCost: 1 IU per call.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"books": {
"description": "1..500 books, scored in the order given. Each book is an object\nwith exactly eight fields: bid_px and ask_px (10 values each,\nlevel 1 = best quote, running outward), bid_quantity, ask_quantity,\nbid_num_orders, ask_num_orders (8 values each, same ordering), and\nbid_level_count, ask_level_count (scalars). Every value must be a\nfinite JSON number; this contract does not impute or tolerate gaps.",
"items": {
"additionalProperties": true,
"type": "object"
},
"type": "array"
},
"model_id": {
"default": "kirk-l2-thermo-v2-e32-v1",
"description": "A v2-contract model id. Defaults to kirk-l2-thermo-v2-e32-v1.",
"type": "string"
}
},
"required": [
"books"
],
"type": "object"
},
"name": "kirk_score_l2_book"
},
{
"description": "Synthesize N realistic-geometry L2 book snapshots and score them — convenience wrapper on kirk_score_book_batch.\n\nPurpose: Produce a live entropy series with no external data — the\nfastest way to confirm a new integration is wired end-to-end.\n\nUse when: You want a wiring-check, a first-integration walk-through,\nor a quick reference for the response shape without needing to\nsupply your own market data.\n\nDo not use when: You are scoring anything real — feed your own data\nthrough kirk_score_book_batch. Synthetic bids/asks are not benchmark\ninput and should not appear in customer-visible results.\n\nCapability class(es): C2 (uses the same variable-universe cross-\nsection entropy path as kirk_score_book_batch, on synthetic input).\n\nPath fit: Validation via MCP (this tool). Not a production surface.\n\nCost: 1 IU per invocation. Internally routes through\nkirk_score_book_batch — one metered dispatch, no double-metering.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"model_id": {
"default": "kirk-test1-binary-threshold-v1",
"description": "Registered single-layer model.",
"type": "string"
},
"n_samples": {
"default": 5,
"description": "How many books to synthesize + score.",
"type": "integer"
},
"seed": {
"default": 42,
"description": "RNG seed for reproducibility.",
"type": "integer"
}
},
"type": "object"
},
"name": "kirk_score_random"
},
{
"description": "Verify sealed engine identity — returns the sha256 of the running scoring binary. Also serves as a liveness probe against the sealed backend.\n\nPurpose: Attest which Kirk build is currently serving scoring calls.\nResponse carries the HOST DEFAULT engine sha (kirk_version). That is the\nlegacy default and is NOT necessarily the engine that will stamp a given\nkirk_score_* result: each model row in kirk_list_models identifies its own\nengine, and every scoring response restates it under engine.sha. For a\nmodel bound to a non-default engine (kirk-market-orderbook-v1) these\ndiffer. Record the per-model value for provenance, not this one.\nSecondary role: a cheap liveness probe when wiring up MCP.\n\nUse when: You want to record engine sha in your own provenance log\nbefore capturing scoring output, or you want a cheap liveness check\nahead of a larger validation batch.\n\nDo not use when: You want a scoring result — this returns\nidentity/liveness only, no entropies.\n\nCapability class(es): C5 (cryptographic attestation of engine identity).\n\nPath fit: Validation via MCP (this tool). Production integrations\nrun in-process under sealed-engine attestation — same binary sha as\nthis endpoint. Contact Kavara for deployment options.\n\nCost: 0 IU. Free tool. For agent-driven callers, the _cost envelope\nstill reports iu_this_call=0 and the running session totals.\n\nReturns:\n Dict with `status`, `engine`, `env`, and `kirk_version` (the\n sealed .so sha). A non-2xx response raises; caller sees a\n clean MCP tool error.",
"inputSchema": {
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "kirk_verify_engine"
}
]
}What the leaf hashes
{"body":"3937f539ddf2d2e69cdcfd41692948a11be20b809617590ffaf046c554b5580f","id":574641,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793141601810449,"prev":null,"subject":"398a199c-16e9-4a87-bd6d-d73f6a012c4a","subject_kind":"endpoint"}Proof
Fold these into the leaf in order, hashing each sorted pair with keccak256, to reach the root of (273461 rows).
- 0x952be0cda2f51d6097cb2601314a1f94225d8d98ce4aa011542695b054a05882
- 0x7299b06ec4c8e34584f442c7e2dab76235f72372ced632f63a458e8de63d4c2b
- 0xe84a574d15f3faf106ff28db227c33d6b206434b6bcc90b1555f13f594749cc2
- 0x23dddb1ba5f816b046b398c53d90cb35b1ddaeb789c5c01c1a5a86bde1c69239
- 0xb87c21f590e4c8e1cafd67ea6e5da6f93b233b4facfd0c6aba4f2b44aea4e5c7
- 0x766f54c6d60d071e0c3721c4b331dc8736936cab9b6265f87b0de92e3e3d8d72
- 0x53c1b05ef340cb271de6037e23e558e1279dbc4add388676ea2f232b91f5fee0
- 0xcc3f5ef0c458c2edb5e9ca117e8f8dfabe98be0076ad8a59766d67627d8ec468
- 0x93261c370058e4919e45f5cff48d4e5535198b82698584edf98d177d2ab6bbe2
- 0x7ba3519ee17f3918069be97b4b6928adeda06ee424da27db34abd998ca7297fa
- 0x04a09d663456ff3951851256dd93fd8bffe97c065373b0fa7994aee5fd52c4a7
- 0x747fb8d60cfe8dde3cb6d73475c58c3912bdf8d928b8f0480aa1c97a1b71d408
- 0x59c5c792b40d9054ce2b84a60af97fa54f2e1a2a369a6a52dc3f45de41128e97
- 0xa3c9c760ee424c178bab782711c2b9d3e15a80a6fde99165972cb75b306bb8b4
- 0xb4f7223140c8a36cb87a63d77cf617086d9968dc4658f03e102571ebe06e9ed6
- 0xfecf3d4646dd4984a13dd715499e842c3fde63692336d97394c2bfd8e877ca5d
- 0xf30fddbf4811226c58e8f0daf36fddd79fc5f1356b592bb1d99a8061ddbabe66
- 0x2bf8151e5f157dd183b9de6fa00469551932a7a6e3f33a694895000ac9061197
- 0x9fc354c0ea3efc3f1b6548bb77ea902a50f2c9647647ea61592efce2bd795699
- Day root
- 0xdd77e5e99da32c3f154180d63e3c3e6fe11e896a2c6896412ef6b5c4bcf7e795
- Chained
- 0x23bb4dfd09f55c15ac3962f53578e02c6114d5bfd9bb451cf8794fb6e2817ef4
- Published
- On Arc Testnet, block 69414147: 0xb2ebd83aafeb765a0ce66e76aefb133ed06606c98038fd56191e2bcd1dcb77b4