{"id":574641,"recorded_at":"2026-10-27T22:53:21.810537Z","observed_at":"2026-10-27T22:53:21.810449Z","subject_kind":"endpoint","subject":"398a199c-16e9-4a87-bd6d-d73f6a012c4a","kind":"mcp.tools","method":"probe.mcp/1","body":{"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"}]},"body_sha256":"3937f539ddf2d2e69cdcfd41692948a11be20b809617590ffaf046c554b5580f","prev_id":null,"leaf":"0x952c26f08d993f32779c08066cca77af08b7c6a53186c6593b79dfa1c12b310d","leaf_text":"{\"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\"}","day":{"day":"2026-10-27","leaves":273461,"root":"0xdd77e5e99da32c3f154180d63e3c3e6fe11e896a2c6896412ef6b5c4bcf7e795","chained":"0x23bb4dfd09f55c15ac3962f53578e02c6114d5bfd9bb451cf8794fb6e2817ef4","anchor_chain":"eip155:5042002","anchor_tx":"0xb2ebd83aafeb765a0ce66e76aefb133ed06606c98038fd56191e2bcd1dcb77b4","anchor_block":69414147},"proof":["0x952be0cda2f51d6097cb2601314a1f94225d8d98ce4aa011542695b054a05882","0x7299b06ec4c8e34584f442c7e2dab76235f72372ced632f63a458e8de63d4c2b","0xe84a574d15f3faf106ff28db227c33d6b206434b6bcc90b1555f13f594749cc2","0x23dddb1ba5f816b046b398c53d90cb35b1ddaeb789c5c01c1a5a86bde1c69239","0xb87c21f590e4c8e1cafd67ea6e5da6f93b233b4facfd0c6aba4f2b44aea4e5c7","0x766f54c6d60d071e0c3721c4b331dc8736936cab9b6265f87b0de92e3e3d8d72","0x53c1b05ef340cb271de6037e23e558e1279dbc4add388676ea2f232b91f5fee0","0xcc3f5ef0c458c2edb5e9ca117e8f8dfabe98be0076ad8a59766d67627d8ec468","0x93261c370058e4919e45f5cff48d4e5535198b82698584edf98d177d2ab6bbe2","0x7ba3519ee17f3918069be97b4b6928adeda06ee424da27db34abd998ca7297fa","0x04a09d663456ff3951851256dd93fd8bffe97c065373b0fa7994aee5fd52c4a7","0x747fb8d60cfe8dde3cb6d73475c58c3912bdf8d928b8f0480aa1c97a1b71d408","0x59c5c792b40d9054ce2b84a60af97fa54f2e1a2a369a6a52dc3f45de41128e97","0xa3c9c760ee424c178bab782711c2b9d3e15a80a6fde99165972cb75b306bb8b4","0xb4f7223140c8a36cb87a63d77cf617086d9968dc4658f03e102571ebe06e9ed6","0xfecf3d4646dd4984a13dd715499e842c3fde63692336d97394c2bfd8e877ca5d","0xf30fddbf4811226c58e8f0daf36fddd79fc5f1356b592bb1d99a8061ddbabe66","0x2bf8151e5f157dd183b9de6fa00469551932a7a6e3f33a694895000ac9061197","0x9fc354c0ea3efc3f1b6548bb77ea902a50f2c9647647ea61592efce2bd795699"]}